Merge pull request #4789 from sejongoh/always_download_coredistools
authorSejong Oh <sejooh@microsoft.com>
Tue, 17 May 2016 18:16:27 +0000 (11:16 -0700)
committerSejong Oh <sejooh@microsoft.com>
Tue, 17 May 2016 18:16:27 +0000 (11:16 -0700)
Always download coredistools package

2862 files changed:
Documentation/botr/clr-abi.md
Documentation/building/netbsd-instructions.md [new file with mode: 0644]
Documentation/building/test-configuration.md
Documentation/building/testing-with-corefx.md
Documentation/building/unix-test-instructions.md
Documentation/building/windows-instructions.md
Documentation/design-docs/first-class-structs.md
Documentation/design-docs/longs-on-32bit-arch.md [new file with mode: 0644]
Documentation/project-docs/ci-trigger-phrases.md
Documentation/project-docs/tests.md [deleted file]
README.md
build.cmd
build.sh
clr.coreclr.props
clr.defines.targets
clr.desktop.props
clrdefinitions.cmake
compileoptions.cmake
dir.props
netci.groovy
src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/osx/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/rhel/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/ubuntu/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/win/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
src/.nuget/Microsoft.TargetingPack.Private.CoreCLR/Microsoft.TargetingPack.Private.CoreCLR.pkgproj [new file with mode: 0644]
src/.nuget/descriptions.json
src/ToolBox/SOS/Strike/disasm.cpp
src/ToolBox/SOS/Strike/disasmX86.cpp
src/ToolBox/SOS/Strike/dllsext.cpp
src/ToolBox/SOS/Strike/eeheap.cpp
src/ToolBox/SOS/Strike/gchist.cpp
src/ToolBox/SOS/Strike/gcroot.cpp
src/ToolBox/SOS/Strike/sildasm.cpp
src/ToolBox/SOS/Strike/strike.cpp
src/ToolBox/SOS/Strike/strike.h
src/ToolBox/SOS/Strike/util.cpp
src/ToolBox/SOS/Strike/util.h
src/ToolBox/SOS/Strike/vm.cpp
src/binder/assemblybinder.cpp
src/binder/clrprivbinderassemblyloadcontext.cpp
src/binder/clrprivbindercoreclr.cpp
src/binder/inc/assemblybinder.hpp
src/build.proj
src/classlibnative/bcltype/arraynative.cpp
src/classlibnative/bcltype/stringnative.cpp
src/classlibnative/bcltype/stringnative.h
src/corefx/System.Globalization.Native/locale.cpp
src/corefx/System.Globalization.Native/locale.hpp
src/corefx/System.Globalization.Native/localeStringData.cpp
src/debug/daccess/nidump.cpp
src/debug/daccess/stdafx.h
src/dlls/dbgshim/dbgshim.cpp
src/dlls/mscoree/mscoree.cpp
src/dlls/mscoree/unixinterface.cpp
src/gc/env/gcenv.base.h
src/gc/env/gcenv.os.h
src/gc/env/gcenv.structs.h
src/gc/gc.cpp
src/gc/gcpriv.h
src/gc/sample/gcenv.windows.cpp
src/inc/corcompile.h
src/inc/corguids.nativeproj
src/inc/corguids.targets
src/inc/corhdr.h
src/inc/corhost.h
src/inc/corinfo.h
src/inc/corjit.h
src/inc/dacvars.h
src/inc/holder.h
src/inc/jithelpers.h
src/inc/readytorun.h
src/inc/readytorunhelpers.h
src/inc/utilcode.h
src/inc/winrt/paraminstanceapi.h
src/jit/codegen.h
src/jit/codegenarm.cpp
src/jit/codegenarm64.cpp
src/jit/codegenclassic.h
src/jit/codegencommon.cpp
src/jit/codegenlegacy.cpp
src/jit/codegenlinear.h
src/jit/codegenxarch.cpp
src/jit/compiler.cpp
src/jit/compiler.h
src/jit/compiler.hpp
src/jit/disasm.cpp
src/jit/ee_il_dll.cpp
src/jit/emit.cpp
src/jit/emit.h
src/jit/emitarm.cpp
src/jit/emitarm64.cpp
src/jit/emitarm64.h
src/jit/emitfmtsarm64.h
src/jit/error.cpp
src/jit/flowgraph.cpp
src/jit/gentree.cpp
src/jit/gentree.h
src/jit/gtlist.h
src/jit/gtstructs.h
src/jit/host.h
src/jit/importer.cpp
src/jit/inline.cpp
src/jit/inline.def
src/jit/inline.h
src/jit/inlinepolicy.cpp
src/jit/inlinepolicy.h
src/jit/instr.cpp
src/jit/jit.h
src/jit/jitconfigvalues.h
src/jit/lclvars.cpp
src/jit/liveness.cpp
src/jit/lower.cpp
src/jit/lower.h
src/jit/lowerarm64.cpp
src/jit/lowerxarch.cpp
src/jit/lsra.cpp
src/jit/lsra.h
src/jit/lsra_reftypes.h [new file with mode: 0644]
src/jit/morph.cpp
src/jit/nodeinfo.h
src/jit/rangecheck.cpp
src/jit/regalloc.cpp
src/jit/regset.cpp
src/jit/regset.h
src/jit/target.h
src/md/compiler/classfactory.cpp
src/mscorlib/Common/Preprocessed/AssemblyRefs.CoreLib.g.cs [new file with mode: 0644]
src/mscorlib/System.Private.CoreLib.csproj [new file with mode: 0644]
src/mscorlib/Tools/BclRewriter/BclRewriter.targets
src/mscorlib/corefx/System/Globalization/CompareInfo.Unix.cs
src/mscorlib/facade/mscorlib.csproj [new file with mode: 0644]
src/mscorlib/model.CoreLib.xml [new file with mode: 0644]
src/mscorlib/model.xml
src/mscorlib/mscorlib.shared.sources.props
src/mscorlib/ref/mscorlib.cs [new file with mode: 0644]
src/mscorlib/ref/mscorlib.csproj [new file with mode: 0644]
src/mscorlib/src/Microsoft/Win32/Win32Native.cs
src/mscorlib/src/System/AppContext/AppContextDefaultValues.Defaults.cs
src/mscorlib/src/System/AppDomain.cs
src/mscorlib/src/System/AppDomainManager.cs
src/mscorlib/src/System/AppDomainSetup.cs
src/mscorlib/src/System/Diagnostics/Eventing/EventProvider.cs
src/mscorlib/src/System/Globalization/DateTimeFormatInfo.cs
src/mscorlib/src/System/IO/LongPathHelper.cs [new file with mode: 0644]
src/mscorlib/src/System/IO/PathInternal.cs [new file with mode: 0644]
src/mscorlib/src/System/Reflection/Assembly.cs
src/mscorlib/src/System/Reflection/Emit/AssemblyBuilder.cs
src/mscorlib/src/System/Reflection/Emit/AssemblyBuilderData.cs
src/mscorlib/src/System/Reflection/Emit/CustomAttributeBuilder.cs
src/mscorlib/src/System/Reflection/Emit/DynamicMethod.cs
src/mscorlib/src/System/Reflection/Emit/ILGenerator.cs
src/mscorlib/src/System/Reflection/Emit/LocalBuilder.cs
src/mscorlib/src/System/Reflection/Emit/MethodBuilder.cs
src/mscorlib/src/System/Reflection/Emit/ModuleBuilder.cs
src/mscorlib/src/System/Reflection/Emit/SignatureHelper.cs
src/mscorlib/src/System/Reflection/Emit/SymbolMethod.cs
src/mscorlib/src/System/Reflection/Emit/SymbolType.cs
src/mscorlib/src/System/Reflection/Emit/TypeBuilder.cs
src/mscorlib/src/System/Reflection/FieldInfo.cs
src/mscorlib/src/System/Reflection/Module.cs
src/mscorlib/src/System/Runtime/CompilerServices/AsyncMethodBuilder.cs
src/mscorlib/src/System/Runtime/InteropServices/Attributes.cs
src/mscorlib/src/System/Runtime/InteropServices/Marshal.cs
src/mscorlib/src/System/Runtime/InteropServices/NativeBuffer.cs [new file with mode: 0644]
src/mscorlib/src/System/Runtime/InteropServices/SafeHeapHandle.cs [new file with mode: 0644]
src/mscorlib/src/System/Runtime/InteropServices/StringBuffer.cs [new file with mode: 0644]
src/mscorlib/src/System/Runtime/Loader/AssemblyLoadContext.cs
src/mscorlib/src/System/RuntimeHandles.cs
src/mscorlib/src/System/Security/Policy/ApplicationTrust.cs
src/mscorlib/src/System/String.cs
src/mscorlib/src/System/StubHelpers.cs
src/mscorlib/src/System/Text/StringBuilder.cs
src/mscorlib/src/System/Threading/ExecutionContext.cs
src/mscorlib/src/System/Threading/SynchronizationContext.cs
src/mscorlib/src/System/Threading/Thread.cs
src/mscorlib/src/System/Threading/WaitHandle.cs
src/pal/inc/pal_error.h
src/pal/src/cruntime/filecrt.cpp
src/pal/src/exception/signal.cpp
src/pal/src/file/directory.cpp
src/pal/src/file/file.cpp
src/pal/src/include/pal/file.h
src/pal/src/include/pal/file.hpp
src/pal/src/include/pal/threadsusp.hpp
src/pal/src/thread/process.cpp
src/pal/src/thread/thread.cpp
src/pal/src/thread/threadsusp.cpp
src/pal/tests/palsuite/file_io/DeleteFileA/test1/CMakeLists.txt
src/pal/tests/palsuite/file_io/DeleteFileA/test1/DeleteFileA.cpp [moved from src/pal/tests/palsuite/file_io/DeleteFileA/test1/DeleteFileA.c with 80% similarity]
src/pal/tests/palsuite/file_io/RemoveDirectoryA/test1/CMakeLists.txt
src/pal/tests/palsuite/file_io/RemoveDirectoryA/test1/RemoveDirectoryA.cpp [moved from src/pal/tests/palsuite/file_io/RemoveDirectoryA/test1/RemoveDirectoryA.c with 66% similarity]
src/pal/tools/clang-compiler-override.txt
src/utilcode/util.cpp
src/utilcode/util_nodependencies.cpp
src/vm/amd64/cgenamd64.cpp
src/vm/amd64/jithelpers_fast.S
src/vm/amd64/jithelpers_fastwritebarriers.S
src/vm/amd64/jithelpers_slow.S
src/vm/appdomain.cpp
src/vm/appdomain.hpp
src/vm/appdomainnative.cpp
src/vm/appdomainnative.hpp
src/vm/arm/asmhelpers.S
src/vm/arm/ehhelpers.S
src/vm/arm/memcpy.S
src/vm/arm/stubs.cpp
src/vm/arm64/stubs.cpp
src/vm/array.cpp
src/vm/assemblynative.cpp
src/vm/assemblynative.hpp
src/vm/assemblyspec.cpp
src/vm/assemblyspec.hpp
src/vm/baseassemblyspec.h
src/vm/baseassemblyspec.inl
src/vm/ceeload.cpp
src/vm/ceeload.h
src/vm/clrprivbinderreflectiononlywinrt.h
src/vm/clrprivbinderwinrt.h
src/vm/clrprivtypecachereflectiononlywinrt.h
src/vm/clrprivtypecachewinrt.h
src/vm/codeman.cpp
src/vm/commodule.cpp
src/vm/commodule.h
src/vm/compile.cpp
src/vm/comutilnative.cpp
src/vm/corhost.cpp
src/vm/dllimport.cpp
src/vm/domainfile.cpp
src/vm/domainfile.inl
src/vm/ecalllist.h
src/vm/eventtrace.cpp
src/vm/excep.cpp
src/vm/fieldmarshaler.cpp
src/vm/fieldmarshaler.h
src/vm/frames.h
src/vm/gcenv.os.cpp
src/vm/gchelpers.cpp
src/vm/i386/cgenx86.cpp
src/vm/ilmarshalers.cpp
src/vm/ilmarshalers.h
src/vm/interoputil.cpp
src/vm/interoputil.h
src/vm/jithelpers.cpp
src/vm/jitinterface.cpp
src/vm/jitinterface.h
src/vm/marshalnative.h
src/vm/method.cpp
src/vm/method.hpp
src/vm/methodtable.cpp
src/vm/mlinfo.cpp
src/vm/mscorlib.h
src/vm/mtypes.h
src/vm/multicorejit.cpp
src/vm/multicorejitimpl.h
src/vm/multicorejitplayer.cpp
src/vm/nsenums.h
src/vm/object.h
src/vm/pefile.cpp
src/vm/pefile.h
src/vm/peimage.cpp
src/vm/peimage.h
src/vm/prestub.cpp
src/vm/readytoruninfo.cpp
src/vm/readytoruninfo.h
src/vm/runtimehandles.cpp
src/vm/runtimehandles.h
src/vm/threads.cpp
src/vm/threads.h
src/vm/typehashingalgorithms.h
src/vm/typeparse.cpp
src/vm/typeparse.h
src/vm/typestring.h
src/vm/versionresilienthashcode.cpp
src/vm/win32threadpool.cpp
src/vm/win32threadpool.h
src/vm/zapsig.cpp
src/zap/zapimage.cpp
src/zap/zapimport.cpp
src/zap/zapimport.h
src/zap/zapinfo.cpp
src/zap/zapinfo.h
src/zap/zapper.cpp
src/zap/zapreadytorun.cpp
tests/arm64/Tests.lst
tests/dir.props
tests/gcSimulatorTests.txt
tests/helix.targets
tests/helixperftasks.targets
tests/issues.targets
tests/longRunningGcTests.txt
tests/runtest.proj
tests/runtest.sh
tests/ryujit_x86_no_fallback_issues.targets
tests/src/CLRTest.Execute.Bash.targets
tests/src/CLRTest.Execute.Batch.targets
tests/src/Common/test_runtime/test_runtime.csproj
tests/src/CoreMangLib/system/delegate/VSD/OpenDelegate.cs [new file with mode: 0644]
tests/src/CoreMangLib/system/delegate/VSD/OpenDelegate.csproj [moved from tests/src/baseservices/threading/paramthreadstart/ThreadStartInt_3.csproj with 92% similarity]
tests/src/CoreMangLib/system/delegate/VSD/app.config [moved from tests/src/baseservices/threading/multiinstance/app.config with 84% similarity]
tests/src/CoreMangLib/system/delegate/VSD/project.json [moved from tests/src/baseservices/threading/multiinstance/project.json with 93% similarity]
tests/src/GC/Coverage/delete_next_card_table.csproj
tests/src/GC/Features/Finalizer/finalizeother/finalizearray.csproj
tests/src/GC/Features/HeapExpansion/Handles.csproj
tests/src/GC/Features/HeapExpansion/bestfit.csproj
tests/src/GC/Features/HeapExpansion/bestfit_1.csproj
tests/src/GC/Regressions/v2.0-beta2/462651/462651.csproj
tests/src/GC/Scenarios/Dynamo/dynamo.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator.csproj [moved from tests/src/JIT/Methodical/Boxing/xlang/sinlib_il_d.ilproj with 79% similarity]
tests/src/GC/Scenarios/GCSimulator/GCSimulator_1.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_10.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_100.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_101.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_102.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_103.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_104.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_105.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_106.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_107.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_108.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_109.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_11.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_110.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_111.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_112.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_113.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_114.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_115.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_116.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_117.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_118.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_119.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_12.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_120.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_121.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_122.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_123.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_124.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_125.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_126.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_127.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_128.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_129.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_13.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_130.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_131.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_132.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_133.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_134.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_135.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_136.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_137.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_138.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_139.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_14.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_140.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_141.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_142.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_143.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_144.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_145.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_146.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_147.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_148.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_149.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_15.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_150.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_151.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_152.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_153.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_154.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_155.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_156.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_157.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_158.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_159.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_16.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_160.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_161.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_162.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_163.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_164.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_165.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_166.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_167.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_168.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_169.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_17.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_170.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_171.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_172.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_173.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_174.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_175.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_176.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_177.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_178.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_179.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_18.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_180.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_181.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_182.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_183.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_184.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_185.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_186.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_187.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_188.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_189.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_19.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_190.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_191.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_192.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_193.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_194.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_195.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_196.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_197.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_198.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_199.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_2.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_20.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_200.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_201.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_202.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_203.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_204.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_205.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_206.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_207.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_208.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_209.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_21.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_210.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_211.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_212.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_213.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_214.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_215.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_216.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_217.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_218.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_219.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_22.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_220.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_221.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_222.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_223.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_224.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_225.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_226.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_227.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_228.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_229.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_23.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_230.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_231.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_232.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_233.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_234.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_235.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_236.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_237.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_238.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_239.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_24.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_240.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_241.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_242.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_243.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_244.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_245.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_246.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_247.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_248.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_249.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_25.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_250.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_251.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_252.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_253.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_254.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_255.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_256.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_257.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_258.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_259.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_26.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_260.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_261.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_262.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_263.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_264.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_265.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_266.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_267.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_268.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_269.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_27.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_270.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_271.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_272.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_273.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_274.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_275.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_276.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_277.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_278.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_279.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_28.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_280.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_281.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_282.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_283.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_284.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_285.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_286.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_287.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_288.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_289.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_29.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_290.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_291.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_292.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_293.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_294.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_295.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_296.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_297.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_298.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_299.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_3.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_30.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_300.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_301.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_302.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_303.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_304.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_305.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_306.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_307.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_308.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_309.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_31.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_310.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_311.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_312.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_313.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_314.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_315.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_316.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_317.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_318.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_319.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_32.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_320.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_321.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_322.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_323.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_324.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_325.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_326.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_327.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_328.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_329.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_33.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_330.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_331.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_332.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_333.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_334.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_335.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_336.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_337.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_338.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_339.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_34.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_340.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_341.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_342.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_343.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_344.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_345.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_346.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_347.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_348.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_349.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_35.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_350.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_351.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_352.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_353.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_354.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_355.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_356.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_357.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_358.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_359.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_36.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_360.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_361.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_362.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_363.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_364.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_365.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_366.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_367.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_368.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_369.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_37.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_370.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_371.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_372.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_373.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_374.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_375.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_376.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_377.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_378.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_379.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_38.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_380.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_381.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_382.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_383.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_384.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_385.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_386.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_387.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_388.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_389.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_39.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_390.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_391.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_392.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_393.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_394.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_395.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_396.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_397.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_398.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_399.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_4.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_40.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_400.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_401.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_402.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_403.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_404.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_405.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_406.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_407.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_408.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_409.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_41.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_410.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_411.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_412.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_413.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_414.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_415.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_416.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_417.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_418.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_419.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_42.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_420.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_421.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_422.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_423.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_424.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_425.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_426.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_427.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_428.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_429.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_43.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_430.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_431.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_432.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_44.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_45.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_46.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_47.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_48.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_49.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_5.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_50.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_51.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_52.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_53.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_54.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_55.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_56.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_57.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_58.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_59.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_6.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_60.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_61.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_62.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_63.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_64.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_65.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_66.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_67.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_68.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_69.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_7.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_70.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_71.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_72.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_73.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_74.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_75.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_76.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_77.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_78.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_79.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_8.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_80.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_81.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_82.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_83.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_84.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_85.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_86.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_87.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_88.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_89.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_9.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_90.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_91.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_92.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_93.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_94.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_95.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_96.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_97.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_98.csproj
tests/src/GC/Scenarios/GCSimulator/GCSimulator_99.csproj
tests/src/GC/Scenarios/LeakGen/leakgenthrd.csproj
tests/src/GC/Scenarios/MinLeakGen/minleakgen.csproj
tests/src/GC/Scenarios/ServerModel/servermodel.csproj
tests/src/Interop/BestFitMapping/BestFitMappingNative.cpp
tests/src/Interop/CMakeLists.txt
tests/src/Interop/MarshalAPI/String/StringMarshalingTest.cs
tests/src/Interop/MarshalAPI/String/StringMarshalingTest.csproj
tests/src/Interop/MarshalAPI/String/project.json
tests/src/Interop/StringMarshalling/UTF8/CMakeLists.txt [new file with mode: 0644]
tests/src/Interop/StringMarshalling/UTF8/UTF8Test.cs [new file with mode: 0644]
tests/src/Interop/StringMarshalling/UTF8/UTF8Test.csproj [moved from tests/src/baseservices/threading/multiinstance/multiinstance.csproj with 67% similarity]
tests/src/Interop/StringMarshalling/UTF8/UTF8TestNative.cpp [new file with mode: 0644]
tests/src/Interop/StringMarshalling/UTF8/project.json [new file with mode: 0644]
tests/src/Interop/StructMarshalling/PInvoke/MarshalStructAsParamDLL.h
tests/src/JIT/BBT/Scenario4/Not-Int32.il
tests/src/JIT/CodeGenBringUpTests/DivConst.cs [new file with mode: 0644]
tests/src/JIT/CodeGenBringUpTests/DivConst.csproj [new file with mode: 0644]
tests/src/JIT/CodeGenBringUpTests/ModConst.cs [new file with mode: 0644]
tests/src/JIT/CodeGenBringUpTests/ModConst.csproj [new file with mode: 0644]
tests/src/JIT/CodeGenBringUpTests/UDivConst.cs [new file with mode: 0644]
tests/src/JIT/CodeGenBringUpTests/UDivConst.csproj [new file with mode: 0644]
tests/src/JIT/CodeGenBringUpTests/UModConst.cs [new file with mode: 0644]
tests/src/JIT/CodeGenBringUpTests/UModConst.csproj [new file with mode: 0644]
tests/src/JIT/Directed/Convert/implicitConv.il
tests/src/JIT/Directed/Convert/minopts_convu1.il
tests/src/JIT/Directed/ExcepFilters/excepobj/excepobj.il
tests/src/JIT/Directed/ExcepFilters/fault/fault.il
tests/src/JIT/Directed/ExcepFilters/mixed/mixed.il
tests/src/JIT/Directed/ExcepFilters/mixed3/mixed3.il
tests/src/JIT/Directed/FaultHandlers/CallOrder/CallOrder.il
tests/src/JIT/Directed/FaultHandlers/Nesting/Nesting.il
tests/src/JIT/Directed/FaultHandlers/Simple/simple.il
tests/src/JIT/Directed/IL/PInvokeTail/PInvokeTail.il
tests/src/JIT/Directed/IL/PInvokeTail/tailwinapi.il
tests/src/JIT/Directed/IL/Tailcall/JitTailcall1.il
tests/src/JIT/Directed/IL/Tailcall/Jittailcall2.il
tests/src/JIT/Directed/IL/leave/leave2.il
tests/src/JIT/Directed/IL/mutualrecur-tailcall/MutualRecur-TailCall.il
tests/src/JIT/Directed/IL/rethrow/rethrow1.il
tests/src/JIT/Directed/IL/rethrow/rethrow2.il
tests/src/JIT/Directed/Misc/SIDEEFFECTS/BadRegArgs.il
tests/src/JIT/Directed/Misc/SIDEEFFECTS/SideEffects.il
tests/src/JIT/Directed/Misc/function_pointer/MutualThdRecur-fptr.il
tests/src/JIT/Directed/Misc/function_pointer/MutualThdRecur-fptr.ilproj [moved from tests/src/JIT/Methodical/cctor/misc/tail_il_r.ilproj with 91% similarity]
tests/src/JIT/Directed/Misc/function_pointer/funcptrtest.il
tests/src/JIT/Directed/PREFIX/unaligned/1/Box_Unbox.il
tests/src/JIT/Directed/PREFIX/unaligned/1/Desktop/add.il
tests/src/JIT/Directed/PREFIX/unaligned/1/add.il
tests/src/JIT/Directed/PREFIX/unaligned/1/arglist.il
tests/src/JIT/Directed/PREFIX/unaligned/1/arglist64.il
tests/src/JIT/Directed/PREFIX/unaligned/1/arglistARM.il
tests/src/JIT/Directed/PREFIX/unaligned/1/array_tests.il
tests/src/JIT/Directed/PREFIX/unaligned/1/cpblk.il
tests/src/JIT/Directed/PREFIX/unaligned/1/cpobj.il
tests/src/JIT/Directed/PREFIX/unaligned/1/field_tests.il
tests/src/JIT/Directed/PREFIX/unaligned/1/fielda_tests.il
tests/src/JIT/Directed/PREFIX/unaligned/1/initblk.il
tests/src/JIT/Directed/PREFIX/unaligned/1/initobj.il
tests/src/JIT/Directed/PREFIX/unaligned/1/ldind_stind.il
tests/src/JIT/Directed/PREFIX/unaligned/1/ldloca.il
tests/src/JIT/Directed/PREFIX/unaligned/1/ldobj.il
tests/src/JIT/Directed/PREFIX/unaligned/1/localloc.il
tests/src/JIT/Directed/PREFIX/unaligned/2/Box_Unbox.il
tests/src/JIT/Directed/PREFIX/unaligned/2/add.il
tests/src/JIT/Directed/PREFIX/unaligned/2/arglist.il
tests/src/JIT/Directed/PREFIX/unaligned/2/arglist64.il
tests/src/JIT/Directed/PREFIX/unaligned/2/arglistARM.il
tests/src/JIT/Directed/PREFIX/unaligned/2/array_tests.il
tests/src/JIT/Directed/PREFIX/unaligned/2/cpblk.il
tests/src/JIT/Directed/PREFIX/unaligned/2/cpobj.il
tests/src/JIT/Directed/PREFIX/unaligned/2/field_tests.il
tests/src/JIT/Directed/PREFIX/unaligned/2/fielda_tests.il
tests/src/JIT/Directed/PREFIX/unaligned/2/initblk.il
tests/src/JIT/Directed/PREFIX/unaligned/2/initobj.il
tests/src/JIT/Directed/PREFIX/unaligned/2/ldind_stind.il
tests/src/JIT/Directed/PREFIX/unaligned/2/ldloca.il
tests/src/JIT/Directed/PREFIX/unaligned/2/ldobj.il
tests/src/JIT/Directed/PREFIX/unaligned/2/localloc.il
tests/src/JIT/Directed/PREFIX/unaligned/4/Box_Unbox.il
tests/src/JIT/Directed/PREFIX/unaligned/4/Desktop/add.il
tests/src/JIT/Directed/PREFIX/unaligned/4/add.il
tests/src/JIT/Directed/PREFIX/unaligned/4/arglist.il
tests/src/JIT/Directed/PREFIX/unaligned/4/arglist64.il
tests/src/JIT/Directed/PREFIX/unaligned/4/arglistARM.il
tests/src/JIT/Directed/PREFIX/unaligned/4/array_tests.il
tests/src/JIT/Directed/PREFIX/unaligned/4/cpblk.il
tests/src/JIT/Directed/PREFIX/unaligned/4/cpobj.il
tests/src/JIT/Directed/PREFIX/unaligned/4/field_tests.il
tests/src/JIT/Directed/PREFIX/unaligned/4/fielda_tests.il
tests/src/JIT/Directed/PREFIX/unaligned/4/initblk.il
tests/src/JIT/Directed/PREFIX/unaligned/4/initobj.il
tests/src/JIT/Directed/PREFIX/unaligned/4/ldind_stind.il
tests/src/JIT/Directed/PREFIX/unaligned/4/ldloca.il
tests/src/JIT/Directed/PREFIX/unaligned/4/ldobj.il
tests/src/JIT/Directed/PREFIX/unaligned/4/localloc.il
tests/src/JIT/Directed/PREFIX/volatile/1/Box_Unbox.il
tests/src/JIT/Directed/PREFIX/volatile/1/Desktop/add.il
tests/src/JIT/Directed/PREFIX/volatile/1/add.il
tests/src/JIT/Directed/PREFIX/volatile/1/arglist.il
tests/src/JIT/Directed/PREFIX/volatile/1/arglist64.il
tests/src/JIT/Directed/PREFIX/volatile/1/arglistARM.il
tests/src/JIT/Directed/PREFIX/volatile/1/array_tests.il
tests/src/JIT/Directed/PREFIX/volatile/1/cpblk.il
tests/src/JIT/Directed/PREFIX/volatile/1/cpobj.il
tests/src/JIT/Directed/PREFIX/volatile/1/field_tests.il
tests/src/JIT/Directed/PREFIX/volatile/1/fielda_tests.il
tests/src/JIT/Directed/PREFIX/volatile/1/initblk.il
tests/src/JIT/Directed/PREFIX/volatile/1/initobj.il
tests/src/JIT/Directed/PREFIX/volatile/1/ldind_stind.il
tests/src/JIT/Directed/PREFIX/volatile/1/ldloca.il
tests/src/JIT/Directed/PREFIX/volatile/1/ldobj.il
tests/src/JIT/Directed/PREFIX/volatile/1/localloc.il
tests/src/JIT/Directed/RVAInit/extended.il
tests/src/JIT/Directed/RVAInit/gcref1.il
tests/src/JIT/Directed/RVAInit/gcref2.il
tests/src/JIT/Directed/RVAInit/nested.il
tests/src/JIT/Directed/RVAInit/oddsize.il
tests/src/JIT/Directed/RVAInit/overlap.il
tests/src/JIT/Directed/RVAInit/simple.il
tests/src/JIT/Directed/UnrollLoop/loop3.il
tests/src/JIT/Directed/array-il/complex3.il
tests/src/JIT/Directed/array-il/simple3.il
tests/src/JIT/Directed/coverage/compiler/FilterToHandler.il
tests/src/JIT/Directed/coverage/importer/Desktop/badldsfld.il
tests/src/JIT/Directed/coverage/importer/Desktop/bleref.il
tests/src/JIT/Directed/coverage/importer/Desktop/byrefsubbyref1.il
tests/src/JIT/Directed/coverage/importer/Desktop/ceeillegal.il
tests/src/JIT/Directed/coverage/importer/Desktop/ldelemnullarr1.il
tests/src/JIT/Directed/coverage/importer/Desktop/ldelemnullarr2.il
tests/src/JIT/Directed/coverage/importer/Desktop/ldfldr4.il
tests/src/JIT/Directed/coverage/importer/Desktop/ldfldstatic1.il
tests/src/JIT/Directed/coverage/importer/Desktop/ldfldunboxedvt.il
tests/src/JIT/Directed/coverage/importer/Desktop/nonrefsdarr.il
tests/src/JIT/Directed/coverage/importer/Desktop/nullsdarr.il
tests/src/JIT/Directed/coverage/importer/Desktop/refanytype1.il
tests/src/JIT/Directed/coverage/importer/Desktop/stfldstatic1.il
tests/src/JIT/Directed/coverage/importer/Desktop/subovfun1.il
tests/src/JIT/Directed/coverage/importer/badendfinally.il
tests/src/JIT/Directed/coverage/importer/badtailcall.il
tests/src/JIT/Directed/coverage/importer/byrefsubbyref1.il
tests/src/JIT/Directed/coverage/importer/calli2.il
tests/src/JIT/Directed/coverage/importer/ceeillegal.il
tests/src/JIT/Directed/coverage/importer/ldelemnullarr2.il
tests/src/JIT/Directed/coverage/importer/ldfldstatic1.il
tests/src/JIT/Directed/coverage/importer/ldfldunboxedvt.il
tests/src/JIT/Directed/coverage/importer/ldvirtftnsideeffect.il
tests/src/JIT/Directed/coverage/importer/nullsdarr.il
tests/src/JIT/Directed/coverage/importer/refanytype1.il
tests/src/JIT/Directed/coverage/importer/stfldstatic1.il
tests/src/JIT/Directed/coverage/importer/subovfun1.il
tests/src/JIT/Directed/coverage/importer/volatilldind.il
tests/src/JIT/Directed/coverage/importer/volatilstind.il
tests/src/JIT/Directed/coverage/oldtests/Desktop/callipinvoke.il
tests/src/JIT/Directed/coverage/oldtests/arrgetlen.il
tests/src/JIT/Directed/coverage/oldtests/callipinvoke.il
tests/src/JIT/Directed/coverage/oldtests/lcliimpl.il
tests/src/JIT/Directed/coverage/oldtests/ldfldstatic.il
tests/src/JIT/Directed/coverage/oldtests/ldsshrstsfld.il
tests/src/JIT/Directed/coverage/oldtests/ldvirtftncalli.il
tests/src/JIT/Directed/coverage/oldtests/ovfldiv1.il
tests/src/JIT/Directed/coverage/oldtests/ovfldiv2.il
tests/src/JIT/Directed/coverage/oldtests/ovflrem1.il
tests/src/JIT/Directed/coverage/oldtests/ovflrem2.il
tests/src/JIT/Directed/coverage/oldtests/stfldstatic1.il
tests/src/JIT/Directed/coverage/oldtests/stfldstatic2.il
tests/src/JIT/Directed/coverage/oldtests/subbyref.il
tests/src/JIT/Directed/coverage/oldtests/switchdefaultonly1.il
tests/src/JIT/Directed/coverage/oldtests/switchdefaultonly2.il
tests/src/JIT/Directed/coverage/oldtests/switchdefaultonly3.il
tests/src/JIT/Directed/coverage/oldtests/tls1.il
tests/src/JIT/Directed/coverage/oldtests/tls2.il
tests/src/JIT/Directed/coverage/oldtests/tlstest.il
tests/src/JIT/Directed/coverage/oldtests/trashreg.il
tests/src/JIT/Directed/coverage/oldtests/volatilecpobj.il
tests/src/JIT/Directed/coverage/oldtests/zeroinit.il
tests/src/JIT/Directed/leave/catch1.il
tests/src/JIT/Directed/leave/catch2.il
tests/src/JIT/Directed/leave/catch3.il
tests/src/JIT/Directed/leave/filter1.il
tests/src/JIT/Directed/leave/filter2.il
tests/src/JIT/Directed/leave/filter3.il
tests/src/JIT/Directed/leave/try1.il
tests/src/JIT/Directed/leave/try2.il
tests/src/JIT/Directed/leave/try3.il
tests/src/JIT/Directed/perffix/primitivevt/callconv3.il
tests/src/JIT/Directed/perffix/primitivevt/identity3.il
tests/src/JIT/Directed/pinning/object-pin/Object-Pin.il
tests/src/JIT/Directed/pinvoke/calli_excep.il
tests/src/JIT/Directed/pinvoke/jump.il
tests/src/JIT/Directed/pinvoke/preemptive_cooperative.il
tests/src/JIT/Directed/pinvoke/sysinfo.il
tests/src/JIT/Directed/pinvoke/tail.il
tests/src/JIT/Directed/refbyref/byref2iu.il
tests/src/JIT/Directed/refbyref/byrefconvert.il
tests/src/JIT/Directed/refbyref/ref2byref.il
tests/src/JIT/Directed/refbyref/ref2iu.il
tests/src/JIT/Directed/refbyref/refpinned2iu.il
tests/src/JIT/Directed/shift/int8.il
tests/src/JIT/Directed/shift/nativeint.il
tests/src/JIT/Directed/shift/nativeuint.il
tests/src/JIT/Directed/tailcall/tailcall.il
tests/src/JIT/Directed/throwbox/fault.il
tests/src/JIT/Directed/throwbox/filter.il
tests/src/JIT/Directed/throwbox/finally.il
tests/src/JIT/Directed/throwbox/rethrow.il
tests/src/JIT/Directed/tls/MutualRecurThd-TLS.il
tests/src/JIT/Directed/zeroinit/Dev10_863995.il
tests/src/JIT/Directed/zeroinit/init_byte.il
tests/src/JIT/Directed/zeroinit/init_int32.il
tests/src/JIT/Directed/zeroinit/init_int64.il
tests/src/JIT/Directed/zeroinit/init_struct.il
tests/src/JIT/Directed/zeroinit/init_uint32.il
tests/src/JIT/Directed/zeroinit/init_uint64.il
tests/src/JIT/Directed/zeroinit/tail.il
tests/src/JIT/Generics/ConstrainedCall/class1.il
tests/src/JIT/Generics/ConstrainedCall/class2.il
tests/src/JIT/Generics/ConstrainedCall/vt1.il
tests/src/JIT/Generics/ConstrainedCall/vt2.il
tests/src/JIT/Generics/ConstrainedCall/vt3.il
tests/src/JIT/Generics/ConstrainedCall/vt4.il
tests/src/JIT/Generics/regression/DDB148379/ddb148379.il
tests/src/JIT/IL_Conformance/Old/Base/add.il
tests/src/JIT/IL_Conformance/Old/Base/add_ovf.il
tests/src/JIT/IL_Conformance/Old/Base/and.il
tests/src/JIT/IL_Conformance/Old/Base/beq.il
tests/src/JIT/IL_Conformance/Old/Base/beq_s.il
tests/src/JIT/IL_Conformance/Old/Base/bge.il
tests/src/JIT/IL_Conformance/Old/Base/bge_s.il
tests/src/JIT/IL_Conformance/Old/Base/bgt.il
tests/src/JIT/IL_Conformance/Old/Base/bgt_s.il
tests/src/JIT/IL_Conformance/Old/Base/ble.il
tests/src/JIT/IL_Conformance/Old/Base/ble_s.il
tests/src/JIT/IL_Conformance/Old/Base/blt.il
tests/src/JIT/IL_Conformance/Old/Base/blt_s.il
tests/src/JIT/IL_Conformance/Old/Base/bne.il
tests/src/JIT/IL_Conformance/Old/Base/bne_s.il
tests/src/JIT/IL_Conformance/Old/Base/br.il
tests/src/JIT/IL_Conformance/Old/Base/br_s.il
tests/src/JIT/IL_Conformance/Old/Base/brfalse.il
tests/src/JIT/IL_Conformance/Old/Base/brfalse_s.il
tests/src/JIT/IL_Conformance/Old/Base/brtrue.il
tests/src/JIT/IL_Conformance/Old/Base/brtrue_s.il
tests/src/JIT/IL_Conformance/Old/Base/call.il
tests/src/JIT/IL_Conformance/Old/Base/ceq.il
tests/src/JIT/IL_Conformance/Old/Base/cgt.il
tests/src/JIT/IL_Conformance/Old/Base/ckfinite.il
tests/src/JIT/IL_Conformance/Old/Base/clt.il
tests/src/JIT/IL_Conformance/Old/Base/conv.il
tests/src/JIT/IL_Conformance/Old/Base/conv_ovf.il
tests/src/JIT/IL_Conformance/Old/Base/cpblk.il
tests/src/JIT/IL_Conformance/Old/Base/div.il
tests/src/JIT/IL_Conformance/Old/Base/dup.il
tests/src/JIT/IL_Conformance/Old/Base/initblk.il
tests/src/JIT/IL_Conformance/Old/Base/jmp.il
tests/src/JIT/IL_Conformance/Old/Base/ldarg_n.il
tests/src/JIT/IL_Conformance/Old/Base/ldarg_starg.il
tests/src/JIT/IL_Conformance/Old/Base/ldargs_stargs.il
tests/src/JIT/IL_Conformance/Old/Base/ldc.il
tests/src/JIT/IL_Conformance/Old/Base/ldc_i4_n.il
tests/src/JIT/IL_Conformance/Old/Base/ldftn_calli.il
tests/src/JIT/IL_Conformance/Old/Base/ldind_stind.il
tests/src/JIT/IL_Conformance/Old/Base/ldloc_stloc.il
tests/src/JIT/IL_Conformance/Old/Base/ldloca.il
tests/src/JIT/IL_Conformance/Old/Base/ldnull.il
tests/src/JIT/IL_Conformance/Old/Base/mul.il
tests/src/JIT/IL_Conformance/Old/Base/mul_ovf.il
tests/src/JIT/IL_Conformance/Old/Base/neg.il
tests/src/JIT/IL_Conformance/Old/Base/nop.il
tests/src/JIT/IL_Conformance/Old/Base/not.il
tests/src/JIT/IL_Conformance/Old/Base/or.il
tests/src/JIT/IL_Conformance/Old/Base/pop.il
tests/src/JIT/IL_Conformance/Old/Base/rem.il
tests/src/JIT/IL_Conformance/Old/Base/ret.il
tests/src/JIT/IL_Conformance/Old/Base/shl.il
tests/src/JIT/IL_Conformance/Old/Base/shr.il
tests/src/JIT/IL_Conformance/Old/Base/sub.il
tests/src/JIT/IL_Conformance/Old/Base/sub_ovf.il
tests/src/JIT/IL_Conformance/Old/Base/switch.il
tests/src/JIT/IL_Conformance/Old/Base/tailcall.il
tests/src/JIT/IL_Conformance/Old/Base/unaligned.il
tests/src/JIT/IL_Conformance/Old/Base/volatile.il
tests/src/JIT/IL_Conformance/Old/Base/xor.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ConvDLL.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/Conv_I4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/Conv_I8-64.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/Conv_R4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_I4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_ovf_i1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_ovf_i2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_ovf_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_ovf_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_ovf_u1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_ovf_u2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_ovf_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_ovf_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/add_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/and_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/and_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/beq_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/beq_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/beq_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/beq_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/beq_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bge_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bge_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bge_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bge_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bge_u.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bge_un_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bge_un_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bge_un_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bge_un_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bgt_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bgt_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bgt_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bgt_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bgt_u.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bgt_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bgt_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bgt_un_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bgt_un_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ble_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ble_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ble_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ble_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ble_u.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ble_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ble_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ble_un_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ble_un_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/blt_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/blt_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/blt_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/blt_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/blt_u.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/blt_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/blt_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/blt_un_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/blt_un_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bne_u.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bne_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bne_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bne_un_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/bne_un_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/br.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/brfalse.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/brtrue.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/c_br.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/c_brfalse.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/c_brtrue.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/c_call.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/c_cpblk.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/c_initblk.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/c_ldvirtftn.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/c_localloc.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/c_nop.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/c_ret.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/c_switch.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/call.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ceq_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ceq_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ceq_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ceq_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ceq_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/cgt_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/cgt_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/cgt_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/cgt_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/cgt_u.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/cgt_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/cgt_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/cgt_un_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/cgt_un_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ckfinite_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ckfinite_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/clt_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/clt_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/clt_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/clt_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/clt_u.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/clt_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/clt_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/clt_un_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/clt_un_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_i1_un.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_i4_i1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_i4_i2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_i4_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_i8_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_i8_i.ilproj
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_i8_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_i8_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_r8_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_r8_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_r8_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_u4_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_u4_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_u4_u1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_u4_u2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_u8_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_u8_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/cpblk.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/div_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/div_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/div_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/div_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/div_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/div_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/dup4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/dup8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/dupi.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/initblk.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarg_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarg_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarg_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarg_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarg_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarg_ref.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarga_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarga_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarga_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarga_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarga_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldarga_ref.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_add_ovf_i1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_add_ovf_i2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_add_ovf_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_add_ovf_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_add_ovf_u1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_add_ovf_u2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_add_ovf_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_add_ovf_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_c_cpblk.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_c_initblk.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_c_nop.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_c_ret.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_c_switch.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_ckfinite_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_ckfinite_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_i4_i1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_i4_i2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_i4_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_i8_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_i8_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_r8_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_r8_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_r8_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_u4_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_u4_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_u4_u1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_u4_u2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_u8_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_conv_ovf_u8_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_mul_ovf_i1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_mul_ovf_i2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_mul_ovf_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_mul_ovf_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_mul_ovf_u1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_mul_ovf_u2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_mul_ovf_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_mul_ovf_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_neg_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_neg_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_ret_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_ret_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_ret_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_ret_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_ret_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_ret_ref.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_sub_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_sub_ovf_i1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_sub_ovf_i2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_sub_ovf_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_sub_ovf_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_sub_ovf_u1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_sub_ovf_u2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_sub_ovf_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldc_sub_ovf_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldftn.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldind_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldind_i1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldind_i2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldind_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldind_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldind_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldind_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldind_ref.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldind_u1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldind_u2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldind_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldloc_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldloc_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldloc_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldloc_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldloc_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldloc_ref.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldnull_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldnull_ref.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ldvirtftn.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/localloc.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_ovf_i1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_ovf_i2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_ovf_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_ovf_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_ovf_u1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_ovf_u2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_ovf_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_ovf_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/mul_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/neg_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/neg_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/neg_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/neg_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/nop.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/not_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/not_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/or_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/or_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/pop4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/pop8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/popi.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/refs.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/rem_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/rem_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/rem_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/rem_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/rem_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/rem_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ret.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ret_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ret_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ret_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ret_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ret_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/ret_ref.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/shl_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/shl_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/shr_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/shr_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/shr_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/shr_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sizeof.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/starg_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/starg_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/starg_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/starg_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/starg_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/starg_ref.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stind_i1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stind_i2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stind_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stind_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stind_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stind_ref.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stloc_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stloc_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stloc_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stloc_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stloc_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/stloc_ref.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_i.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_ovf_i1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_ovf_i2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_ovf_i4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_ovf_i8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_ovf_u1.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_ovf_u2.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_ovf_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_ovf_u8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_r4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/sub_r8.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/switch.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/xor_u4.il
tests/src/JIT/IL_Conformance/Old/Conformance_Base/xor_u8.il
tests/src/JIT/IL_Conformance/Old/directed/AutoInit.il
tests/src/JIT/IL_Conformance/Old/directed/heap_ovf.il
tests/src/JIT/IL_Conformance/Old/directed/ldarg_s_i1.il
tests/src/JIT/IL_Conformance/Old/directed/ldarg_s_i2.il
tests/src/JIT/IL_Conformance/Old/directed/ldarg_s_i4.il
tests/src/JIT/IL_Conformance/Old/directed/ldarg_s_i8.il
tests/src/JIT/IL_Conformance/Old/directed/ldarg_s_r4.il
tests/src/JIT/IL_Conformance/Old/directed/ldarg_s_r8.il
tests/src/JIT/IL_Conformance/Old/directed/ldloc_s_i1.il
tests/src/JIT/IL_Conformance/Old/directed/ldloc_s_i2.il
tests/src/JIT/IL_Conformance/Old/directed/ldloc_s_i4.il
tests/src/JIT/IL_Conformance/Old/directed/ldloc_s_i8.il
tests/src/JIT/IL_Conformance/Old/directed/ldloc_s_r4.il
tests/src/JIT/IL_Conformance/Old/directed/ldloc_s_r8.il
tests/src/JIT/IL_Conformance/Old/directed/ldloca_s_i1.il
tests/src/JIT/IL_Conformance/Old/directed/ldloca_s_i2.il
tests/src/JIT/IL_Conformance/Old/directed/ldloca_s_i4.il
tests/src/JIT/IL_Conformance/Old/directed/ldloca_s_i8.il
tests/src/JIT/IL_Conformance/Old/directed/ldloca_s_r4.il
tests/src/JIT/IL_Conformance/Old/directed/ldloca_s_r8.il
tests/src/JIT/IL_Conformance/Old/objectmodel/Box_Unbox.il
tests/src/JIT/IL_Conformance/Old/objectmodel/array_tests.il
tests/src/JIT/IL_Conformance/Old/objectmodel/callintf.il
tests/src/JIT/IL_Conformance/Old/objectmodel/callnonvirt.il
tests/src/JIT/IL_Conformance/Old/objectmodel/callstatic.il
tests/src/JIT/IL_Conformance/Old/objectmodel/callsuper.il
tests/src/JIT/IL_Conformance/Old/objectmodel/callvirt.il
tests/src/JIT/IL_Conformance/Old/objectmodel/castclass.il
tests/src/JIT/IL_Conformance/Old/objectmodel/cpobj.il
tests/src/JIT/IL_Conformance/Old/objectmodel/field_tests.il
tests/src/JIT/IL_Conformance/Old/objectmodel/fielda_tests.il
tests/src/JIT/IL_Conformance/Old/objectmodel/initobj.il
tests/src/JIT/IL_Conformance/Old/objectmodel/isinst.il
tests/src/JIT/IL_Conformance/Old/objectmodel/ldlen.il
tests/src/JIT/IL_Conformance/Old/objectmodel/ldobj.il
tests/src/JIT/IL_Conformance/Old/objectmodel/ldstr.il
tests/src/JIT/IL_Conformance/Old/objectmodel/ldtoken.il
tests/src/JIT/IL_Conformance/Old/objectmodel/ldvirtftn.il
tests/src/JIT/IL_Conformance/Old/objectmodel/localloc.il
tests/src/JIT/IL_Conformance/Old/objectmodel/newobj.il
tests/src/JIT/IL_Conformance/Old/objectmodel/seh_tests.il
tests/src/JIT/IL_Conformance/Old/objectmodel/throw.il
tests/src/JIT/Methodical/Arrays/huge/huge_b.il
tests/src/JIT/Methodical/Arrays/huge/huge_i4.il
tests/src/JIT/Methodical/Arrays/huge/huge_objref.il
tests/src/JIT/Methodical/Arrays/huge/huge_r4.il
tests/src/JIT/Methodical/Arrays/huge/huge_r8.il
tests/src/JIT/Methodical/Arrays/huge/huge_struct.il
tests/src/JIT/Methodical/Arrays/huge/huge_u8.il
tests/src/JIT/Methodical/Arrays/huge_struct.il
tests/src/JIT/Methodical/Arrays/lcs/lcs_ldlen.il
tests/src/JIT/Methodical/Arrays/misc/_il_relarrres.ilproj
tests/src/JIT/Methodical/Arrays/misc/address.il
tests/src/JIT/Methodical/Arrays/misc/arrres.il
tests/src/JIT/Methodical/Arrays/misc/gcarr.il
tests/src/JIT/Methodical/Arrays/misc/initializearray_enum.il
tests/src/JIT/Methodical/Arrays/misc/ldelem_get.il
tests/src/JIT/Methodical/Arrays/misc/length0.il
tests/src/JIT/Methodical/Arrays/misc/lengthm2.il
tests/src/JIT/Methodical/Arrays/misc/selfref.il
tests/src/JIT/Methodical/Arrays/range/float64_range1.il
tests/src/JIT/Methodical/Arrays/range/float64_range2.il
tests/src/JIT/Methodical/Arrays/range/int32_0.il
tests/src/JIT/Methodical/Arrays/range/int32_0_5a.il
tests/src/JIT/Methodical/Arrays/range/int32_0_5b.il
tests/src/JIT/Methodical/Arrays/range/int32_1.il
tests/src/JIT/Methodical/Arrays/range/int32_m1.il
tests/src/JIT/Methodical/Arrays/range/int32_neg_range.il
tests/src/JIT/Methodical/Arrays/range/int32_range1.il
tests/src/JIT/Methodical/Arrays/range/int32_range2.il
tests/src/JIT/Methodical/Arrays/range/negIndexRngChkElim.il
tests/src/JIT/Methodical/Boxing/boxunbox/array.il
tests/src/JIT/Methodical/Boxing/boxunbox/chain.il
tests/src/JIT/Methodical/Boxing/boxunbox/finally.il
tests/src/JIT/Methodical/Boxing/boxunbox/huge_filter.il
tests/src/JIT/Methodical/Boxing/boxunbox/jump.il
tests/src/JIT/Methodical/Boxing/boxunbox/local.il
tests/src/JIT/Methodical/Boxing/boxunbox/localloc.il
tests/src/JIT/Methodical/Boxing/boxunbox/simple.il
tests/src/JIT/Methodical/Boxing/boxunbox/tailcall.il
tests/src/JIT/Methodical/Boxing/boxunbox/try.il
tests/src/JIT/Methodical/Boxing/callconv/instance.il
tests/src/JIT/Methodical/Boxing/functional/fibo.il
tests/src/JIT/Methodical/Boxing/functional/sin.il
tests/src/JIT/Methodical/Boxing/misc/concurgc.il
tests/src/JIT/Methodical/Boxing/misc/enum.il
tests/src/JIT/Methodical/Boxing/misc/nestval.il
tests/src/JIT/Methodical/Boxing/misc/tailjump.il
tests/src/JIT/Methodical/Boxing/misc/typedref.il
tests/src/JIT/Methodical/Boxing/seh/fault.il
tests/src/JIT/Methodical/Boxing/seh/filter.il
tests/src/JIT/Methodical/Boxing/seh/try.il
tests/src/JIT/Methodical/Boxing/xlang/_dbgsin_cs_cs.csproj
tests/src/JIT/Methodical/Boxing/xlang/_dbgsin_cs_il.csproj
tests/src/JIT/Methodical/Boxing/xlang/_dbgsin_il_cs.ilproj
tests/src/JIT/Methodical/Boxing/xlang/_dbgsin_il_il.ilproj
tests/src/JIT/Methodical/Boxing/xlang/_odbgsin_cs_cs.csproj
tests/src/JIT/Methodical/Boxing/xlang/_odbgsin_cs_il.csproj
tests/src/JIT/Methodical/Boxing/xlang/_odbgsin_il_cs.ilproj
tests/src/JIT/Methodical/Boxing/xlang/_odbgsin_il_il.ilproj
tests/src/JIT/Methodical/Boxing/xlang/_orelsin_cs_cs.csproj
tests/src/JIT/Methodical/Boxing/xlang/_orelsin_cs_il.csproj
tests/src/JIT/Methodical/Boxing/xlang/_orelsin_il_cs.ilproj
tests/src/JIT/Methodical/Boxing/xlang/_orelsin_il_il.ilproj
tests/src/JIT/Methodical/Boxing/xlang/_relsin_cs_cs.csproj
tests/src/JIT/Methodical/Boxing/xlang/_relsin_cs_il.csproj
tests/src/JIT/Methodical/Boxing/xlang/_relsin_il_cs.ilproj
tests/src/JIT/Methodical/Boxing/xlang/_relsin_il_il.ilproj
tests/src/JIT/Methodical/Boxing/xlang/sin_cs.il
tests/src/JIT/Methodical/Boxing/xlang/sin_il.il
tests/src/JIT/Methodical/Boxing/xlang/sinlib.il
tests/src/JIT/Methodical/Boxing/xlang/sinlib_cs.csproj [moved from tests/src/JIT/Methodical/Boxing/xlang/sinlib.csproj with 100% similarity]
tests/src/JIT/Methodical/Boxing/xlang/sinlib_il.ilproj [moved from tests/src/JIT/Methodical/Boxing/xlang/sinlib_il_r.ilproj with 100% similarity]
tests/src/JIT/Methodical/Coverage/arglist_pos.il
tests/src/JIT/Methodical/Coverage/b39946.il
tests/src/JIT/Methodical/Coverage/b518440.il
tests/src/JIT/Methodical/Coverage/hole.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/conv_i8_i.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/conv_i8_u.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/convovf_i8_i.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/convovf_i8_u-ia64.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_array_merge-i386.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_array_merge-ia64.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_box.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_conv.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_fld.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_flood.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_flow.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_prop.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_qsort1.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_qsort2.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_ref.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_seq.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/i_vfld.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/ptr.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/qperm.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/sizeof-i386.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/sizeof-ia64.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_array_merge-i386.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_array_merge-ia64.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_box.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_conv.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_fld.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_flood.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_flow.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_prop.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_qsort1.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_qsort2.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_ref.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_seq.il
tests/src/JIT/Methodical/ELEMENT_TYPE_IU/u_vfld.il
tests/src/JIT/Methodical/FPtrunc/convX.il
tests/src/JIT/Methodical/FPtrunc/convr4d.il
tests/src/JIT/Methodical/FPtrunc/convr8d.il
tests/src/JIT/Methodical/Invoke/25params/25param1b.il
tests/src/JIT/Methodical/Invoke/25params/25param1c.il
tests/src/JIT/Methodical/Invoke/25params/25param2b.il
tests/src/JIT/Methodical/Invoke/25params/25param2c.il
tests/src/JIT/Methodical/Invoke/25params/25param3b.il
tests/src/JIT/Methodical/Invoke/25params/25param3c.il
tests/src/JIT/Methodical/Invoke/25params/25paramMixed.il
tests/src/JIT/Methodical/Invoke/SEH/catchfault.il
tests/src/JIT/Methodical/Invoke/SEH/catchfault_jmp.il
tests/src/JIT/Methodical/Invoke/SEH/catchfault_tail.il
tests/src/JIT/Methodical/Invoke/SEH/catchfinally_ind.il
tests/src/JIT/Methodical/Invoke/SEH/catchfinally_jmp.il
tests/src/JIT/Methodical/Invoke/SEH/catchfinally_jmpind.il
tests/src/JIT/Methodical/Invoke/SEH/catchfinally_tail.il
tests/src/JIT/Methodical/Invoke/callvirt/test1.il
tests/src/JIT/Methodical/Invoke/callvirt/test2.il
tests/src/JIT/Methodical/Invoke/callvirt/test3.il
tests/src/JIT/Methodical/Invoke/ctor/val_cctor.il
tests/src/JIT/Methodical/Invoke/ctor/val_ctor_newobj.il
tests/src/JIT/Methodical/Invoke/deep/deep1.il
tests/src/JIT/Methodical/Invoke/deep/deep2.il
tests/src/JIT/Methodical/Invoke/fptr/ftn_t.il
tests/src/JIT/Methodical/Invoke/fptr/instftn.il
tests/src/JIT/Methodical/Invoke/fptr/instftn_t.il
tests/src/JIT/Methodical/Invoke/fptr/recurse_calli.il
tests/src/JIT/Methodical/Invoke/fptr/recurse_jmp.il
tests/src/JIT/Methodical/Invoke/fptr/recurse_jmpi.il
tests/src/JIT/Methodical/Invoke/fptr/recurse_tail_call.il
tests/src/JIT/Methodical/Invoke/fptr/recurse_tail_calli.il
tests/src/JIT/Methodical/Invoke/fptr/valftn.il
tests/src/JIT/Methodical/Invoke/fptr/valftn_t.il
tests/src/JIT/Methodical/Invoke/fptr/virtftn.il
tests/src/JIT/Methodical/Invoke/fptr/virtftn_t.il
tests/src/JIT/Methodical/Invoke/implicit/fr4.il
tests/src/JIT/Methodical/Invoke/implicit/fr8.il
tests/src/JIT/Methodical/Invoke/implicit/i4i1.il
tests/src/JIT/Methodical/Invoke/implicit/i4i2.il
tests/src/JIT/Methodical/Invoke/implicit/i4u1.il
tests/src/JIT/Methodical/Invoke/implicit/i4u2.il
tests/src/JIT/Methodical/Invoke/implicit/i4u4.il
tests/src/JIT/Methodical/Invoke/implicit/i8u8.il
tests/src/JIT/Methodical/Invoke/implicit/ii1.il
tests/src/JIT/Methodical/Invoke/implicit/ii2.il
tests/src/JIT/Methodical/Invoke/implicit/ii4.il
tests/src/JIT/Methodical/Invoke/implicit/iu1.il
tests/src/JIT/Methodical/Invoke/implicit/iu2.il
tests/src/JIT/Methodical/Invoke/implicit/iu4.il
tests/src/JIT/Methodical/Invoke/implicit/objref.il
tests/src/JIT/Methodical/Invoke/thiscall/thisnull.il
tests/src/JIT/Methodical/NaN/comp32.il
tests/src/JIT/Methodical/NaN/comp64.il
tests/src/JIT/Methodical/NaN/cond32.il
tests/src/JIT/Methodical/NaN/cond64.il
tests/src/JIT/Methodical/NaN/intrinsic_nonf.il
tests/src/JIT/Methodical/NaN/r4NaNconv.il
tests/src/JIT/Methodical/NaN/r8NaNconv.il
tests/src/JIT/Methodical/VT/callconv/aa.il
tests/src/JIT/Methodical/VT/callconv/calli.il
tests/src/JIT/Methodical/VT/callconv/dd.il
tests/src/JIT/Methodical/VT/callconv/ee.il
tests/src/JIT/Methodical/VT/callconv/jumper1.il
tests/src/JIT/Methodical/VT/callconv/jumper2.il
tests/src/JIT/Methodical/VT/callconv/jumper3.il
tests/src/JIT/Methodical/VT/callconv/jumper4.il
tests/src/JIT/Methodical/VT/callconv/jumper5.il
tests/src/JIT/Methodical/VT/callconv/jumps1.il
tests/src/JIT/Methodical/VT/callconv/jumps2.il
tests/src/JIT/Methodical/VT/callconv/jumps3.il
tests/src/JIT/Methodical/VT/callconv/jumps4.il
tests/src/JIT/Methodical/VT/callconv/jumps5.il
tests/src/JIT/Methodical/VT/callconv/vtret.il
tests/src/JIT/Methodical/VT/callconv/vtret2.il
tests/src/JIT/Methodical/VT/etc/han3.il
tests/src/JIT/Methodical/VT/etc/han3_ctor.il
tests/src/JIT/Methodical/VT/etc/han3_ref.il
tests/src/JIT/Methodical/VT/etc/hanoi.il
tests/src/JIT/Methodical/VT/etc/hanoi2.il
tests/src/JIT/Methodical/VT/etc/knight.il
tests/src/JIT/Methodical/VT/etc/nested.il
tests/src/JIT/Methodical/VT/identity/accum.il
tests/src/JIT/Methodical/VT/identity/livecall.il
tests/src/JIT/Methodical/VT/identity/volatile.il
tests/src/JIT/Methodical/VT/port/huge_gcref.il
tests/src/JIT/Methodical/casts/SEH/castclass_catch.il
tests/src/JIT/Methodical/casts/SEH/castclass_catch_neg.il
tests/src/JIT/Methodical/casts/SEH/filter.il
tests/src/JIT/Methodical/casts/SEH/isinst_catch.il
tests/src/JIT/Methodical/casts/SEH/isinst_catch_neg.il
tests/src/JIT/Methodical/casts/array/arrays.il
tests/src/JIT/Methodical/casts/array/castclass_ldlen.il
tests/src/JIT/Methodical/casts/array/isinst_ldlen.il
tests/src/JIT/Methodical/casts/coverage/castclass_call.il
tests/src/JIT/Methodical/casts/coverage/castclass_calli.il
tests/src/JIT/Methodical/casts/coverage/castclass_ldarg.il
tests/src/JIT/Methodical/casts/coverage/castclass_ldloc.il
tests/src/JIT/Methodical/casts/coverage/isinst_call.il
tests/src/JIT/Methodical/casts/coverage/isinst_calli.il
tests/src/JIT/Methodical/casts/coverage/isinst_ldarg.il
tests/src/JIT/Methodical/casts/coverage/isinst_ldloc.il
tests/src/JIT/Methodical/casts/coverage/ldnull.il
tests/src/JIT/Methodical/casts/iface/iface2.il
tests/src/JIT/Methodical/casts/ilseq/typeEqualOp.il
tests/src/JIT/Methodical/cctor/misc/deadlock.il
tests/src/JIT/Methodical/cctor/misc/tail.il [deleted file]
tests/src/JIT/Methodical/cctor/misc/tail_il_d.ilproj [deleted file]
tests/src/JIT/Methodical/cctor/misc/threads3.il [deleted file]
tests/src/JIT/Methodical/cctor/misc/threads3_il_d.ilproj [deleted file]
tests/src/JIT/Methodical/cctor/misc/threads3_il_r.ilproj [deleted file]
tests/src/JIT/Methodical/cctor/simple/Desktop/prefldinit3.il
tests/src/JIT/Methodical/cctor/simple/precise3.il [deleted file]
tests/src/JIT/Methodical/cctor/simple/precise3_il_d.ilproj [deleted file]
tests/src/JIT/Methodical/cctor/simple/precise3_il_r.ilproj [deleted file]
tests/src/JIT/Methodical/cctor/simple/prefldinit1.il
tests/src/JIT/Methodical/cctor/simple/prefldinit2.il
tests/src/JIT/Methodical/cctor/simple/prefldinit4.il
tests/src/JIT/Methodical/delegate/oddpower.il
tests/src/JIT/Methodical/eh/basics/emptyfinally.il
tests/src/JIT/Methodical/eh/basics/throwinexcept.il
tests/src/JIT/Methodical/eh/basics/throwinfault.il
tests/src/JIT/Methodical/eh/basics/throwinfilter.il
tests/src/JIT/Methodical/eh/basics/throwinfinallyintryfilter1.il
tests/src/JIT/Methodical/eh/basics/throwinfinallyintryfilter2.il
tests/src/JIT/Methodical/eh/basics/throwinfinallyintryfilter3.il
tests/src/JIT/Methodical/eh/basics/throwisfirstinstruction.il
tests/src/JIT/Methodical/eh/basics/tryexcept.il
tests/src/JIT/Methodical/eh/basics/tryfault.il
tests/src/JIT/Methodical/eh/basics/tryfaulttrycatch.il
tests/src/JIT/Methodical/eh/basics/tryfaulttrycatchfn.il
tests/src/JIT/Methodical/eh/basics/tryfinallywith2endfinally.il
tests/src/JIT/Methodical/eh/basics/tryfinallywith2reachableendfinally.il
tests/src/JIT/Methodical/eh/basics/trythrowexcept.il
tests/src/JIT/Methodical/eh/deadcode/badcodeaftercatch.il
tests/src/JIT/Methodical/eh/deadcode/badcodeafterfault.il
tests/src/JIT/Methodical/eh/deadcode/badcodeafterfilter.il
tests/src/JIT/Methodical/eh/deadcode/badcodeafterfinally.il
tests/src/JIT/Methodical/eh/deadcode/badcodeaftertry.il
tests/src/JIT/Methodical/eh/deadcode/badcodeinsidefinally.il
tests/src/JIT/Methodical/eh/deadcode/branchoverendfinally.il
tests/src/JIT/Methodical/eh/deadcode/deadEHregionacrossBB.il
tests/src/JIT/Methodical/eh/deadcode/deadcodeincatch.il
tests/src/JIT/Methodical/eh/deadcode/deadnonlocalexit.il
tests/src/JIT/Methodical/eh/deadcode/deadoponerror.il
tests/src/JIT/Methodical/eh/deadcode/deadoponerrorinfunclet.il
tests/src/JIT/Methodical/eh/deadcode/deadrgninfunclet.il
tests/src/JIT/Methodical/eh/deadcode/deadtrycatch.il
tests/src/JIT/Methodical/eh/deadcode/deadtryfinally.il
tests/src/JIT/Methodical/eh/deadcode/deadtryfinallythrow.il
tests/src/JIT/Methodical/eh/deadcode/endfinallyinloop.il
tests/src/JIT/Methodical/eh/deadcode/severaldeadehregions.il
tests/src/JIT/Methodical/eh/deadcode/severalnesteddeadehregions.il
tests/src/JIT/Methodical/eh/deadcode/simpledeadehregion.il
tests/src/JIT/Methodical/eh/disconnected/backwardleave.il
tests/src/JIT/Methodical/eh/disconnected/catchbeforetrybody.il
tests/src/JIT/Methodical/eh/disconnected/catchtryintryfinally.il
tests/src/JIT/Methodical/eh/disconnected/faultbeforetrybody.il
tests/src/JIT/Methodical/eh/disconnected/finallybeforetrybody.il
tests/src/JIT/Methodical/eh/disconnected/finallytryintryfinally.il
tests/src/JIT/Methodical/eh/disconnected/reversedhandlers.il
tests/src/JIT/Methodical/eh/disconnected/reversedtryblock.il
tests/src/JIT/Methodical/eh/disconnected/sehhandlerbeforetry.il
tests/src/JIT/Methodical/eh/disconnected/testeit.il
tests/src/JIT/Methodical/eh/disconnected/trybodyinbetweencatchhandlers.il
tests/src/JIT/Methodical/eh/disconnected/tryfinallyincatchtry.il
tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry.il
tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_cs_d.csproj
tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_cs_do.csproj
tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_cs_r.csproj
tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_cs_ro.csproj
tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_d.csproj [deleted file]
tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_d.ilproj
tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_do.csproj [deleted file]
tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_r.csproj [deleted file]
tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_r.ilproj
tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_ro.csproj [deleted file]
tests/src/JIT/Methodical/eh/finallyexec/nestedfinallycall.il
tests/src/JIT/Methodical/eh/finallyexec/nonlocalexittonestedsibling.il
tests/src/JIT/Methodical/eh/interactions/throw1dimarray.il
tests/src/JIT/Methodical/eh/interactions/throw2dimarray.il
tests/src/JIT/Methodical/eh/leaves/2branchesoutoftry.il
tests/src/JIT/Methodical/eh/leaves/backwardleaveincatch.il
tests/src/JIT/Methodical/eh/leaves/branchbackwardswithcatch.il
tests/src/JIT/Methodical/eh/leaves/branchbackwardswithfinally.il
tests/src/JIT/Methodical/eh/leaves/branchoutofnestedtryfinally.il
tests/src/JIT/Methodical/eh/leaves/branchoutoftryfinally.il
tests/src/JIT/Methodical/eh/leaves/forwardleaveincatch.il
tests/src/JIT/Methodical/eh/leaves/labelbeforefinally.il
tests/src/JIT/Methodical/eh/leaves/labelbeginningfinally.il
tests/src/JIT/Methodical/eh/leaves/leaveinsameregion.il
tests/src/JIT/Methodical/eh/leaves/leaveintotrybody.il
tests/src/JIT/Methodical/eh/leaves/tryfinallyintrycatchwithleaveintotry.il
tests/src/JIT/Methodical/eh/mixedhandler/catchfiltercatch.il
tests/src/JIT/Methodical/eh/mixedhandler/filterfiltercatchcatch.il
tests/src/JIT/Methodical/eh/nested/cascadedcatchret/cascadedcatch.il
tests/src/JIT/Methodical/eh/nested/cascadedcatchret/cascadedexcept.il
tests/src/JIT/Methodical/eh/nested/cascadedcatchret/throwincascadedcatch.il
tests/src/JIT/Methodical/eh/nested/cascadedcatchret/throwincascadedcatchnofin.il
tests/src/JIT/Methodical/eh/nested/cascadedcatchret/throwincascadedexcept.il
tests/src/JIT/Methodical/eh/nested/cascadedcatchret/throwincascadedexceptnofin.il
tests/src/JIT/Methodical/eh/nested/general/localvarincatch.il
tests/src/JIT/Methodical/eh/nested/general/throwinnestedcatch.il
tests/src/JIT/Methodical/eh/nested/nestedtry/nestedtrycatch.il
tests/src/JIT/Methodical/eh/nested/nestedtry/nestedtryexcept.il
tests/src/JIT/Methodical/eh/nested/nestedtry/nestedtryfault.il
tests/src/JIT/Methodical/eh/nested/nestedtry/nestedtryfinally.il
tests/src/JIT/Methodical/eh/nested/nestedtry/throwinnestedtrycatch.il
tests/src/JIT/Methodical/eh/nested/nestedtry/throwinnestedtryexcept.il
tests/src/JIT/Methodical/eh/nested/nestedtry/throwinnestedtryfault.il
tests/src/JIT/Methodical/eh/nested/nestedtry/throwinnestedtryfinally.il
tests/src/JIT/Methodical/eh/rethrow/rethrowinfinallyinsidecatch.il
tests/src/JIT/Methodical/explicit/basic/refarg_c.il
tests/src/JIT/Methodical/explicit/basic/refarg_f4.il
tests/src/JIT/Methodical/explicit/basic/refarg_f8.il
tests/src/JIT/Methodical/explicit/basic/refarg_i1.il
tests/src/JIT/Methodical/explicit/basic/refarg_i2.il
tests/src/JIT/Methodical/explicit/basic/refarg_i4.il
tests/src/JIT/Methodical/explicit/basic/refarg_o.il
tests/src/JIT/Methodical/explicit/basic/refarg_s.il
tests/src/JIT/Methodical/explicit/basic/refloc_c.il
tests/src/JIT/Methodical/explicit/basic/refloc_i1.il
tests/src/JIT/Methodical/explicit/basic/refloc_i2.il
tests/src/JIT/Methodical/explicit/basic/refloc_i4.il
tests/src/JIT/Methodical/explicit/basic/refloc_o.il
tests/src/JIT/Methodical/explicit/basic/refloc_o2.il
tests/src/JIT/Methodical/explicit/basic/refloc_r4.il
tests/src/JIT/Methodical/explicit/basic/refloc_r8.il
tests/src/JIT/Methodical/explicit/basic/refloc_u2.il
tests/src/JIT/Methodical/explicit/funcptr/expl_funcptr_gc.il
tests/src/JIT/Methodical/explicit/funcptr/expl_funcptr_val.il
tests/src/JIT/Methodical/explicit/funcptr/seq_funcptr_gc.il
tests/src/JIT/Methodical/explicit/funcptr/seq_funcptr_val.il
tests/src/JIT/Methodical/explicit/misc/refarg_box_f8.il
tests/src/JIT/Methodical/explicit/misc/refarg_box_val.il
tests/src/JIT/Methodical/explicit/rotate/rotarg_double.il
tests/src/JIT/Methodical/explicit/rotate/rotarg_float.il
tests/src/JIT/Methodical/explicit/rotate/rotarg_objref.il
tests/src/JIT/Methodical/explicit/rotate/rotarg_valref.il
tests/src/JIT/Methodical/explicit/rotate/rotate_i4.il
tests/src/JIT/Methodical/explicit/rotate/rotate_u2.il
tests/src/JIT/Methodical/flowgraph/bug619534/ILStackAllocRepro.il
tests/src/JIT/Methodical/flowgraph/bug619534/twoEndFinallys.il
tests/src/JIT/Methodical/flowgraph/bug619534/twoEndFinallys_il.ilproj [moved from tests/src/JIT/Methodical/flowgraph/bug619534/twoEndFinallys.ilproj with 100% similarity]
tests/src/JIT/Methodical/flowgraph/dev10_bug642944/GCMaskForGSCookie.il
tests/src/JIT/Methodical/flowgraph/dev10_bug675304/loopIV_init.il
tests/src/JIT/Methodical/flowgraph/dev10_bug679008/dependentLifetimes.il
tests/src/JIT/Methodical/flowgraph/dev10_bug679008/ehDescriptorPtrUpdate.il
tests/src/JIT/Methodical/flowgraph/dev10_bug679008/fgloop.il
tests/src/JIT/Methodical/flowgraph/dev10_bug679008/fgloop2.il
tests/src/JIT/Methodical/flowgraph/dev10_bug679008/helper.il
tests/src/JIT/Methodical/flowgraph/dev10_bug679053/cpblkInt32.il
tests/src/JIT/Methodical/flowgraph/dev10_bug679053/flowgraph.il
tests/src/JIT/Methodical/flowgraph/dev10_bug679053/regionLive.il
tests/src/JIT/Methodical/flowgraph/dev10_bug679955/indexMinusOne.il
tests/src/JIT/Methodical/flowgraph/dev10_bug679955/volatileLocal1.il
tests/src/JIT/Methodical/flowgraph/dev10_bug679955/volatileLocal2.il
tests/src/JIT/Methodical/inlining/boolean/InlineBool.cs [new file with mode: 0644]
tests/src/JIT/Methodical/inlining/boolean/app.config [moved from tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57367/app.config with 98% similarity]
tests/src/JIT/Methodical/inlining/boolean/test.csproj [moved from tests/src/JIT/Methodical/Arrays/misc/_il_dbgarrres.ilproj with 96% similarity]
tests/src/JIT/Methodical/inlining/dev10_bug719093/variancesmall.il
tests/src/JIT/Methodical/int64/arrays/hugedim.il
tests/src/JIT/Methodical/int64/arrays/lcs_long.il
tests/src/JIT/Methodical/int64/arrays/lcs_ulong.il
tests/src/JIT/Methodical/int64/misc/binop.il
tests/src/JIT/Methodical/int64/misc/box.il
tests/src/JIT/Methodical/int64/signed/s_addsub.il
tests/src/JIT/Methodical/int64/signed/s_ldc_div.il
tests/src/JIT/Methodical/int64/signed/s_ldc_mul.il
tests/src/JIT/Methodical/int64/signed/s_ldc_mulovf.il
tests/src/JIT/Methodical/int64/signed/s_ldfld_mul.il
tests/src/JIT/Methodical/int64/signed/s_ldfld_mulovf.il
tests/src/JIT/Methodical/int64/signed/s_ldsfld_mul.il
tests/src/JIT/Methodical/int64/signed/s_ldsfld_mulovf.il
tests/src/JIT/Methodical/int64/signed/s_muldiv.il
tests/src/JIT/Methodical/int64/superlong/superlong.il
tests/src/JIT/Methodical/int64/unsigned/addsub.il
tests/src/JIT/Methodical/int64/unsigned/ldc_mul.il
tests/src/JIT/Methodical/int64/unsigned/ldc_mulovf.il
tests/src/JIT/Methodical/int64/unsigned/ldfld_mul.il
tests/src/JIT/Methodical/int64/unsigned/ldfld_mulovf.il
tests/src/JIT/Methodical/int64/unsigned/ldsfld_mul.il
tests/src/JIT/Methodical/int64/unsigned/ldsfld_mulovf.il
tests/src/JIT/Methodical/int64/unsigned/muldiv.il
tests/src/JIT/Methodical/ldtoken/ldtoken.il
tests/src/JIT/Methodical/ldtoken/ldtokena.il
tests/src/JIT/Methodical/ldtoken/ptr_types.il
tests/src/JIT/Methodical/ldtoken/types.il
tests/src/JIT/Methodical/localloc/verify/verify01_dynamic.il
tests/src/JIT/Methodical/localloc/verify/verify01_large.il
tests/src/JIT/Methodical/localloc/verify/verify01_small.il
tests/src/JIT/Methodical/localloc/zeroinit/zeroinit01_large.il
tests/src/JIT/Methodical/localloc/zeroinit/zeroinit01_small.il
tests/src/JIT/Methodical/nonvirtualcall/classic.il
tests/src/JIT/Methodical/nonvirtualcall/delegate.il
tests/src/JIT/Methodical/nonvirtualcall/generics.il
tests/src/JIT/Methodical/nonvirtualcall/generics2.il
tests/src/JIT/Methodical/nonvirtualcall/tailcall.il
tests/src/JIT/Methodical/nonvirtualcall/valuetype.il
tests/src/JIT/Methodical/refany/array1.il
tests/src/JIT/Methodical/refany/array2.il
tests/src/JIT/Methodical/refany/array3.il
tests/src/JIT/Methodical/refany/format.il
tests/src/JIT/Methodical/refany/indcall.il
tests/src/JIT/Methodical/refany/lcs.il
tests/src/JIT/Methodical/refany/longsig.il
tests/src/JIT/Methodical/refany/native.il
tests/src/JIT/Methodical/refany/seq.il
tests/src/JIT/Methodical/refany/shortsig.il
tests/src/JIT/Methodical/refany/stress2.il
tests/src/JIT/Methodical/refany/u_native.il
tests/src/JIT/Methodical/switch/switch1.il
tests/src/JIT/Methodical/switch/switch10.il
tests/src/JIT/Methodical/switch/switch11.il
tests/src/JIT/Methodical/switch/switch2.il
tests/src/JIT/Methodical/switch/switch3.il
tests/src/JIT/Methodical/switch/switch4.il
tests/src/JIT/Methodical/switch/switch5.il
tests/src/JIT/Methodical/switch/switch6.il
tests/src/JIT/Methodical/switch/switch7.il
tests/src/JIT/Methodical/switch/switch8.il
tests/src/JIT/Methodical/switch/switch9.il
tests/src/JIT/Methodical/tailcall/compat_enum.il
tests/src/JIT/Methodical/tailcall/compat_i2_bool.il
tests/src/JIT/Methodical/tailcall/compat_i4_i1.il
tests/src/JIT/Methodical/tailcall/compat_i4_u.il
tests/src/JIT/Methodical/tailcall/compat_i_u2.il
tests/src/JIT/Methodical/tailcall/compat_obj.il
tests/src/JIT/Methodical/tailcall/compat_r4_r8.il
tests/src/JIT/Methodical/tailcall/compat_r4_r8_inl.il
tests/src/JIT/Methodical/tailcall/compat_r8_r4.il
tests/src/JIT/Methodical/tailcall/compat_r8_r4_inl.il
tests/src/JIT/Methodical/tailcall/compat_v.il
tests/src/JIT/Methodical/tailcall/deep_array.il
tests/src/JIT/Methodical/tailcall/deep_array_nz.il
tests/src/JIT/Methodical/tailcall/deep_gc.il
tests/src/JIT/Methodical/tailcall/deep_inst.il
tests/src/JIT/Methodical/tailcall/deep_value.il
tests/src/JIT/Methodical/tailcall/deep_virt.il
tests/src/JIT/Methodical/tailcall/gcval.il
tests/src/JIT/Methodical/tailcall/gcval_nested.il
tests/src/JIT/Methodical/tailcall/gcval_sideeffect.il
tests/src/JIT/Methodical/tailcall/pointer.il
tests/src/JIT/Methodical/tailcall/pointer_i.il
tests/src/JIT/Methodical/tailcall/recurse_ep.il
tests/src/JIT/Methodical/tailcall/recurse_ep_void.il
tests/src/JIT/Methodical/tailcall/reference_i.il
tests/src/JIT/Methodical/tailcall/test_2a.il
tests/src/JIT/Methodical/tailcall/test_2b.il
tests/src/JIT/Methodical/tailcall/test_2c.il
tests/src/JIT/Methodical/tailcall/test_3b.il
tests/src/JIT/Methodical/tailcall/test_implicit.il
tests/src/JIT/Methodical/tailcall/test_mutual_rec.il
tests/src/JIT/Methodical/tailcall/test_switch.il
tests/src/JIT/Methodical/tailcall/test_virt.il
tests/src/JIT/Methodical/tailcall/test_void.il
tests/src/JIT/Methodical/tailcall_v4/delegateTail.il
tests/src/JIT/Methodical/tailcall_v4/hijacking.il
tests/src/JIT/Methodical/tailcall_v4/smallFrame.il
tests/src/JIT/Methodical/tailcall_v4/tailcall_AV.il
tests/src/JIT/Methodical/varargs/callconv/gc_ctor.il
tests/src/JIT/Methodical/varargs/callconv/val_ctor.il
tests/src/JIT/Methodical/varargs/misc/Dev10_615402.il
tests/src/JIT/Methodical/varargs/seh/fault.il
tests/src/JIT/Methodical/varargs/seh/filter.il
tests/src/JIT/Methodical/xxblk/cpblk3.il
tests/src/JIT/Methodical/xxblk/initblk3.il
tests/src/JIT/Methodical/xxobj/ldobj/ldobj_I.il
tests/src/JIT/Methodical/xxobj/ldobj/ldobj_I8.il
tests/src/JIT/Methodical/xxobj/ldobj/ldobj_R4.il
tests/src/JIT/Methodical/xxobj/ldobj/ldobj_R8.il
tests/src/JIT/Methodical/xxobj/ldobj/ldobj_U2.il
tests/src/JIT/Methodical/xxobj/ldobj/ldobj_V.il
tests/src/JIT/Methodical/xxobj/operand/const.il
tests/src/JIT/Methodical/xxobj/operand/ldelema.il
tests/src/JIT/Methodical/xxobj/operand/localloc.il
tests/src/JIT/Methodical/xxobj/operand/mdarray.il
tests/src/JIT/Methodical/xxobj/operand/refanyval.il
tests/src/JIT/Methodical/xxobj/operand/unbox.il
tests/src/JIT/Methodical/xxobj/sizeof/64sizeof.il
tests/src/JIT/Methodical/xxobj/sizeof/64sizeof32.il
tests/src/JIT/Methodical/xxobj/sizeof/64sizeof64.il
tests/src/JIT/Methodical/xxobj/sizeof/sizeof.il
tests/src/JIT/Methodical/xxobj/sizeof/sizeof32.il
tests/src/JIT/Methodical/xxobj/sizeof/sizeof64.il
tests/src/JIT/Performance/CodeQuality/BenchF/MatInv4/MatInv4.cs
tests/src/JIT/Performance/CodeQuality/BenchF/Regula/Regula.cs
tests/src/JIT/Performance/CodeQuality/SciMark/kernel.cs
tests/src/JIT/Performance/CodeQuality/V8/Crypto/Crypto.cs
tests/src/JIT/Regression/CLR-x86-EJIT/V1-M09.5-PDC/b16935/b16935.il
tests/src/JIT/Regression/CLR-x86-EJIT/V1-M11-Beta1/b44018/b44018.il
tests/src/JIT/Regression/CLR-x86-EJIT/V1-M11-Beta1/b45046/b45046.il
tests/src/JIT/Regression/CLR-x86-EJIT/V1-M12-Beta2/b26323/b26323.il
tests/src/JIT/Regression/CLR-x86-EJIT/V1-M12-Beta2/b35455/b35455.il
tests/src/JIT/Regression/CLR-x86-EJIT/V1-M12-Beta2/b47392/b47392.il
tests/src/JIT/Regression/CLR-x86-EJIT/v1-m10/b07847/b07847.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b06440/b06440a.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b06440/b06440b.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b06440/b06440c.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b07341/b07341.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b09495/b09495.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b10665/b10665.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b10666/b10666.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b10894/b10894.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b10897/b10897.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b10939/b10939.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b10940/b10940a.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b10940/b10940b.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b11021/b11021.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b11413/b11413.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b11949/b11949.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b12274/b12274.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b12487/b12487.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b13509/b13509.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b13522/b13522.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b13586/b13586.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b13738/b13738.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14067/b14067a.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14067/b14067b.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14068/b14068.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14070/b14070.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14135/b14135.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14197/b14197.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14199/b14199.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14202/b14202.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14264/b14264.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14294/b14294.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14325/b14325.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14326/b14326.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14329/b14329.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14350/b14350.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14431/b14431.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14591/b14591.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14769/b14769.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14770/b14770.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14777/b14777.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14927/b14927.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b14928/b14928.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b15222/b15222.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b15244/b15244.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b15299/b15299.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16039/b16039.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16049/b16049.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16071/b16071.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16295/b16295.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16498/b16498.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16499/b16499a.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16499/b16499b.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16500/b16500.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16503/b16503.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16554/b16554.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16881/b16881a.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16881/b16881b.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16886/b16886.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16895/b16895.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16896/b16896.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16922/b16922.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16928/b16928.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b18852/b18852.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b20079/b20079.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b20217/b20217.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b20249/b20249.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25458/b25458.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25459/b25459.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25463/b25463.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25468/b25468-ia64.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25474/b25474.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25491/b25491.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25507/b25507.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25701/b25701-ia64.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25739/b25739.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25813/b25813.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25815/b25815.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25833/b25833.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b25835/b25835.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26020/b26020.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26153/b26153.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26155/b26155.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324a.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324b.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26332/b26332.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26512/b26512.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26748/b26748.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26888/b26888.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26957/b26957.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b27535/b27535.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b27538/b27538.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b27564/b27564.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b27657/b27657.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b27658/b27658.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b27880/b27880.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b27883/b27883.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b27917/b27917.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28080/b28080.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28522/b28522.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28594/b28594.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28595/b28595.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28596/b28596.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28597/b28597.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28805/b28805.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28806/b28806.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28901/b28901.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28927/b28927.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b29583/b29583.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30125/b30125.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30792/b30792.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30799/b30799.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30838/b30838.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30862/b30862.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30864/b30864.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30869/b30869.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30892/b30892.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30905/b30905.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b31102/b31102.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b31273/b31273.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b31321/b31321.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b31343/b31343.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b31448/b31448.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b32093/b32093.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b32374/b32374.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b32551/b32551a.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b32551/b32551b.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b32879/b32879.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b34423/b34423.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09/b16054/b16054.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M09/b16102/b16102.csproj
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b02043/b02043.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b02062/b02062.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b03995/b03995.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04083/b04083.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04250/b04250.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04257/b04257.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04306/b04306.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04345/b04345.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04384/b04384.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04538/b04538.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04574/b04574.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04583/b04583.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04612/b04612.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04639/b04639.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04726/b04726.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05214/b05214.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05617/b05617.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05619/b05619.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05621/b05621.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05622/b05622.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05637/b05637.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05639/b05639.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05737/b05737.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05740/b05740.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05773/b05773.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05780/b05780.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05784/b05784.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b05933/b05933.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b06436/b06436.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b06595/b06595.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b06730/b06730.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b06754/b06754.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b07082/b07082.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b07411/b07411.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b07458/b07458.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b07704/b07704.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b08107/b08107.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b08109/b08109.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b08672/b08672.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b08797/b08797.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b09254/b09254.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b27873/b27873.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b29351/b29351.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b33759/b33759.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b33792/b33792.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b33888/b33888.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b33922/b33922.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b33928/b33928.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b35784/b35784.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b36030/b36030.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b39381/b39381.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b39397/b39397.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b39417/b39417.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b39455/b39455.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b39946/b39946.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b40174/b40174.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b40199/b40199.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b40269/b40269.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b40347/b40347.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b40380/b40380.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b40411/b40411.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b40721/b40721.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b40725/b40725.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b41002/b41002.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b41126/b41126.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b41129/b41129.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b41149/b41149.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b41164/b41164.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b41262/b41262.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b41278/b41278.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b41627/b41627.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b42387/b42387.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b42732/b42732.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b43033/b43033.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b43040/b43040.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b43069/b43069.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b43115/b43115.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b43121/b43121.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b43160/b43160.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b43378/b43378.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b43714/b43714.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b43963/b43963.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b43994/b43994.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44020/b44020.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44204/b44204.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44224/b44224.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44657/b44657.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44723/b44723.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44724/b44724.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44861/b44861.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44879/b44879.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44946/b44946.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44983/b44983.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44984/b44984.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b44985/b44985.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b45439/b45439.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b45541/b45541.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b45956/b45956.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b45984/b45984.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b45985/b45985.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b46292/b46292.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b46569/b46569.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b46576/b46576.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b46583/b46583.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b46897/b46897.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b47022/b47022.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b47080/b47080-ia64.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b47093/b47093.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b47610/b47610.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b47885/b47885.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b47906/b47906.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b48350/b48350.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b48554/b48554a.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b48554/b48554b.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b48614/b48614.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b49101/b49101.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b49644/b49644.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b49984/b49984.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b16122/b16122.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b18857/b18857.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b28598/b28598.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b30868/b30868.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31283/b31283.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31289/b31289.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31292/b31292.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31423/b31423.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31452/b31452.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31493/b31493.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31547/b31547.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31780/b31780.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31784/b31784.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b32613/b32613.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b32614/b32614.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b33125/b33125.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b33131/b33131.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b33135/b33135.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b33335/b33335.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b33361/b33361.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b33362/b33362.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b33388/b33388.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b33585/b33585.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b33586/b33586.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b34951/b34951.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b34952/b34952.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b34953/b34953.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b35315/b35315.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b35344/b35344.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b35348/b35348.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b35351/b35351.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b35354/b35354.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b35366/b35366.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b35486/b35486.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b35635/b35635.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b35779/b35779.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b36301/b36301.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b36302/b36302.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b36304/b36304.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b36975/b36975.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b37214/b37214.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b37215/b37215.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b37238/b37238.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b37256/b37256.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b37578/b37578.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b37830/b37830.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b40006/b40006.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b40347/b40347.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b43693/b43693.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b43694/b43694.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b46566/b46566.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b47471/b47471.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b47886/b47886.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b49104/b49104.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b49142/b49142.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b49335/b49335.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b49435/b49435-ia64.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b50026/b50026.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b50027/b50027.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b50033/b50033.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b51420/b51420.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b51515/b51515.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b51575/b51575.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b53650/b53650.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b53662/b53662.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b53878/b53878.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b53884/b53884.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b53942/b53942a.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b53942/b53942b.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b53958/b53958.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b53977/b53977.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b53980/b53980.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b53994/b53994.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b53995/b53995.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b54006/b54006.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b54565/b54565.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b54566/b54566.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b54611/b54611.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b54971/b54971.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b55216/b55216.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b55875/b55875.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b55923/b55923.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b56066/b56066.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b56068/b56068.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b56174/b56174.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b56349/b56349.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b56780/b56780.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57367/b57367.cs [deleted file]
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57367/b57367.csproj [deleted file]
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57492/b57492.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57493/b57493.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57516/b57516.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57518/b57518.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57952/b57952.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b58358/b58358.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b58360/b58360.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b58689/b58689.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b58690/b58690.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b58866/b58866.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59319/b59319.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59320/b59320.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59337/b59337.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59477/b59477.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59478/b59478.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59508/b59508.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59546/b59546.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59554/b59554.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59647/b59647.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59678/b59678.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59782/b59782.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59822/b59822.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59857/b59857.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59858/b59858.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59947/b59947.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59948/b59948.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59949/b59949.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59952/b59952.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b59953/b59953.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b60127/b60127.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b60142/b60142.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b60194/b60194.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b61025/b61025.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b61185/b61185.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b61215/b61215.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b62145/b62145.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b63552/b63552.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b63725/b63725.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b63726/b63726.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b63730/b63730.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b63732/b63732.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b63743/b63743.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b63823/b63823.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b64026/b64026.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b64560/b64560.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65087/b65087.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65176/b65176.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65407/b65407.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b66226/b66226.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b66425/b66425.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b66583/b66583.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b66620/b66620.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b66679/b66679.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b67351/b67351.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b67744/b67744.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b67819/b67819.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b67987/b67987.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b68028/b68028.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b68045/b68045.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b68757/b68757.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b68872/b68872.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b69225/b69225.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b69227/b69227.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b69512/b69512.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b69528/b69528.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b69848/b69848.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b70267/b70267.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b70289/b70289.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b70335/b70335.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b70354/b70354.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b70808/b70808.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b70909/b70909.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b70964/b70964.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b70967/b70967.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b70992/b70992.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b70994/b70994.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b71003/b71003.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b71179/b71179.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b71318/b71318.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b71722/b71722.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b71831/b71831.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b71869/b71869.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b71999/b71999.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b72160/b72160.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b72161/b72161.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b72518/b72518.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b72522/b72522.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b72699/b72699.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b72828/b72828.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b73079/b73079.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b73207/b73207.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b73283/b73283.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b73786/b73786.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b74608/b74608.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b74937/b74937.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b74939/b74939.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b74976/b74976.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b75888/b75888.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b75890/b75890.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b75944/b75944.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b75945/b75945.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b75988/b75988.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b77304/b77304.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b77806/b77806.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b77950/b77950.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b79250/b79250.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b80043/b80043.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b80824/b80824.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b81938/b81938.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b82160/b82160.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b82247/b82247.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b82249/b82249.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b82715/b82715.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b84909/b84909.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b84916/b84916.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b84971/b84971.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b85316/b85316.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b101147/b101147.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b85477/b85477.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b86139/b86139.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b89409/b89409.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b89546/b89546.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b90129/b90129.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91021/b91021.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91203/b91203.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91223/b91223.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91359/b91359.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b92066/b92066.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b92073/b92073.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b92289/b92289.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b92736/b92736.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b93635/b93635.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b94306/b94306.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b98958/b98958.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b99667/b99667.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-QFE/b147814/rembug.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-QFE/b147816/loop.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-QFE/b151440/params-mixed.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-QFE/b151440/params-none.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-QFE/b151440/params-object.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-QFE/b151440/params-value.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-QFE/b151440/params-varargs.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-QFE/b151440/static-mixed.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-QFE/b151440/static-none.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-QFE/b151440/static-object.il
tests/src/JIT/Regression/CLR-x86-JIT/V1-QFE/b151440/static-ref.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.1-M1-Beta1/b139895/b139895.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.1-M1-Beta1/b140118/b140118.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.1-M1-Beta1/b143840/b143840.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b102637/gbug.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b147147/samabo.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b147924/bigdat.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b180381/constrained2.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b213516/exe-219037.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b213516/lib-219037.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b220968/1.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b223924/bug2.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b223932/bug3.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b223936/bug4.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b00722/b00722.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b03689/test-tls.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b04319/b04319.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b05623/b05623.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b06020/b06020.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b07369/b07369.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b07383/b07383.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b07947/b07947.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b08046/SyncGCHole.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b13452/b13452.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b14617/b14617.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b15617/arrayDim.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b16378/bbHndIndex.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b16382/bbFlags.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b16473/ebdTryEnd.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M01/b18049/loop2.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M02/b102962/t.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M02/b102962/t2.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M02/b102962/vc178279.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M02/b115932/t.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M02/b115932/t1.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M02/b118260/b118260.il
tests/src/JIT/Regression/CLR-x86-JIT/V1.2-M02/b138117/ldsfldainitonlyvt.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b091942/nullref.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b125091/eh.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b309555/x86-test-1084346006.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b323557/1087985874.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b353858/b353858.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b359564/1093488365.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b374944/helper.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b409617/b409617.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b409748/b409748.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b415164/b415164.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b423755/Desktop/b423755.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b423755/b423755.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b426654/b426654.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b441487/b441487.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-RTM/b471305/b471305.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-RTM/b475589/b475589.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-RTM/b487364/b487364.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-RTM/b487372/b487372.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-RTM/b489329/b489329.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-RTM/b518440/b518440.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-RTM/b530694/b530694.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-RTM/b598031/test.il
tests/src/JIT/Regression/CLR-x86-JIT/V2.0-RTM/b598031/test2.il
tests/src/JIT/Regression/CLR-x86-JIT/dev10/b404051/b404051.il
tests/src/JIT/Regression/CLR-x86-JIT/dev10/b440158/b440158.il
tests/src/JIT/Regression/CLR-x86-JIT/dev10/b464149/b464149.il
tests/src/JIT/Regression/CLR-x86-JIT/v2.1/DDB/B168384/LdfldaHack.il
tests/src/JIT/Regression/CLR-x86-JIT/v2.1/DDB/b170362/b170362.il
tests/src/JIT/Regression/CLR-x86-JIT/v2.1/DDB/b170362/b170362_il.ilproj [moved from tests/src/JIT/Regression/CLR-x86-JIT/v2.1/DDB/b170362/b170362.ilproj with 100% similarity]
tests/src/JIT/Regression/CLR-x86-JIT/v2.1/DDB/b174294/spill.il
tests/src/JIT/Regression/CLR-x86-JIT/v2.1/DDB/b175679/b175679.il
tests/src/JIT/Regression/CLR-x86-JIT/v2.1/DDB/b176032/b176032.il
tests/src/JIT/Regression/CLR-x86-JIT/v2.1/b173313/b173313.il
tests/src/JIT/Regression/CLR-x86-JIT/v2.1/b193264/b193264.il
tests/src/JIT/Regression/CLR-x86-JIT/v2.1/b48850/b48850.il
tests/src/JIT/Regression/CLR-x86-JIT/v2.1/b609988/Desktop/b609988.il
tests/src/JIT/Regression/CLR-x86-JIT/v2.1/b609988/b609988.il
tests/src/JIT/Regression/CLR-x86-JIT/v2.2/ddb/b429039/b429039.il
tests/src/JIT/Regression/Dev11/Dev11_468598/Test_HndIndex_10_Plain.il
tests/src/JIT/Regression/Dev11/Dev11_468598/Test_HndIndex_10_Reordered.il
tests/src/JIT/Regression/Dev11/Dev11_b473131/b473131.il
tests/src/JIT/Regression/Dev11/Dev11_b473131/b473131_byte.il
tests/src/JIT/Regression/Dev11/Dev11_b473131/b473131_fld.il
tests/src/JIT/Regression/Dev11/Dev11_b473131/b473131_intptr.il
tests/src/JIT/Regression/Dev11/Dev11_b473131/b473131_struct.il
tests/src/JIT/Regression/Dev11/DevDiv2_11321/DevDiv2_11321.il
tests/src/JIT/Regression/Dev11/External/Dev11_14131/VectorForwarder.il
tests/src/JIT/Regression/Dev11/External/Dev11_90434/UseUnalignedDouble.il
tests/src/JIT/Regression/Dev11/External/dev11_132534/jmpwrappers.il
tests/src/JIT/Regression/Dev11/External/dev11_13748/ReflectOnField.il
tests/src/JIT/Regression/Dev11/External/dev11_145295/ilpart.il
tests/src/JIT/Regression/Dev11/dev10_865840/dev10_865840.il
tests/src/JIT/Regression/Dev11/dev11_10427/conv_ovf_i4.il
tests/src/JIT/Regression/JitBlue/DevDiv_150586/DevDiv_150586.il
tests/src/JIT/Regression/JitBlue/devdiv_180411/devdiv_180411.il
tests/src/JIT/Regression/JitBlue/devdiv_815941/DevDiv_815941.il
tests/src/JIT/Regression/JitBlue/devdiv_815942/DevDiv_815942.il
tests/src/JIT/Regression/JitBlue/devdiv_902271/DevDiv_902271.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b102759/b102759.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b102870/b102870.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b103838/c.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b106158/branchoutoftry.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b108366/bug.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b108908/b108908.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b109721/bug.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b109878/rem_r4.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b112348/length0.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b112982/exceptobj.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b113286/array.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b114628/array.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b115103/b115103.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b141062/ericswitch.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b79852/b79852.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b79858/b79858.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b80365/b80365-ia64.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b80373/b80373.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b80737/fbug5.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b80738/fbug6.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b81763/b81763.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b81764/b81764.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b81766/b81766.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b84128/b84128.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b84129/b84129.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b84131/b84131.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b84136/b84136.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b84586/b84586.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b84590/b84590.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b84592/b84592.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b84957/b84957.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b84958/b84958.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b84961/b84961.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b84962/b84962.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b85314/b85314.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b85315/b85315.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b85316/f2.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b85317/b85317.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b85564/b85564.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b85565/b85565.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b85566/b85566.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b92713/b92713.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b92726/b92726.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b98431/ConsoleApplication2.il
tests/src/JIT/Regression/VS-ia64-JIT/M00/b99403/cbyte7a.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-Beta1/b126221/cs_il.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-Beta1/b142473/loop_06_24_02.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-Beta1/b223862/bug1.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-Beta1/b91953/2.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M01/b10802/repro.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M01/b10841/repro_good.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M01/b10852/test3.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M01/b11131/bug2.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M01/b11878/test_07.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M01/b12022/test_10.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M01/b12263/nullref.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M01/b12343/test_04a.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M01/b12390/test_04a.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M01/b12425/test_17.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M01/b13691/init_byte.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b102518/hole.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b102844/tailcallcalli.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b12011/test_08.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b14355/call01.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b14364/life-annotated.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b14366/bug2.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b14368/bug4.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b14369/bug5.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b16198/decm010.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b16224/test_25.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b17023/test1a.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b17751/bug4.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b17904/test.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b19101/test_01.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b19289/test_09.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b22521/branch_06.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b22680/1.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b27077/Negative001.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/test.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/test64.il
tests/src/JIT/Regression/VS-ia64-JIT/V1.2-M02/b29727/2.il
tests/src/JIT/Regression/VS-ia64-JIT/V2.0-Beta2/b309576/bug2.il
tests/src/JIT/Regression/VS-ia64-JIT/V2.0-Beta2/b333008/b333008.il
tests/src/JIT/Regression/VS-ia64-JIT/V2.0-Beta2/b356258/b356258.il
tests/src/JIT/Regression/VS-ia64-JIT/V2.0-Beta2/b410474/b410474.il
tests/src/JIT/Regression/VS-ia64-JIT/V2.0-Beta2/b431098/b431098.il
tests/src/JIT/Regression/VS-ia64-JIT/V2.0-Beta2/b450688/b450688.il
tests/src/JIT/Regression/VS-ia64-JIT/V2.0-RTM/b286991/b286991.il
tests/src/JIT/Regression/VS-ia64-JIT/V2.0-RTM/b460385/b460385.il
tests/src/JIT/Regression/clr-x64-JIT/v2.1/b173569/b173569.il
tests/src/JIT/Regression/clr-x64-JIT/v4.0/b602182/b602182.il
tests/src/JIT/Regression/v4/dev10_804810/dev10_804810.il
tests/src/JIT/SIMD/CircleInConvex.cs
tests/src/JIT/SIMD/VectorReturn.cs
tests/src/JIT/jit64/eh/FinallyExec/nonlocalexitincatch.il
tests/src/JIT/jit64/eh/FinallyExec/nonlocalexitinfinally.il
tests/src/JIT/jit64/eh/FinallyExec/nonlocalexitinhandler.il
tests/src/JIT/jit64/eh/FinallyExec/nonlocalexitinroot.il
tests/src/JIT/jit64/eh/FinallyExec/nonlocalexitintry.il
tests/src/JIT/jit64/eh/basics/throwinfinallyintryfilter1.il
tests/src/JIT/jit64/eh/basics/throwinfinallyintryfilter2.il
tests/src/JIT/jit64/eh/basics/throwinfinallyintryfilter3.il
tests/src/JIT/jit64/eh/basics/throwisfirstinstruction.il
tests/src/JIT/jit64/localloc/call/call05_dynamic.il
tests/src/JIT/jit64/localloc/call/call05_large.il
tests/src/JIT/jit64/localloc/common/common.il
tests/src/JIT/jit64/localloc/eh/eh03_dynamic.il
tests/src/JIT/jit64/localloc/eh/eh03_large.il
tests/src/JIT/jit64/localloc/eh/eh03_small.il
tests/src/JIT/jit64/localloc/eh/eh04_dynamic.il
tests/src/JIT/jit64/localloc/eh/eh04_large.il
tests/src/JIT/jit64/localloc/eh/eh04_small.il
tests/src/JIT/jit64/localloc/ehverify/eh05_dynamic.il
tests/src/JIT/jit64/localloc/ehverify/eh06_dynamic.il
tests/src/JIT/jit64/localloc/ehverify/eh07_dynamic.il
tests/src/JIT/jit64/localloc/ehverify/eh07_large.il
tests/src/JIT/jit64/localloc/ehverify/eh07_small.il
tests/src/JIT/jit64/localloc/ehverify/eh08_dynamic.il
tests/src/JIT/jit64/localloc/ehverify/eh11_dynamic.il
tests/src/JIT/jit64/localloc/ehverify/eh11_large.il
tests/src/JIT/jit64/localloc/ehverify/eh11_small.il
tests/src/JIT/jit64/localloc/ehverify/eh12_dynamic.il
tests/src/JIT/jit64/localloc/ehverify/eh12_large.il
tests/src/JIT/jit64/localloc/ehverify/eh12_small.il
tests/src/JIT/jit64/localloc/ehverify/eh13_dynamic.il
tests/src/JIT/jit64/localloc/ehverify/eh13_large.il
tests/src/JIT/jit64/localloc/ehverify/eh13_small.il
tests/src/JIT/jit64/localloc/unwind/unwind04_dynamic.il
tests/src/JIT/jit64/localloc/unwind/unwind04_large.il
tests/src/JIT/jit64/localloc/unwind/unwind04_small.il
tests/src/JIT/jit64/localloc/unwind/unwind05_dynamic.il
tests/src/JIT/jit64/localloc/unwind/unwind05_large.il
tests/src/JIT/jit64/localloc/unwind/unwind05_small.il
tests/src/JIT/jit64/localloc/unwind/unwind06_dynamic.il
tests/src/JIT/jit64/localloc/unwind/unwind06_large.il
tests/src/JIT/jit64/localloc/unwind/unwind06_small.il
tests/src/JIT/jit64/localloc/verify/verify01_dynamic.il
tests/src/JIT/jit64/localloc/verify/verify01_large.il
tests/src/JIT/jit64/localloc/verify/verify01_small.il
tests/src/JIT/jit64/localloc/zeroinit/zeroinit01_large.il
tests/src/JIT/jit64/localloc/zeroinit/zeroinit01_small.il
tests/src/JIT/jit64/mcc/common/common.il
tests/src/JIT/jit64/mcc/interop/mcc_i00.il
tests/src/JIT/jit64/mcc/interop/mcc_i01.il
tests/src/JIT/jit64/mcc/interop/mcc_i02.il
tests/src/JIT/jit64/mcc/interop/mcc_i03.il
tests/src/JIT/jit64/mcc/interop/mcc_i04.il
tests/src/JIT/jit64/mcc/interop/mcc_i05.il
tests/src/JIT/jit64/mcc/interop/mcc_i06.il
tests/src/JIT/jit64/mcc/interop/mcc_i07.il
tests/src/JIT/jit64/mcc/interop/mcc_i10.il
tests/src/JIT/jit64/mcc/interop/mcc_i11.il
tests/src/JIT/jit64/mcc/interop/mcc_i12.il
tests/src/JIT/jit64/mcc/interop/mcc_i13.il
tests/src/JIT/jit64/mcc/interop/mcc_i14.il
tests/src/JIT/jit64/mcc/interop/mcc_i15.il
tests/src/JIT/jit64/mcc/interop/mcc_i16.il
tests/src/JIT/jit64/mcc/interop/mcc_i17.il
tests/src/JIT/jit64/mcc/interop/mcc_i30.il
tests/src/JIT/jit64/mcc/interop/mcc_i31.il
tests/src/JIT/jit64/mcc/interop/mcc_i32.il
tests/src/JIT/jit64/mcc/interop/mcc_i33.il
tests/src/JIT/jit64/mcc/interop/mcc_i34.il
tests/src/JIT/jit64/mcc/interop/mcc_i35.il
tests/src/JIT/jit64/mcc/interop/mcc_i36.il
tests/src/JIT/jit64/mcc/interop/mcc_i37.il
tests/src/JIT/jit64/mcc/interop/mcc_i50.il
tests/src/JIT/jit64/mcc/interop/mcc_i51.il
tests/src/JIT/jit64/mcc/interop/mcc_i52.il
tests/src/JIT/jit64/mcc/interop/mcc_i53.il
tests/src/JIT/jit64/mcc/interop/mcc_i54.il
tests/src/JIT/jit64/mcc/interop/mcc_i55.il
tests/src/JIT/jit64/mcc/interop/mcc_i56.il
tests/src/JIT/jit64/mcc/interop/mcc_i57.il
tests/src/JIT/jit64/mcc/interop/mcc_i60.il
tests/src/JIT/jit64/mcc/interop/mcc_i61.il
tests/src/JIT/jit64/mcc/interop/mcc_i62.il
tests/src/JIT/jit64/mcc/interop/mcc_i63.il
tests/src/JIT/jit64/mcc/interop/mcc_i64.il
tests/src/JIT/jit64/mcc/interop/mcc_i65.il
tests/src/JIT/jit64/mcc/interop/mcc_i66.il
tests/src/JIT/jit64/mcc/interop/mcc_i67.il
tests/src/JIT/jit64/mcc/interop/mcc_i70.il
tests/src/JIT/jit64/mcc/interop/mcc_i71.il
tests/src/JIT/jit64/mcc/interop/mcc_i72.il
tests/src/JIT/jit64/mcc/interop/mcc_i73.il
tests/src/JIT/jit64/mcc/interop/mcc_i74.il
tests/src/JIT/jit64/mcc/interop/mcc_i75.il
tests/src/JIT/jit64/mcc/interop/mcc_i76.il
tests/src/JIT/jit64/mcc/interop/mcc_i77.il
tests/src/JIT/jit64/mcc/interop/mcc_i80.il
tests/src/JIT/jit64/mcc/interop/mcc_i81.il
tests/src/JIT/jit64/mcc/interop/mcc_i82.il
tests/src/JIT/jit64/mcc/interop/mcc_i83.il
tests/src/JIT/jit64/mcc/interop/mcc_i84.il
tests/src/JIT/jit64/mcc/interop/mcc_i85.il
tests/src/JIT/jit64/mcc/interop/mcc_i86.il
tests/src/JIT/jit64/mcc/interop/mcc_i87.il
tests/src/JIT/jit64/opt/cg/il/jmp.il
tests/src/JIT/jit64/opt/cg/il/ldftn.il
tests/src/JIT/jit64/opt/cprop/Dev10_844071.il
tests/src/JIT/jit64/opt/cprop/Dev10_884217_IL.il
tests/src/JIT/jit64/opt/cprop/cprop002.il
tests/src/JIT/jit64/opt/inl/inl001.il
tests/src/JIT/jit64/opt/lim/lim_001.il
tests/src/JIT/jit64/opt/lur/lur_01.il
tests/src/JIT/jit64/opt/osr/osr015.il
tests/src/JIT/jit64/opt/regress/vswhidbey/223862/bne.il
tests/src/JIT/jit64/opt/regress/vswhidbey/223862/conv.il
tests/src/JIT/jit64/opt/regress/vswhidbey/223862/div.il
tests/src/JIT/jit64/opt/regress/vswhidbey/223862/mul1.il
tests/src/JIT/jit64/opt/regress/vswhidbey/223862/mul_exception.il
tests/src/JIT/jit64/opt/regress/vswhidbey/223862/rem.il
tests/src/JIT/jit64/opt/regress/vswhidbey/228572/conv.il
tests/src/JIT/jit64/opt/regress/vswhidbey/481244/foo.il
tests/src/JIT/jit64/opt/regress/vswhidbey/481244/foo2.il
tests/src/JIT/jit64/regress/ddb/118414/118414.il
tests/src/JIT/jit64/regress/ddb/127931/127931.il
tests/src/JIT/jit64/regress/ndpw/21220/21220.il
tests/src/JIT/jit64/regress/phoenix/62322/test.il
tests/src/JIT/jit64/regress/vsw/102754/test1.il
tests/src/JIT/jit64/regress/vsw/102754/test1.ilproj
tests/src/JIT/jit64/regress/vsw/102754/test2.ilproj [deleted file]
tests/src/JIT/jit64/regress/vsw/102974/test.il
tests/src/JIT/jit64/regress/vsw/153682/test.il
tests/src/JIT/jit64/regress/vsw/266693/test.il
tests/src/JIT/jit64/regress/vsw/286991/test.il
tests/src/JIT/jit64/regress/vsw/333007/test1.il
tests/src/JIT/jit64/regress/vsw/336666/test1.il
tests/src/JIT/jit64/regress/vsw/373472/test.il
tests/src/JIT/jit64/regress/vsw/373472/test_il.ilproj [moved from tests/src/JIT/jit64/regress/vsw/373472/test.ilproj with 100% similarity]
tests/src/JIT/jit64/regress/vsw/404708/test.il
tests/src/JIT/jit64/regress/vsw/460412/test.il
tests/src/JIT/jit64/regress/vsw/534486/exchange.il
tests/src/JIT/jit64/regress/vsw/543645/test.il
tests/src/JIT/jit64/regress/vsw/552940/test.il
tests/src/JIT/jit64/regress/vsw/575343/test.il
tests/src/JIT/jit64/regress/vsw/575343/test2.il
tests/src/JIT/jit64/regress/vsw/606733/Bug606733.il
tests/src/JIT/jit64/regress/vsw/607586/607586.il
tests/src/JIT/jit64/verif/sniff/fg/ver_fg_13.il
tests/src/JIT/opt/AssertionPropagation/CPropOverflow.il
tests/src/JIT/opt/DumpDisasm/JitMinOpts/BBCnt1.il
tests/src/JIT/opt/DumpDisasm/JitMinOpts/CodeSize1.il
tests/src/JIT/opt/DumpDisasm/JitMinOpts/InstrCnt1.il
tests/src/JIT/opt/DumpDisasm/JitMinOpts/LVNumCnt1.il
tests/src/JIT/opt/DumpDisasm/JitMinOpts/LVRefCnt1.il
tests/src/JIT/opt/ETW/TailCallCases.il
tests/src/JIT/opt/Inline/tests/LotsOfInlines.csproj
tests/src/JIT/opt/JitMinOpts/Perf/BBCnt0.il
tests/src/JIT/opt/JitMinOpts/Perf/BBCnt1.il
tests/src/JIT/opt/JitMinOpts/Perf/CodeSize0.il
tests/src/JIT/opt/JitMinOpts/Perf/CodeSize1.il
tests/src/JIT/opt/JitMinOpts/Perf/InstrCnt0.il
tests/src/JIT/opt/JitMinOpts/Perf/InstrCnt1.il
tests/src/JIT/opt/JitMinOpts/Perf/LVNumCnt0.il
tests/src/JIT/opt/JitMinOpts/Perf/LVNumCnt1.il
tests/src/JIT/opt/JitMinOpts/Perf/LVRefCnt0.il
tests/src/JIT/opt/JitMinOpts/Perf/LVRefCnt1.il
tests/src/JIT/opt/Tailcall/TailcallVerifyTransparentLibraryWithPrefix.il
tests/src/JIT/opt/Tailcall/TailcallVerifyVerifiableLibraryWithPrefix.il
tests/src/JIT/opt/Tailcall/TailcallVerifyWithPrefix.il
tests/src/Loader/classloader/PrivateInterfaceImpl/project.json
tests/src/Loader/classloader/Statics/ComplexScenarios/project.json
tests/src/Loader/classloader/Statics/Misc/project.json
tests/src/Loader/classloader/TSAmbiguities/CollapsedMethods/InterfaceImplementation/project.json
tests/src/Loader/classloader/TypeInitialization/CctorsWithSideEffects/project.json
tests/src/Loader/classloader/TypeInitialization/CircularCctors/project.json
tests/src/Loader/classloader/TypeInitialization/CoreCLR/project.json
tests/src/Loader/classloader/TypeInitialization/Inlining/project.json
tests/src/Loader/classloader/TypeInitialization/ThisNulllPointer/project.json
tests/src/Loader/classloader/TypeInitialization/backpatching/project.json
tests/src/Loader/classloader/explicitlayout/Regressions/298006/project.json
tests/src/Loader/classloader/explicitlayout/Regressions/369794/project.json
tests/src/Loader/classloader/generics/Constraints/General/project.json
tests/src/Loader/classloader/generics/Constraints/Recursion/project.json
tests/src/Loader/classloader/generics/Constraints/Regressions/532403/project.json
tests/src/Loader/classloader/generics/Constraints/Regressions/ddb62403/project.json
tests/src/Loader/classloader/generics/Constraints/Regressions/dev10_512868/project.json
tests/src/Loader/classloader/generics/Constraints/Regressions/vsw609874/project.json
tests/src/Loader/classloader/generics/GenericMethods/project.json
tests/src/Loader/classloader/generics/Instantiation/Negative/project.json
tests/src/Loader/classloader/generics/Instantiation/Nesting/project.json
tests/src/Loader/classloader/generics/Instantiation/Positive/project.json
tests/src/Loader/classloader/generics/Instantiation/Recursion/project.json
tests/src/Loader/classloader/generics/Instantiation/Regressions/607/project.json
tests/src/Loader/classloader/generics/Layout/General/project.json
tests/src/Loader/classloader/generics/Layout/Specific/project.json
tests/src/Loader/classloader/generics/Misc/project.json
tests/src/Loader/classloader/generics/Statics/Regressions/524571/project.json
tests/src/Loader/classloader/generics/VSD/project.json
tests/src/Loader/classloader/generics/Variance/CoreCLR/project.json
tests/src/Loader/classloader/generics/Variance/Delegates/project.json
tests/src/Loader/classloader/generics/Variance/IL/project.json
tests/src/Loader/classloader/generics/Variance/Interfaces/project.json
tests/src/Loader/classloader/generics/Variance/Methods/project.json
tests/src/Loader/classloader/generics/Visibility/project.json
tests/src/Loader/classloader/generics/regressions/123712/project.json
tests/src/Loader/classloader/generics/regressions/137310/project.json
tests/src/Loader/classloader/generics/regressions/188892/project.json
tests/src/Loader/classloader/generics/regressions/237932/project.json
tests/src/Loader/classloader/generics/regressions/334376/project.json
tests/src/Loader/classloader/generics/regressions/341477/project.json
tests/src/Loader/classloader/generics/regressions/395780/project.json
tests/src/Loader/classloader/generics/regressions/433497/project.json
tests/src/Loader/classloader/generics/regressions/448208/project.json
tests/src/Loader/classloader/generics/regressions/515341/project.json
tests/src/Loader/classloader/generics/regressions/536564/project.json
tests/src/Loader/classloader/generics/regressions/DD117522/project.json
tests/src/Loader/classloader/generics/regressions/dd95372/project.json
tests/src/Loader/classloader/generics/regressions/ddb3422/project.json
tests/src/Loader/classloader/generics/regressions/vsw578898/project.json
tests/src/Loader/classloader/methodoverriding/regressions/576621/project.json
tests/src/Loader/classloader/methodoverriding/regressions/dev10_432038/project.json
tests/src/Loader/classloader/nesting/Regressions/dev10_602978/project.json
tests/src/Loader/classloader/nesting/Tests/project.json
tests/src/Loader/classloader/regressions/101682/project.json
tests/src/Loader/classloader/regressions/106647/project.json
tests/src/Loader/classloader/regressions/111021/project.json
tests/src/Loader/classloader/regressions/14610/project.json
tests/src/Loader/classloader/regressions/208900/project.json
tests/src/Loader/classloader/regressions/307137/project.json
tests/src/Loader/classloader/regressions/347422/project.json
tests/src/Loader/classloader/regressions/348842/project.json
tests/src/Loader/classloader/regressions/451034/project.json
tests/src/Loader/classloader/regressions/523654/project.json
tests/src/Loader/classloader/regressions/529206/project.json
tests/src/Loader/classloader/regressions/583649/project.json
tests/src/Loader/classloader/regressions/91888/project.json
tests/src/Loader/classloader/regressions/Dev12_518401/project.json
tests/src/Loader/classloader/regressions/dd116295/project.json
tests/src/Loader/classloader/regressions/dd52/project.json
tests/src/Loader/classloader/regressions/dev10_398410/project.json
tests/src/Loader/classloader/regressions/dev10_526434/project.json
tests/src/Loader/classloader/regressions/dev10_568786/4_Misc/project.json
tests/src/Loader/classloader/regressions/dev10_630250/project.json
tests/src/Loader/classloader/regressions/dev10_724989/project.json
tests/src/Loader/classloader/regressions/dev10_794943/project.json
tests/src/Loader/classloader/regressions/dev10_813331/project.json
tests/src/Loader/classloader/regressions/dev10_897464/project.json
tests/src/Loader/classloader/regressions/dev11_256384/project.json
tests/src/Loader/classloader/regressions/dev11_38348/project.json
tests/src/Loader/classloader/regressions/dev11_383846/project.json
tests/src/Loader/classloader/regressions/dev11_95728/project.json
tests/src/Loader/classloader/regressions/vsw529206/project.json
tests/src/Loader/classloader/regressions/vsw531159/project.json
tests/src/Loader/classloader/v1/Beta1/Layout/Matrix/cs/project.json
tests/src/Loader/classloader/v1/M10/Acceptance/project.json
tests/src/Loader/classloader/v1/Stress/Beta1/CLStressA/project.json
tests/src/baseservices/multidimmarray/app.config [new file with mode: 0644]
tests/src/baseservices/multidimmarray/enum.cs [new file with mode: 0644]
tests/src/baseservices/multidimmarray/enum.csproj [moved from tests/src/baseservices/threading/interlocked/add/InterlockedAddInt_4.csproj with 87% similarity]
tests/src/baseservices/multidimmarray/project.json [new file with mode: 0644]
tests/src/baseservices/threading/interlocked/add/CheckAddInt.csproj
tests/src/baseservices/threading/interlocked/add/CheckAddInt_2.csproj [deleted file]
tests/src/baseservices/threading/interlocked/add/CheckAddLong.csproj
tests/src/baseservices/threading/interlocked/add/CheckAddLong_2.csproj [deleted file]
tests/src/baseservices/threading/interlocked/add/InterlockedAddInt.csproj
tests/src/baseservices/threading/interlocked/add/InterlockedAddLong.csproj
tests/src/baseservices/threading/interlocked/add/InterlockedAddLong_3.csproj [deleted file]
tests/src/baseservices/threading/interlocked/compareexchange/CompareExchangeLong.csproj
tests/src/baseservices/threading/interlocked/compareexchange/CompareExchangeLong_4.csproj [deleted file]
tests/src/baseservices/threading/interlocked/compareexchange/CompareExchangeTClass.csproj
tests/src/baseservices/threading/interlocked/compareexchange/CompareExchangeTClass_2.csproj [deleted file]
tests/src/baseservices/threading/interlocked/exchange/ExchangeTString.csproj
tests/src/baseservices/threading/interlocked/exchange/ExchangeTString_3.csproj [deleted file]
tests/src/baseservices/threading/multiinstance/multiinstance.cs [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartBool.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartBool_1.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartBool_2.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartByte.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartByte_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartCast.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartCast_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartChar.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartChar_4.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartDecimal.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartDecimal_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartDelegate.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartDelegate_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartDouble.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartDouble_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartFloat.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartFloat_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartGenerics.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartGenerics_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartInt.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartLong.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartLong_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartObject.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartObject_2.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartOperations.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartOperations_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartSByte.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartSByte_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartShort.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartShort_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartString.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartString_4.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartUInt.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartUInt_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartULong.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartULong_3.csproj [deleted file]
tests/src/baseservices/threading/paramthreadstart/ThreadStartUShort.csproj
tests/src/baseservices/threading/paramthreadstart/ThreadStartUShort_3.csproj [deleted file]
tests/src/dir.common.props
tests/testsFailingOutsideWindows.txt
tests/testsUnsupportedOutsideWindows.txt
tests/x86_jit32_issues.targets [new file with mode: 0644]
tests/x86_legacy_backend_issues.targets

index e378c82..aa66333 100644 (file)
@@ -63,6 +63,8 @@ call(["this" pointer] [return buffer pointer] [generics context|varargs cookie]
 
 Just like native, AMD64 has implicit-byrefs. Any structure (value type in IL parlance) that is not 1, 2, 4, or 8 bytes in size (i.e., 3, 5, 6, 7, or >= 9 bytes in size) that is declared to be passed by value, is instead passed by reference. For JIT generated code, it follows the native ABI where the passed-in reference is a pointer to a compiler generated temp local on the stack. However, there are some cases within remoting or reflection where apparently stackalloc is too hard, and so they pass in pointers within the GC heap, thus the JITed code must report these implicit byref parameters as interior pointers (BYREFs in JIT parlance), in case the callee is one of these reflection paths. Similarly, all writes must use checked write barriers.
 
+The AMD64 native calling conventions (Windows 64 and System V) require return buffer address to be returned by callee in RAX. JIT also follows this rule.
+
 ## Return buffers
 
 The same applies to some return buffers. See `MethodTable::IsStructRequiringStackAllocRetBuf()`. When that returns false, the return buffer might be on the heap, either due to reflection/remoting code paths mentioned previously or due to a JIT optimization where a call with a return buffer that then assigns to a field (on the GC heap) are changed into passing the field reference as the return buffer. Conversely, when it returns true, the JIT does not need to use a write barrier when storing to the return buffer, but it is still not guaranteed to be a compiler temp, and as such the JIT should not introduce spurious writes to the return buffer.
diff --git a/Documentation/building/netbsd-instructions.md b/Documentation/building/netbsd-instructions.md
new file mode 100644 (file)
index 0000000..b469a64
--- /dev/null
@@ -0,0 +1,128 @@
+Build CoreCLR on NetBSD
+=======================
+
+This guide will walk you through building CoreCLR on NetBSD.  We'll start by showing how to set up your environment from scratch.
+
+Environment
+===========
+
+These instructions are written on NetBSD 7.x on the amd64 platform, since that's the release the team uses.
+
+Older releases aren't supported because building CoreCLR requires the modern LLVM stack (Clang, libunwind, and LLDB) that is developed against the NetBSD-7.x branch.
+
+Pull Requests are welcome to address other ports (like i386 or evbarm) as long as they don't break the ability to use NetBSD/amd64.
+
+Minimum RAM required to build is 1GB.
+
+The pkgsrc framework is required to build .NET projects on NetBSD. Minimal pkgsrc version required is 2016Q1.
+
+pkgsrc setup
+------------
+
+Fetch pkgsrc and install to the system. By default it's done in the /usr directory as root:
+
+```
+ftp -o- ftp://ftp.netbsd.org/pub/pkgsrc/stable/pkgsrc.tar.gz | tar -zxpf- -C /usr
+```
+
+The .NET projects are tracked in pkgsrc-wip.
+
+In order to use pkgsrc-wip, git must be installed:
+
+
+```
+cd /usr/pkgsrc/devel/git-base && make install
+```
+
+To access resources over SSL link, mozilla-rootcerts must be installed:
+
+```
+cd /usr/pkgsrc/security/mozilla-rootcerts && make install
+```
+
+And follow the MESSAGE commands to finish the installation.
+
+
+Installing pkgsrc-wip
+---------------------
+
+Type the following command to fetch the pkgsrc-wip sources:
+
+
+```
+cd /usr/pkgsrc
+git clone --depth 1 git://wip.pkgsrc.org/pkgsrc-wip.git wip
+```
+
+Then install the CoreCLR package you need:
+
+```
+cd /usr/pkgsrc/wip/coreclr-git
+make install
+```
+
+CoreCLR is installed in `/usr/pkg/CoreCLR` subdirectory by default.
+
+
+PAL tests
+=========
+
+To run PAL tests on NetBSD, use the `make test` in the coreclr-git package from pkgsrc-wip:
+
+```
+cd /usr/pkgsrc/wip/coreclr-git
+make test
+```
+
+Build CoreFX
+============
+
+The CoreFX package is located in pkgsrc-wip as corefx-git. In order to build it you need to perform the following command:
+
+```
+cd /usr/pkgsrc/wip/corefx-git
+make
+```
+
+At the moment there is no install or test target in the pkgsrc framework.
+
+CoreFX tests
+============
+
+The steps to run CoreFX managed code tests:
+
+Build CoreCLR (with pkgsrc-wip/coreclr-git) on NetBSD x64, Debug and install the Product dir to /usr/pkg/CoreCLR:
+
+```
+cd /usr/pkgsrc/wip/coreclr-git && make install
+```
+
+Build CoreFX native x64 Debug and the work (build) dir is in /usr/pkgsrc/wip/corefx-git/work/corefx:
+
+```
+cd /usr/pkgsrc/wip/corefx-git && make
+```
+
+Build CoreCLR Debug x64 on Linux and copy mscorlib.dll from ./bin/Product/Linux.x64.Debug/mscorlib.dll to NetBSD machine under /usr/pkg/CoreCLR:
+
+```
+./build.sh mscorlib Debug
+```
+
+Build CoreFX Debug x64 on Linux and copy bin/ to NetBSD machine under /public/bin:
+
+```
+./build.sh /p:OSGroup=NetBSD /p:SkipTests=true
+```
+
+Run ./run-test.sh:
+
+```
+$ pwd
+/usr/pkgsrc/wip/corefx-git/work/corefx
+$ ./run-test.sh \
+--coreclr-bins /usr/pkg/CoreCLR/ \
+--mscorlib-bins /usr/pkg/CoreCLR/ \
+--corefx-tests /public/bin/tests/NetBSD.AnyCPU.Debug/ \
+--corefx-native-bins ./bin/NetBSD.x64.Debug/Native/
+```
index a1e67a6..931a540 100644 (file)
@@ -10,7 +10,7 @@
 * Run Only
 > `<CLRTestKind>RunOnly</CLRTestKind>`
 
- * Will only execute another assembly
+ * Can use Ouput of Build and Run Project with different command line arguments
 * Build and Run
 > `<CLRTestKind>BuildAndRun</CLRTestKind>`
 
index ab1bc30..6609a0a 100644 (file)
@@ -9,7 +9,7 @@ As part of building tests, CoreFX restores a copy of the runtime from myget, in
 
 To run tests, follow the procedure for [running tests in CoreFX](https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md). You can pass `/p:BUILDTOOLS_OVERRIDE_RUNTIME=<path-to-coreclr>\bin\Product\Windows_NT.x64.Release` to build.cmd to set this property.
 
-**Linux, OS X, FreeBSD**
+**FreeBSD, Linux, NetBSD, OS X**
 
 Refer to the procedure for [running tests in CoreFX](https://github.com/dotnet/corefx/blob/master/Documentation/building/cross-platform-testing.md)
 - Note the --coreclr-bins and --mscorlib-bins arguments to [run-test.sh](https://github.com/dotnet/corefx/blob/master/run-test.sh)
index 72846e2..0721103 100644 (file)
@@ -36,7 +36,7 @@ Run tests:
 >     --testNativeBinDir=~/coreclr/bin/obj/Linux.x64.Debug/tests
 >     --coreClrBinDir=~/coreclr/bin/Product/Linux.x64.Debug
 >     --mscorlibDir=/media/coreclr/bin/Product/Linux.x64.Debug
->     --coreFxBinDir=~/corefx/bin/Linux.AnyCPU.Debug
+>     --coreFxBinDir="~/corefx/bin/Linux.AnyCPU.Release;~/corefx/bin/Unix.AnyCPU.Release;~/corefx/bin/AnyOS.AnyCPU.Release"
 >     --coreFxNativeBinDir=~/corefx/bin/Linux.x64.Debug
 > ```
 
index 7e6faee..bdde500 100644 (file)
@@ -100,6 +100,7 @@ You will see several files. The interesting ones are:
 
 Copy these files into the demo directory.
 
+       C:\git\coreclr>copy bin\Product\Windows_NT.x64.debug\clrjit.dll \coreclr-demo\runtime
        C:\git\coreclr>copy bin\Product\Windows_NT.x64.debug\CoreRun.exe \coreclr-demo\runtime
        C:\git\coreclr>copy bin\Product\Windows_NT.x64.debug\coreclr.dll \coreclr-demo\runtime
        C:\git\coreclr>copy bin\Product\Windows_NT.x64.debug\mscorlib.dll \coreclr-demo\runtime
@@ -122,24 +123,14 @@ It's also possible to add /t:rebuild to build.cmd to force it to delete the prev
 
 For the purposes of this demo, you need to copy a few required assemblies to the demo folder.
 
-       C:\git\corefx>copy bin\Windows_NT.AnyCPU.Debug\System.Console\System.Console.dll \coreclr-demo
-       C:\git\corefx>copy bin\Windows_NT.AnyCPU.Debug\System.Diagnostics.Debug\System.Diagnostics.Debug.dll \coreclr-demo
-
-The runtime directory should now look like the following:
-
-       c:\git\corefx>dir \coreclr-demo
-
-```
- Directory of C:\coreclr-demo
-
-05/15/2015  03:58 PM    <DIR>          .
-05/15/2015  03:58 PM    <DIR>          ..
-05/15/2015  02:43 PM    <DIR>          packages
-05/15/2015  03:36 PM    <DIR>          runtime
-05/15/2015  02:44 PM         1,664,512 nuget.exe
-05/15/2015  03:37 PM            51,712 System.Console.dll
-05/15/2015  03:37 PM            21,504 System.Diagnostics.Debug.dll
-```
+       C:\git\corefx>copy bin\Windows_NT.AnyCPU.Debug\System.Console\System.Console.dll \coreclr-demo\runtime
+       C:\git\corefx>copy bin\Windows_NT.AnyCPU.Debug\System.Diagnostics.Debug\System.Diagnostics.Debug.dll \coreclr-demo\runtime
+       C:\git\corefx>copy bin\Windows_NT.AnyCPU.Debug\System.Threading\System.Threading.dll \coreclr-demo\runtime
+       C:\git\corefx>copy bin\Windows_NT.AnyCPU.Debug\System.IO\System.IO.dll \coreclr-demo\runtime
+       C:\git\corefx>copy bin\Windows_NT.AnyCPU.Debug\System.IO.FileSystem.Primitives\System.IO.FileSystem.Primitives.dll \coreclr-demo\runtime
+       C:\git\corefx>copy bin\Windows_NT.AnyCPU.Debug\System.Runtime\System.Runtime.dll \coreclr-demo\runtime
+       C:\git\corefx>copy bin\Windows_NT.AnyCPU.Debug\System.Runtime.Extensions\System.Runtime.Extensions.dll \coreclr-demo\runtime    C:\git\corefx>copy bin\Windows_NT.AnyCPU.Debug\System.Runtime.InteropServices\System.Runtime.InteropServices.dll \coreclr-demo\runtime
+       C:\git\corefx>copy bin\Windows_NT.AnyCPU.Debug\System.Threading.Tasks\System.Threading.Tasks.dll \coreclr-demo\runtime  
 
 Restore NuGet Packages
 ======================
@@ -148,30 +139,30 @@ You need to restore/download the rest of the demo dependencies via NuGet, as the
 
 Make a packages/packages.config file with the following XML. These packages are the required dependencies of this particular app. Different apps will have different dependencies and require different packages.config - see [Issue #480](https://github.com/dotnet/coreclr/issues/480).
 
-       <?xml version="1.0" encoding="utf-8"?>
-       <packages>
-         <package id="System.Console" version="4.0.0-beta-22703" />
-         <package id="System.Diagnostics.Contracts" version="4.0.0-beta-22703" />
-         <package id="System.Diagnostics.Debug" version="4.0.10-beta-22703" />
-         <package id="System.Diagnostics.Tools" version="4.0.0-beta-22703" />
-         <package id="System.Globalization" version="4.0.10-beta-22703" />
-         <package id="System.IO" version="4.0.10-beta-22703" />
-         <package id="System.IO.FileSystem.Primitives" version="4.0.0-beta-22703" />
-         <package id="System.Reflection" version="4.0.10-beta-22703" />
-         <package id="System.Resources.ResourceManager" version="4.0.0-beta-22703" />
-         <package id="System.Runtime" version="4.0.20-beta-22703" />
-         <package id="System.Runtime.Extensions" version="4.0.10-beta-22703" />
-         <package id="System.Runtime.Handles" version="4.0.0-beta-22703" />
-         <package id="System.Runtime.InteropServices" version="4.0.20-beta-22703" />
-         <package id="System.Text.Encoding" version="4.0.10-beta-22703" />
-         <package id="System.Text.Encoding.Extensions" version="4.0.10-beta-22703" />
-         <package id="System.Threading" version="4.0.10-beta-22703" />
-         <package id="System.Threading.Tasks" version="4.0.10-beta-22703" />
-       </packages>
+```
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="System.Console" version="4.0.0-beta-23516" />
+  <package id="System.Diagnostics.Contracts" version="4.0.1-beta-23516" />
+  <package id="System.Diagnostics.Debug" version="4.0.11-beta-23516" />
+  <package id="System.Diagnostics.Tools" version="4.0.1-beta-23516" />
+  <package id="System.Globalization" version="4.0.11-beta-23516" />
+  <package id="System.IO" version="4.0.11-beta-23516" />
+  <package id="System.IO.FileSystem.Primitives" version="4.0.1-beta-23516" />
+  <package id="System.Runtime" version="4.0.21-beta-23516" />
+  <package id="System.Runtime.Extensions" version="4.0.11-beta-23516" />
+  <package id="System.Runtime.Handles" version="4.0.1-beta-23516" />
+  <package id="System.Runtime.InteropServices" version="4.0.21-beta-23516" />
+  <package id="System.Text.Encoding" version="4.0.11-beta-23516" />
+  <package id="System.Text.Encoding.Extensions" version="4.0.11-beta-23516" />
+  <package id="System.Threading" version="4.0.11-beta-23516" />
+  <package id="System.Threading.Tasks" version="4.0.11-beta-23516" />
+</packages>
+```
 
 And restore the packages with the packages.config:
 
-       C:\coreclr-demo>nuget restore packages\packages.config -Source https://www.myget.org/F/dotnet-corefx/ -PackagesDirectory packages
+       C:\coreclr-demo>nuget restore packages\packages.config -Source https://api.nuget.org/v3/index.json -PackagesDirectory packages
 
 Compile the Demo
 ================
@@ -193,17 +184,17 @@ Personally, I'm partial to the one on corefxlab which will print a picture for y
 
 Then you just need to build it, with csc, the .NET Framework C# compiler. It may be easier to do this step within the "Developer Command Prompt for VS2013", if csc is not in your path. Because you need to compile the app against the .NET Core surface area, you need to pass references to the contract assemblies you restored using NuGet:
 
-       C:\coreclr-demo>csc /nostdlib /noconfig /r:packages\System.Runtime.4.0.20-beta-2
-       2703\lib\contract\System.Runtime.dll /r:packages\System.Console.4.0.0-beta-22703
-       \lib\contract\System.Console.dll /out:runtime\HelloWorld.exe HelloWorld.cs
+```
+csc /nostdlib /noconfig /r:packages\System.Runtime.4.0.21-beta-23516\ref\dotnet5.1\System.Runtime.dll /r:packages\System.Console.4.0.0-beta-23516\ref\dotnet5.1\System.Console.dll /out:runtime\hello.exe hello.cs
+```
 
 Run the demo
 ============
 
-You need to copy the NuGet package assemblies over to the runtime folder. 
-The easiest way to do this is with a little batch magic. Say "no" to any requests to overwrite files, to avoid overwriting the CoreFX files you just built.
+You'll also need the following facade assemblies from your packages folder:
 
-       for /f %k in ('dir /s /b packages\*.dll') do echo %k | findstr "\aspnetcore50" && copy /-Y %k runtime
+    C:\coreclr-demo>copy packages\System.Text.Encoding.4.0.11-beta-23516\lib\netcore50\System.Text.Encoding.dll runtime
+    C:\coreclr-demo>copy packages\System.Text.Encoding.Extensions.4.0.11-beta-23516\lib\netcore50\System.Text.Encoding.Extensions.dll runtime
 
 You're ready to run Hello World! To do that, run corerun, passing the path to the managed exe, plus any arguments. In this case, no arguments are necessary.
 
index 21dc550..33a0950 100644 (file)
@@ -548,7 +548,7 @@ are prefaced by '*' have been prototyped in an earlier version of the JIT, and t
 being re-integrated and tested, but may require some cleanup and/or phasing with other work items
 before a PR is submitted.
 
-  ### Mostly-Independent work items
+### Mostly-Independent work items
 1.     *Replace block ops with assignments & new nodes.
 
 2.     *Add new fixed-size types, and normalize them in the importer (might be best to do this with or after #1, but not really dependent)
@@ -560,7 +560,7 @@ before a PR is submitted.
       Note that this work item is specifically intended for call arguments. It is likely the case that
       utilizing ldp for general-purpose code sequences would be handled separately.
 
-4.     Arm64 & x64/ux: aggressively promote lclVar struct incoming or outgoing args with two 8-byte fields
+4.     X64/ux: aggressively promote lclVar struct incoming or outgoing args with two 8-byte fields
 
 5.     X64/ux:
     * modify the handling of multireg struct args to use GT_LIST of GT_IND
@@ -569,13 +569,14 @@ before a PR is submitted.
     * stop adding extra lclVar copies
 
 6.     Arm64:
-    * Promote 16-byte struct lclVars that are incoming or outgoing register arguments only if they have 2 8-byte fields.
+    * Promote 16-byte struct lclVars that are incoming or outgoing register arguments only if they have 2 8-byte fields (DONE).
       Pass those using GT_LIST of GT_LCL_VAR (as above for x64/ux).
       Note that, if the types do not match, e.g. a TYP_DOUBLE field that will be passed in an integer register,
       it will require special handling in Lowering and LSRA, as is currently done in the TYP_SIMD8 case.
-    * For other cases, pass as GT_LIST of GT_IND
+    * For other cases, pass as GT_LIST of GT_IND (DONE)
     * The GT_LIST would be created in fgMorphArgs(). Then in Lower, putarg_reg nodes will be inserted between
-      the GT_LIST and the list item (GT_LCL_VAR or GT_IND).
+      the GT_LIST and the list item (GT_LCL_VAR or GT_IND). (DONE)
+    * Add support for HFAs.
     
     ### Dependent work items:
     
diff --git a/Documentation/design-docs/longs-on-32bit-arch.md b/Documentation/design-docs/longs-on-32bit-arch.md
new file mode 100644 (file)
index 0000000..d04efb5
--- /dev/null
@@ -0,0 +1,117 @@
+# Modeling Longs on 32-bit Architectures
+
+The challenge here is to model long operations in a way that reflects register lifetimes for the
+lo and hi halves of a 64-bit integer accurately enough that we can achieve good register
+allocation.
+
+## Background
+
+The current liveness model supports:
+* Internal registers (interfere with all sources, but no defs)
+* Sources that are not last use (interfere with all others)
+* Sources that are last use and NOT DelayFree (interfere with all sources, but no defs)
+* Sources that are last use AND DelayFree (interfere with all sources and defs)
+* Kills (interfere with all uses but no defs)
+
+Previously (eons ago) when we were working on arm32, the model had all but the last def 
+interfering with the uses and internal registers (i.e. they went live during the first
+location for the node).
+* This supports the ability to reuse inputs, e.g. for long adds, subs or addresses, after the first def register goes live.
+* This doesn’t work for supporting multi-reg call nodes:
+  * All defs need to occur AFTER the kills, and they do not interfere with any sources.
+
+Considerations for an expanded model:
+* Must be “pay for play” (not make LSRA more expensive for non-long code generation)
+* It is not practical to precisely model nodes that generate multiple instructions:
+  * In the case of longs, we may have one source operand that could be overwritten by
+    the first result, but other operands that need to remain live.
+  * However, on x86 it will be really important not to waste registers.
+
+## Decomposition
+
+This is the approach currently being taken. In the initial implementation, the reordering
+of nodes to support the required "valid tree traversal" property of the IR was causing
+the code to be incorrect because for instructions like `add` the carry bit needs to be
+immediately consumed by the computation ofthe hi bits.
+
+## Decomposition with temps
+
+In order to preserve the current decomposition approach and not change the fundamental
+tree ordering properties, it is necessary to evaluate sub-expressions into temps, to keep
+the lo and hi computations together.
+
+There are concerns about this, because it requires generating a number of extra temps
+in the case of nested expressions. However, mikedn has done some experimentation
+[here](https://github.com/mikedn/coreclr/blob/decompose/src/jit/lower.cpp#L424) 
+that indicaates that this approach may not be as problematic as we feared.
+
+This basic idea is that whenever we need to decompose hi/lo operations but keep them
+together (i.e. can’t preserve the tree traversal/linear order invariants), we create a temp.
+
+## Richer Liveness Model (No Decomposition)
+
+The idea here woudl be to retain `TYP_LONG` nodes in the IR, and to find a way to extend
+the liveness model used by Lowering, LSRA and CodeGen to ensure good register allocation.
+o      
+
+In the table below, there are several operations that have different register lifetime
+characteristics.
+Each is modeled with a sequence of "Locations" for which the changes in register lifetimes
+can be viewed as happening at the same time.
+All lifetimes participating in a given Location are considered to interfere.
+Note that the simplest model is that all the uses happen at one location, and then the
+def(s) happen at the next Location (i.e. the def does not interfere with the uses).
+The model becomes more complicated when we have constraints such as RMW (read-modify-write)
+operands, and even more so when we are actually modeling multiple target instructions
+with a single IR node.
+
+To avoid even more complication than is already inherent in this issue, we will assume
+that the evaluation order is fixed during Lowering (and in these examples we are assuming
+that the lo operand is evaluated first).
+
+In future we may want to consider the implications of relaxing that constraint, though
+note that the Decomposition approach also requires a predetermined evaluation order.
+
+| Operation     | Location 1 | Location 2 | Location 3 |
+| --------------|:----------:| ----------:| ----------:|
+| x = y         | use y.lo   | def x.lo   |            |
+|               | use y.hi   | def x.hi   |            |
+|               |            |            |            |
+| x = y + z     | use y.lo   | def x.lo   | def x.hi   |
+|               | use z.lo   | use y.hi   |            |
+|               | y.hi live  | use z.hi   |            |
+|               | z.hi live  | use z.hi   |            |
+|               |            |            |            |
+| x = *p        | use p      | def x.hi   |            |
+| (non-ldp)     | def x.lo   |            |            |
+|               |            |            |            |
+| x = *p        | use p      | def x.lo   |            |
+| (ldp)         |            | def x.hi   |            |
+|               |            |            |            |
+| x = \*(p+i*8) | use p      | def x.hi   |            |
+| (non-ldp)     | use i      |            |            |
+|               | def x.lo   |            |            |
+|               |            |            |            |
+| x = call      | use args   | def x.lo   |            |
+|               | kill (end) | def x.hi   |            |
+
+
+Both the non-ldp  (load pair - available on Arm but not x86) cases take
+advantage of the fact that all the sources must remain live
+with the first def. The same can be done in the non-ldp case of `x = *p`.
+However, that approach doesn't reduce the Location requirement for the `x = y + z` case,
+where, if we assume that all inputs must be live for the first def, then we keep the lo
+registers live longer than necessary, and therefore can't reuse them for the x.lo (or
+other) results.
+
+TO DO:
+* Extend the above to include more operations, and to show the actual instructions
+  generated, to determine how well we can approximate the "optimal" liveness model.
+
+## True Linear IR
+
+It would be really nice to break the “valid tree traversal” restriction, and allow
+arbitrary (or at least more flexible) reordering of nodes when in linear form.
+* Gets rid of embedded statements!!
+* Affects (at least) rationalizer and lsra, which implicitly depend on this property in their use of stacks.
+* Probably has many unknown other impacts
index 8c77f09..a428233 100644 (file)
@@ -56,10 +56,16 @@ To trigger a job, post a comment on your PR with "@dotnet-bot {trigger-phrase}".
 - **Windows_NT x64 Checked CoreFX JitStressRegs=8 Build & Test:** "test Windows_NT corefx_jitstressregs8"
 - **Windows_NT x64 Checked CoreFX JitStressRegs=0x10 Build & Test:** "test Windows_NT corefx_jitstressregs0x10"
 - **Windows_NT x64 Checked CoreFX JitStressRegs=0x80 Build & Test:** "test Windows_NT corefx_jitstressregs0x80"
-- **Windows_NT x86 Release Ready-To-Run Priority 0 Legacy Backend Build & Test:** "test Windows_NT x86 Release r2r"
-- **Windows_NT x86 Release Ready-To-Run Priority 1 Legacy Backend Build & Test:** "test Windows_NT x86 Release pri1r2r"
-- **Windows_NT x86 Release GCStress=15 Ready-To-Run Priority 1 Legacy Backend Build & Test:** "test Windows_NT x86 Release gcstress15_pri1r2r"
-- **Windows_NT x86 Release Long-Running GC Build & Test:** "test Windows_NT x86 Release longgc
+- **Windows_NT x86 RyuJit Checked Priority 0 Build & Test:** "test Windows_NT x86 ryujit
+- **Windows_NT x86 legacy_backend Checked Priority 0 Build & Test:** "test Windows_NT x86 legacy_backend
+- **Windows_NT x86 RyuJit Release Ready-To-Run Priority 0 Build & Test:** "test Windows_NT x86 ryujit Release r2r"
+- **Windows_NT x86 legacy_backend Release Ready-To-Run Priority 0 Build & Test:** "test Windows_NT x86 legacy_backend Release r2r"
+- **Windows_NT x86 RyuJit Release Ready-To-Run Priority 1 Build & Test:** "test Windows_NT x86 ryujit Release pri1r2r"
+- **Windows_NT x86 legacy_backend Release Ready-To-Run Priority 1 Build & Test:** "test Windows_NT x86 legacy_backend Release pri1r2r"
+- **Windows_NT x86 RyuJit Release GCStress=15 Ready-To-Run Priority 1 Build & Test:** "test Windows_NT x86 ryujit Release gcstress15_pri1r2r"
+- **Windows_NT x86 legacy_backend Release GCStress=15 Ready-To-Run Priority 1 Build & Test:** "test Windows_NT x86 legacy_backend Release gcstress15_pri1r2r"
+- **Windows_NT x86 RyuJit Release Long-Running GC Build & Test:** "test Windows_NT x86 ryujit Release longgc
+- **Windows_NT x86 legacy_backend Release Long-Running GC Build & Test:** "test Windows_NT x86 legacy_backend Release longgc
 - **Ubuntu x64 Release Priority 1 Build & Test:** "test Ubuntu pri1"
 - **Ubuntu x64 Release IL RoundTrip Build & Test:** "test Ubuntu ilrt"
 - **Ubuntu x64 Release Long-Running GC Build & Test:**: "test Ubuntu Release longgc"
diff --git a/Documentation/project-docs/tests.md b/Documentation/project-docs/tests.md
deleted file mode 100644 (file)
index ca6a5ef..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-
-### Kinds of Build Properties ###
-* Build Only
-> `<CLRTestKind>BuildOnly</CLRTestKind>`
-
- * Builds an executable. 
- * Will not execute it. 
-
-* Run Only
-> `<CLRTestKind>RunOnly</CLRTestKind>`
-
- * Will only execute another assembly. 
-* Build and Run
-> `<CLRTestKind>BuildAndRun</CLRTestKind>`
-
- * Builds an executable.
- * Will execute said executable. 
-* Shared Libraries
-> `<CLRTestKind>SharedLibrary</CLRTestKind>`
-
- * For building libraries common to zero or more tests. 
-
-
-By default (i.e. if not specified explicitly) a project file is BuildAndRun.
-
-### Priority ###
-Testcases are categorized by their priority levels. The most important subset should be and is the smallest subset. This subset is called priority 0.
- * By default, a testcase is priority 0. You must elect to de-prioritize a test.
-  * To de-prioritize a test, add a property _CLRTestPriority_ to the test's project file.
-> `<CLRTestPriority>2</CLRTestPriority>`
- * Lower priority values are always run in conjunction when running higher priority value tests. I.e. if a developer elects to do a priority 2 test run, then all priority 0, 1 and 2 tests are run.
-
-
index fd70131..924ebe1 100644 (file)
--- a/README.md
+++ b/README.md
@@ -23,9 +23,9 @@ Build Status
 Building the Repo
 -------------
 
-|Linux   |Windows |Mac OS X |FreeBSD  |
-|--------|--------|---------|---------|
-| [Instructions](Documentation/building/linux-instructions.md) | [Instructions](Documentation/building/windows-instructions.md) | [Instructions](Documentation/building/osx-instructions.md) | [Instructions](Documentation/building/freebsd-instructions.md) |
+|Linux   |Windows |Mac OS X |FreeBSD  | NetBSD |
+|--------|--------|---------|---------|--------|
+| [Instructions](Documentation/building/linux-instructions.md) | [Instructions](Documentation/building/windows-instructions.md) | [Instructions](Documentation/building/osx-instructions.md) | [Instructions](Documentation/building/freebsd-instructions.md) | [Instructions](Documentation/building/netbsd-instructions.md) |
 
 Get .NET Core
 ----------------------
@@ -91,4 +91,3 @@ There are many .NET projects on GitHub.
 [coreclr blog post]: http://blogs.msdn.com/b/dotnet/archive/2015/02/03/coreclr-is-now-open-source.aspx
 [corefx]: http://github.com/dotnet/corefx
 [coreclr]: http://github.com/dotnet/coreclr
-
index 0d0e7f7..0b737c2 100644 (file)
--- a/build.cmd
+++ b/build.cmd
@@ -170,7 +170,7 @@ if %__TotalSpecifiedBuildArch% GTR 1 (
 
 if %__BuildArchX64%==1      set __BuildArch=x64
 if %__BuildArchX86%==1      set __BuildArch=x86
-if %__BuildArchArm%==1      set __BuildArch=arm 
+if %__BuildArchArm%==1      set __BuildArch=arm
 if %__BuildArchArm64%==1 (
     set __BuildArch=arm64
     set __CrossArch=x64
index fcd87de..f30c21a 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -4,7 +4,7 @@ PYTHON=${PYTHON:-python}
 
 usage()
 {
-    echo "Usage: $0 [BuildArch] [BuildType] [clean] [verbose] [coverage] [cross] [clangx.y] [ninja] [configureonly] [skipconfigure] [skipnative] [skipmscorlib] [skiptests] [cmakeargs]"
+    echo "Usage: $0 [BuildArch] [BuildType] [clean] [verbose] [coverage] [cross] [clangx.y] [ninja] [configureonly] [skipconfigure] [skipnative] [skipmscorlib] [skiptests] [cmakeargs] [bindir]"
     echo "BuildArch can be: x64, x86, arm, arm-softfp, arm64"
     echo "BuildType can be: debug, checked, release"
     echo "clean - optional argument to force a clean build."
@@ -22,6 +22,7 @@ usage()
     echo "disableoss - Disable Open Source Signing for mscorlib."
     echo "skipgenerateversion - disable version generation even if MSBuild is supported."
     echo "cmakeargs - user-settable additional arguments passed to CMake."
+    echo "bindir - output directory (defaults to $__ProjectRoot/bin)"
 
     exit 1
 }
@@ -271,7 +272,7 @@ build_mscorlib()
     echo "Commencing build of mscorlib components for $__BuildOS.$__BuildArch.$__BuildType"
 
     # Invoke MSBuild
-    $__ProjectRoot/Tools/corerun "$__MSBuildPath" /nologo "$__ProjectRoot/build.proj" /verbosity:minimal "/fileloggerparameters:Verbosity=normal;LogFile=$__LogsDir/MSCorLib_$__BuildOS__$__BuildArch__$__BuildType.log" /t:Build /p:__BuildOS=$__BuildOS /p:__BuildArch=$__BuildArch /p:__BuildType=$__BuildType /p:__IntermediatesDir=$__IntermediatesDir /p:BuildNugetPackage=false /p:UseSharedCompilation=false ${__SignTypeReal}
+    $__ProjectRoot/Tools/corerun "$__MSBuildPath" /nologo "$__ProjectRoot/build.proj" /verbosity:minimal "/fileloggerparameters:Verbosity=normal;LogFile=$__LogsDir/MSCorLib_$__BuildOS__$__BuildArch__$__BuildType.log" /t:Build /p:__BuildOS=$__BuildOS /p:__BuildArch=$__BuildArch /p:__BuildType=$__BuildType /p:__IntermediatesDir=$__IntermediatesDir /p:__RootBinDir=$__RootBinDir /p:BuildNugetPackage=false /p:UseSharedCompilation=false ${__SignTypeReal}
 
     if [ $? -ne 0 ]; then
         echo "Failed to build mscorlib."
@@ -317,7 +318,7 @@ generate_NugetPackages()
        echo "Unable to generate Microsoft.NETCore.Runtime.CoreCLR nuget package since mscorlib was not built."
     else
         # Build the CoreCLR packages
-        $__ProjectRoot/Tools/corerun "$__MSBuildPath" /nologo "$__ProjectRoot/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/Microsoft.NETCore.Runtime.CoreCLR.builds" /verbosity:minimal "/fileloggerparameters:Verbosity=normal;LogFile=$__LogsDir/Nuget_$__BuildOS__$__BuildArch__$__BuildType.log" /t:Build /p:__BuildOS=$__BuildOS /p:__BuildArch=$__BuildArch /p:__BuildType=$__BuildType /p:__IntermediatesDir=$__IntermediatesDir /p:BuildNugetPackage=false /p:UseSharedCompilation=false
+        $__ProjectRoot/Tools/corerun "$__MSBuildPath" /nologo "$__ProjectRoot/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/Microsoft.NETCore.Runtime.CoreCLR.builds" /verbosity:minimal "/fileloggerparameters:Verbosity=normal;LogFile=$__LogsDir/Nuget_$__BuildOS__$__BuildArch__$__BuildType.log" /t:Build /p:__BuildOS=$__BuildOS /p:__BuildArch=$__BuildArch /p:__BuildType=$__BuildType /p:__IntermediatesDir=$__IntermediatesDir /p:__RootBinDir=$__RootBinDir /p:BuildNugetPackage=false /p:UseSharedCompilation=false
 
         if [ $? -ne 0 ]; then
             echo "Failed to generate Nuget packages."
@@ -326,7 +327,7 @@ generate_NugetPackages()
     fi
 
     # Build the JIT packages
-    $__ProjectRoot/Tools/corerun "$__MSBuildPath" /nologo "$__ProjectRoot/src/.nuget/Microsoft.NETCore.Jit/Microsoft.NETCore.Jit.builds" /verbosity:minimal "/fileloggerparameters:Verbosity=normal;LogFile=$__LogsDir/Nuget_$__BuildOS__$__BuildArch__$__BuildType.log" /t:Build /p:__BuildOS=$__BuildOS /p:__BuildArch=$__BuildArch /p:__BuildType=$__BuildType /p:__IntermediatesDir=$__IntermediatesDir /p:BuildNugetPackage=false /p:UseSharedCompilation=false
+    $__ProjectRoot/Tools/corerun "$__MSBuildPath" /nologo "$__ProjectRoot/src/.nuget/Microsoft.NETCore.Jit/Microsoft.NETCore.Jit.builds" /verbosity:minimal "/fileloggerparameters:Verbosity=normal;LogFile=$__LogsDir/Nuget_$__BuildOS__$__BuildArch__$__BuildType.log" /t:Build /p:__BuildOS=$__BuildOS /p:__BuildArch=$__BuildArch /p:__BuildType=$__BuildType /p:__IntermediatesDir=$__IntermediatesDir /p:BuildNugetPackage=false /p:__RootBinDir=$__RootBinDir /p:UseSharedCompilation=false
 
     if [ $? -ne 0 ]; then
         echo "Failed to generate Nuget packages."
@@ -426,7 +427,6 @@ __ProjectDir="$__ProjectRoot"
 __SourceDir="$__ProjectDir/src"
 __PackagesDir="$__ProjectDir/packages"
 __RootBinDir="$__ProjectDir/bin"
-__LogsDir="$__RootBinDir/Logs"
 __UnprocessedBuildArgs=
 __MSBCleanBuildArgs=
 __UseNinja=0
@@ -581,6 +581,22 @@ while :; do
             fi
             ;;
 
+        bindir)
+            if [ -n "$2" ]; then
+                __RootBinDir="$2"
+                if [ ! -d $__RootBinDir ]; then
+                    mkdir $__RootBinDir
+                fi
+                __RootBinParent=$(dirname $__RootBinDir)
+                __RootBinName=${__RootBinDir##*/}
+                __RootBinDir="$(cd $__RootBinParent &>/dev/null && printf %s/%s $PWD $__RootBinName)"
+                shift
+            else
+                echo "ERROR: 'bindir' requires a non-empty option argument"
+                exit 1
+            fi
+            ;;
+
         *)
             if [[ $1 == "/p:OfficialBuildId="* ]]; then
                 __OfficialBuildIdArg=$1
@@ -593,6 +609,9 @@ while :; do
     shift
 done
 
+# Set dependent variables
+__LogsDir="$__RootBinDir/Logs"
+
 if [[ $__ConfigureOnly == 1 && $__SkipConfigure == 1 ]]; then
     echo "configureonly and skipconfigure are mutually exclusive!"
     exit 1
index 121968f..ce27318 100644 (file)
@@ -71,7 +71,6 @@
     <FeatureWindowsPhone>true</FeatureWindowsPhone>
     <FeatureManagedEtw>true</FeatureManagedEtw>
     <FeatureManagedEtwChannels>true</FeatureManagedEtwChannels>
-    <FeatureHostedBinder>true</FeatureHostedBinder>
     <BinderDebugLog Condition="'$(_BuildType)'=='dbg'">true</BinderDebugLog>
     <FeatureAppX>true</FeatureAppX>
     <FeatureWinMDResilient>true</FeatureWinMDResilient>
index d6e25dc..2d8d0ce 100644 (file)
@@ -44,7 +44,6 @@
         <CDefines Condition="'$(FeatureFusion)' == 'true'">$(CDefines);FEATURE_FUSION</CDefines>
         <CDefines Condition="'$(FeatureHijack)' == 'true'">$(CDefines);FEATURE_HIJACK</CDefines>
         <CDefines Condition="'$(FeatureHostAssemblyResolver)' == 'true'">$(CDefines);FEATURE_HOST_ASSEMBLY_RESOLVER</CDefines>
-        <CDefines Condition="'$(FeatureHostedBinder)' == 'true'">$(CDefines);FEATURE_HOSTED_BINDER</CDefines>
         <CDefines Condition="'$(FeatureImpersonation)' == 'true'">$(CDefines);FEATURE_IMPERSONATION</CDefines>
         <CDefines Condition="'$(FeatureIncludeAllInterfaces)' == 'true'">$(CDefines);FEATURE_INCLUDE_ALL_INTERFACES</CDefines>
         <CDefines Condition="'$(FeatureInteropDebugging)' == 'true'">$(CDefines);FEATURE_INTEROP_DEBUGGING</CDefines>
         <DefineConstants Condition="'$(FeatureExceptionNotifications)' == 'true'">$(DefineConstants);FEATURE_EXCEPTION_NOTIFICATIONS</DefineConstants>
         <DefineConstants Condition="'$(FeatureFusion)' == 'true'">$(DefineConstants);FEATURE_FUSION</DefineConstants>
         <DefineConstants Condition="'$(FeatureHostAssemblyResolver)' == 'true'">$(DefineConstants);FEATURE_HOST_ASSEMBLY_RESOLVER</DefineConstants>
-        <DefineConstants Condition="'$(FeatureHostedBinder)' == 'true'">$(DefineConstants);FEATURE_HOSTED_BINDER</DefineConstants>
         <DefineConstants Condition="'$(FeatureHosting)' == 'true'">$(DefineConstants);FEATURE_HOSTING</DefineConstants>
         <DefineConstants Condition="'$(FeatureIdentityReference)' == 'true'">$(DefineConstants);FEATURE_IDENTITY_REFERENCE</DefineConstants>
         <DefineConstants Condition="'$(FeatureImpersonation)' == 'true'">$(DefineConstants);FEATURE_IMPERSONATION</DefineConstants>
index 88a4d9f..050249a 100644 (file)
@@ -44,7 +44,6 @@
     <FeatureFusion>true</FeatureFusion>
     <FeatureHijack>true</FeatureHijack>
     <FeatureHosting>true</FeatureHosting>
-    <FeatureHostedBinder>true</FeatureHostedBinder>
     <FeatureIdentityReference>true</FeatureIdentityReference>
     <FeatureImpersonation>true</FeatureImpersonation>
     <FeatureIncludeAllInterfaces>true</FeatureIncludeAllInterfaces>
index 24d7d64..0b34e57 100644 (file)
@@ -118,7 +118,6 @@ if(NOT CLR_CMAKE_PLATFORM_UNIX_ARM AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD)
     add_definitions(-DFEATURE_HIJACK)
 endif(NOT CLR_CMAKE_PLATFORM_UNIX_ARM AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD)
 add_definitions(-DFEATURE_HOST_ASSEMBLY_RESOLVER)
-add_definitions(-DFEATURE_HOSTED_BINDER)
 add_definitions(-DFEATURE_ICASTABLE)
 if (CLR_CMAKE_PLATFORM_UNIX OR CLR_CMAKE_TARGET_ARCH_ARM64)
   add_definitions(-DFEATURE_IMPLICIT_TLS)
@@ -133,13 +132,10 @@ add_definitions(-DFEATURE_MANAGED_ETW_CHANNELS)
 add_definitions(-DFEATURE_MAIN_CLR_MODULE_USES_CORE_NAME)
 add_definitions(-DFEATURE_MERGE_CULTURE_SUPPORT_AND_ENGINE)
 
-# TODO_DJIT: Remove this "set" to commence loading JIT dynamically.
-if(NOT WIN32)
-  set(FEATURE_MERGE_JIT_AND_ENGINE 1)
-elseif (CLR_CMAKE_TARGET_ARCH_ARM64)
+if(CLR_CMAKE_TARGET_ARCH_ARM64)
   # TODO_DJIT: Remove this as part of enabling cross-compiling standalone JIT binary.
   set(FEATURE_MERGE_JIT_AND_ENGINE 1)
-endif(NOT WIN32)
+endif(CLR_CMAKE_TARGET_ARCH_ARM64)
 
 if(FEATURE_MERGE_JIT_AND_ENGINE)
   # Disable the following for UNIX altjit on Windows
index bda438e..d058b66 100644 (file)
@@ -7,6 +7,10 @@ if (CLR_CMAKE_PLATFORM_UNIX)
   #-fms-compatibility      Enable full Microsoft Visual C++ compatibility
   #-fms-extensions         Accept some non-standard constructs supported by the Microsoft compiler
 
+  # Make signed arithmetic overflow of addition, subtraction, and multiplication wrap around
+  # using twos-complement representation (this is normally undefined according to the C++ spec).
+  add_compile_options(-fwrapv)
+
   if(CLR_CMAKE_PLATFORM_DARWIN)
     # We cannot enable "stack-protector-strong" on OS X due to a bug in clang compiler (current version 7.0.2)
     add_compile_options(-fstack-protector)
@@ -87,6 +91,7 @@ if (WIN32)
   add_compile_options(/Zm200) # Specify Precompiled Header Memory Allocation Limit of 150MB
   add_compile_options(/wd4960 /wd4961 /wd4603 /wd4627 /wd4838 /wd4456 /wd4457 /wd4458 /wd4459 /wd4091 /we4640)
   add_compile_options(/Zi) # enable debugging information
+  add_compile_options(/ZH:SHA_256) # use SHA256 for generating hashes of compiler processed source files.
 
   if (CLR_CMAKE_PLATFORM_ARCH_I386)
     add_compile_options(/Gz)
@@ -112,6 +117,8 @@ if (WIN32)
   add_compile_options($<$<OR:$<CONFIG:Release>,$<CONFIG:Relwithdebinfo>>:/MT>)  
   add_compile_options($<$<OR:$<CONFIG:Debug>,$<CONFIG:Checked>>:/MTd>)  
 
+  set(CMAKE_ASM_MASM_FLAGS "${CMAKE_ASM_MASM_FLAGS} /ZH:SHA_256")
+  
 endif (WIN32)
 
 if(CMAKE_ENABLE_CODE_COVERAGE)
index 2a980a0..9a293ce 100644 (file)
--- a/dir.props
+++ b/dir.props
     <DotnetToolCommand Condition="'$(DotnetToolCommand)'=='' and '$(OsEnvironment)'!='Unix'">$(DotnetCliPath)dotnet.exe</DotnetToolCommand>  
     <DotnetToolCommand Condition="'$(DotnetToolCommand)'=='' and '$(OsEnvironment)'=='Unix'">$(DotnetCliPath)dotnet</DotnetToolCommand>  
 
-    <!-- If CORE_ROOT is set on Windows, the dotnet CLI tool tries to use it. This results in DLL resolution errors. Unset CORE_ROOT during restore. -->
-    <DnuRestoreCommand Condition="'$(OsEnvironment)'!='Unix'">(set CORE_ROOT=) &amp;</DnuRestoreCommand>
-    
     <DnuRestoreCommand>$(DnuRestoreCommand) "$(DotnetToolCommand)"</DnuRestoreCommand> 
     <DnuRestoreCommand>$(DnuRestoreCommand) restore</DnuRestoreCommand>
     <DnuRestoreCommand>$(DnuRestoreCommand) --packages "$(PackagesDir.TrimEnd('\\'))"</DnuRestoreCommand>
-    <DnuRestoreCommand Condition="'$(InferRuntimes)'!='false'">$(DnuRestoreCommand) --infer-runtimes</DnuRestoreCommand>
   </PropertyGroup>
   
   <!--
index 0503480..4f17aa0 100755 (executable)
@@ -14,6 +14,7 @@ def static getOSGroup(def os) {
         'RHEL7.2': 'Linux',
         'Ubuntu16.04': 'Linux',
         'Debian8.2':'Linux',
+        'Fedora23':'Linux',
         'OSX':'OSX',
         'Windows_NT':'Windows_NT',
         'FreeBSD':'FreeBSD',
@@ -31,7 +32,7 @@ class Constants {
     // The Windows_NT_BuildOnly OS is a way to speed up the Non-NT builds temporarily by avoiding
     // test execution in the build flow runs.  It generates the exact same build
     // as Windows_NT but without the tests.
-    def static osList = ['Ubuntu', 'Debian8.2', 'OSX', 'Windows_NT', 'Windows_NT_BuildOnly', 'FreeBSD', 'CentOS7.1', 'OpenSUSE13.2', 'RHEL7.2', 'LinuxARMEmulator', 'Ubuntu16.04']
+    def static osList = ['Ubuntu', 'Debian8.2', 'OSX', 'Windows_NT', 'Windows_NT_BuildOnly', 'FreeBSD', 'CentOS7.1', 'OpenSUSE13.2', 'RHEL7.2', 'LinuxARMEmulator', 'Ubuntu16.04', 'Fedora23']
     def static crossList = ['Ubuntu', 'OSX', 'CentOS7.1', 'RHEL7.2', 'Debian8.2', 'OpenSUSE13.2']
     // This is a set of JIT stress modes combined with the set of variables that
     // need to be set to actually enable that stress mode.  The key of the map is the stress mode and
@@ -72,7 +73,7 @@ class Constants {
     // This is the set of configurations
     def static configurationList = ['Debug', 'Checked', 'Release']
     // This is the set of architectures
-    def static architectureList = ['arm', 'arm64', 'x64', 'x86']
+    def static architectureList = ['arm', 'arm64', 'x64', 'x86ryujit', 'x86lb']
 }
 
 def static setMachineAffinity(def job, def os, def architecture) {
@@ -89,6 +90,13 @@ def static setMachineAffinity(def job, def os, def architecture) {
 }
 
 def static isGCStressRelatedTesting(def scenario) {
+    // The 'gcstress15_pri1r2r' scenario is a basic scenario.
+    // Detect it and make it a GCStress related.
+    if (scenario == 'gcstress15_pri1r2r')
+    {
+        return true;
+    }
+
     def gcStressTestEnvVars = [ 'COMPlus_GCStress', 'COMPlus_ZapDisable', 'COMPlus_HeapVerify']
     def scenarioName = scenario.toLowerCase()
     def isGCStressTesting = false
@@ -122,7 +130,7 @@ def static isLongGc(def scenario) {
 
 def static setTestJobTimeOut(newJob, scenario) {
     if (isGCStressRelatedTesting(scenario)) {
-        Utilities.setJobTimeout(newJob, 1440)
+        Utilities.setJobTimeout(newJob, 4320)
     }
     else if (isCorefxTesting(scenario)) {
         Utilities.setJobTimeout(newJob, 360)
@@ -136,6 +144,9 @@ def static setTestJobTimeOut(newJob, scenario) {
     else if (isCoverage(scenario)) {
         Utilities.setJobTimeout(newJob, 1440)  
     }
+    else if (isLongGc(scenario)) {
+        Utilities.setJobTimeout(newJob, 1440)
+    }
     // Non-test jobs use the default timeout value.
 }
 
@@ -229,8 +240,11 @@ def static getJobName(def configuration, def architecture, def os, def scenario,
             // These are cross builds
             baseName = architecture.toLowerCase() + '_cross_' + configuration.toLowerCase() + '_' + os.toLowerCase()
             break
-        case 'x86':
-            baseName = architecture.toLowerCase() + '_lb_' + configuration.toLowerCase() + '_' + os.toLowerCase()
+        case 'x86ryujit':
+            baseName = 'x86_ryujit_' + configuration.toLowerCase() + '_' + os.toLowerCase()
+            break
+        case 'x86lb':
+            baseName = 'x86_lb_' + configuration.toLowerCase() + '_' + os.toLowerCase()
             break
         default:
             println("Unknown architecture: ${architecture}");
@@ -275,7 +289,8 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
             case 'default':
                 switch (architecture) {
                     case 'x64':
-                    case 'x86':
+                    case 'x86ryujit':
+                    case 'x86lb':
                         if (isFlowJob || os == 'Windows_NT' || !(os in Constants.crossList)) {
                             Utilities.addGithubPushTrigger(job)
                         }
@@ -334,7 +349,7 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
                         }
                     }
                     // For x86, only add per-commit jobs for Windows
-                    else if (architecture == 'x86') {
+                    else if (architecture == 'x86ryujit' || architecture == 'x86lb') {
                         if (os == 'Windows_NT') {
                             Utilities.addGithubPushTrigger(job)
                         }
@@ -349,13 +364,14 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
                     if (architecture == 'x64') {
                         //Flow jobs should be Windows, Ubuntu, OSX, or CentOS
                         if (isFlowJob || os == 'Windows_NT') {
-                            Utilities.addGithubPushTrigger(job)
+                            // Add a weekly periodic trigger
+                            Utilities.addPeriodicTrigger(job, 'H H * * 3,6') // some time every Wednesday and Saturday
                         }
                     }
                     // For x86, only add per-commit jobs for Windows
-                    else if (architecture == 'x86') {
+                    else if (architecture == 'x86ryujit' || architecture == 'x86lb') {
                         if (os == 'Windows_NT') {
-                            Utilities.addGithubPushTrigger(job)
+                            Utilities.addPeriodicTrigger(job, 'H H * * 3,6') // some time every Wednesday and Saturday
                         }
                     }
                 }
@@ -368,7 +384,11 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
                 addEmailPublisher(job, 'dotnetgctests@microsoft.com')
                 break
             case 'gcsimulator':
-                // GCSimulator is currently only triggered by PR
+                assert (os == 'Ubuntu' || os == 'Windows_NT' || os == 'OSX')
+                assert configuration == 'Release'
+                assert architecture == 'x64'
+                Utilities.addPeriodicTrigger(job, 'H H * * 3,6') // some time every Wednesday and Saturday
+                addEmailPublisher(job, 'dotnetgctests@microsoft.com')
                 break
             case 'ilrt':
                 assert !(os in bidailyCrossList)
@@ -469,10 +489,11 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
                         Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Pri 1 Build & Test", "(?i).*test\\W+${os}\\W+${scenario}.*")
                     }
                     break
+                case 'Fedora23':
                 case 'Ubuntu16.04':
                     assert !isFlowJob
                     assert scenario == 'default'
-                    Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build", '(?i).*test\\W+Ubuntu16\\.04.*')
+                    Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build", '(?i).*test\\W+${os}\\W+.*')
                     break                
                 case 'Ubuntu':
                 case 'OSX':
@@ -841,52 +862,59 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
                     break
             }
             break
-        case 'x86':
+        case 'x86ryujit':
+        case 'x86lb':
             assert (scenario == 'default' || scenario == 'r2r' || scenario == 'pri1r2r' || scenario == 'gcstress15_pri1r2r' || scenario == 'longgc' || scenario == 'gcsimulator')
             // For windows, x86 runs by default
+            def arch = 'x86'
+            def jit = 'ryujit'
+            if (architecture == 'x86lb') {
+                jit = 'legacy_backend'
+            }
+            
             if (scenario == 'default') {
                 if (os == 'Windows_NT') {
-                    if (configuration != 'Checked') {
-                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Legacy Backend Build and Test")
+                    if (configuration == 'Checked') {
+                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test")
                     }
                 }
                 else {
                     // default trigger
-                    Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build", "(?i).*test\\W+${architecture}\\W+${osGroup}.*")
+                    Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build", "(?i).*test\\W+${arch}\\W+${osGroup}.\\W+${jit}*")
                 }
             }
             else if (scenario == 'r2r') {
                 if (os == 'Windows_NT') {
                     if (configuration == 'Release') {
-                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} R2R pri0 Legacy Backend Build & Test", "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}\\W+${scenario}.*")
+                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} R2R pri0 Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
                     }
                 }
             }
             else if (scenario == 'pri1r2r') {
                 if (os == 'Windows_NT') {
                     if (configuration == 'Release') {
-                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} R2R pri1 Legacy Backend Build & Test", "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}\\W+${scenario}.*")
+                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
                     }
                 }
             }
             else if (scenario == 'gcstress15_pri1r2r'){
                 if (os == 'Windows_NT'){
                     if (configuration == 'Release'){
-                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} GCStress 15 R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}\\W+${scenario}.*")  
+                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} GCStress 15 R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")  
                     }
                 }
             } 
             else if (scenario == 'longgc') {
                 if (os == 'Windows_NT'){
                     if (configuration == 'Release'){
-                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Long-Running GC Build & Test", "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}\\W+${scenario}.*")  
+                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Long-Running GC Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")  
                     }
                 }
             }
             else if (scenario == 'gcsimulator') {
                 if (os == 'Windows_NT') {
                     if (configuration == 'Release') {
-                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} GC Simulator", "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}\\W+${scenario}.*")
+                        Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} GC Simulator", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*")
                     }
                 }
             }
@@ -941,7 +969,8 @@ combinedScenarios.each { scenario ->
                                 return
                             }
                             break
-                        case 'x86':
+                        case 'x86ryujit':
+                        case 'x86lb':
                             // Skip non-windows
                             if (os != 'Windows_NT') {
                                 return
@@ -1008,7 +1037,6 @@ combinedScenarios.each { scenario ->
                                 if (os != 'Windows_NT') {
                                     return
                                 }
-                                // only x64 or x86 for now
                                 if (architecture != 'x64') {
                                     return
                                 }
@@ -1019,7 +1047,6 @@ combinedScenarios.each { scenario ->
                                 if (os != 'Windows_NT') {
                                     return
                                 }
-                                // only x64 or x86 for now
                                 if (architecture != 'x64') {
                                     return
                                 }
@@ -1030,7 +1057,6 @@ combinedScenarios.each { scenario ->
                                 if (os != 'Windows_NT') {
                                     return
                                 }
-                                // only x64 or x86 for now
                                 if (architecture != 'x64') {
                                     return
                                 }
@@ -1090,11 +1116,16 @@ combinedScenarios.each { scenario ->
                         case 'Windows_NT':
                             switch (architecture) {
                                 case 'x64':
-                                case 'x86':
+                                case 'x86ryujit':
+                                case 'x86lb':
+                                    def arch = architecture
+                                    if (architecture == 'x86ryujit' || architecture == 'x86lb') {
+                                        arch = 'x86'
+                                    }
                                     
                                     if (Constants.jitStressModeScenarios.containsKey(scenario) || scenario == 'default') {
                                         buildOpts = enableCorefxTesting ? 'skiptests' : ''
-                                        buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} ${buildOpts}"
+                                        buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} ${buildOpts}"
                                     }
 
                                     // For Pri 1 tests, we must shorten the output test binary path names.
@@ -1104,37 +1135,37 @@ combinedScenarios.each { scenario ->
                                     // 35 characters long.
 
                                     else if (scenario == 'pri1') {
-                                        buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} Priority 1"
+                                        buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} Priority 1"
                                     }
                                     else if (scenario == 'ilrt') {
                                         // First do the build with skiptests and then build the tests with ilasm roundtrip
-                                        buildCommands += "build.cmd ${lowerConfiguration} ${architecture} skiptests"
-                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${architecture} ilasmroundtrip"
+                                        buildCommands += "build.cmd ${lowerConfiguration} ${arch} skiptests"
+                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${arch} ilasmroundtrip"
                                     }
                                     else if (scenario == 'r2r') {
-                                        buildCommands += "build.cmd ${lowerConfiguration} ${architecture} skiptests"
-                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${architecture} crossgen"
+                                        buildCommands += "build.cmd ${lowerConfiguration} ${arch} skiptests"
+                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${arch} crossgen"
                                     }
                                     else if (scenario == 'pri1r2r') {
-                                        buildCommands += "build.cmd ${lowerConfiguration} ${architecture} skiptests"
-                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${architecture} crossgen Priority 1"
+                                        buildCommands += "build.cmd ${lowerConfiguration} ${arch} skiptests"
+                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${arch} crossgen Priority 1"
                                     }
                                     else if (scenario == 'gcstress15_pri1r2r') {
                                         //Build pri1 R2R tests with GC stress level 15
-                                        buildCommands += "build.cmd ${lowerConfiguration} ${architecture} skiptests"
-                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${architecture} crossgen Priority 1 gcstresslevel 15"
+                                        buildCommands += "build.cmd ${lowerConfiguration} ${arch} skiptests"
+                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${arch} crossgen Priority 1 gcstresslevel 15"
                                     }
                                     else if (scenario == 'longgc') {
-                                        buildCommands += "build.cmd ${lowerConfiguration} ${architecture} skiptests"
-                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${architecture} longgctests"
+                                        buildCommands += "build.cmd ${lowerConfiguration} ${arch} skiptests"
+                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${arch} longgctests"
                                     }
                                     else if (scenario == 'gcsimulator') {
-                                        buildCommands += "build.cmd ${lowerConfiguration} ${architecture} skiptests"
-                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${architecture} gcsimulator"
+                                        buildCommands += "build.cmd ${lowerConfiguration} ${arch} skiptests"
+                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${arch} gcsimulator"
                                     }
                                     else if (scenario == 'coverage') {
-                                        buildCommands += "build.cmd ${lowerConfiguration} ${architecture} skiptests"
-                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${architecture} crossgen Priority 1"
+                                        buildCommands += "build.cmd ${lowerConfiguration} ${arch} skiptests"
+                                        buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${arch} crossgen Priority 1"
                                     }
                                     else {
                                         println("Unknown scenario: ${scenario}")
@@ -1170,21 +1201,34 @@ combinedScenarios.each { scenario ->
                                                 
                                                 // Run tests with the 
                                                 
-                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${architecture} TestEnv ${stepScriptLocation}"
+                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${arch} TestEnv ${stepScriptLocation}"
                                             }                                            
                                         }
                                         else if (architecture == 'x64') {
                                             if (isLongGc(scenario)) {
-                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${architecture} longgctests sequential"
-                                            } else {
-                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${architecture}"
+                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${arch} longgctests sequential"
+                                            } 
+                                            else {
+                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${arch}"
+                                            }
+                                        }                                        
+                                        else if (architecture == 'x86ryujit') {
+                                            def testEnvLocation = "%WORKSPACE%\\tests\\x86\\ryujit_x86_testenv.cmd"
+                                            
+                                            if (isLongGc(scenario)) {
+                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${arch} longgctests sequential TestEnv ${testEnvLocation}"
+                                            } 
+                                            else {
+                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${arch} TestEnv ${testEnvLocation}"
                                             }
                                         }
-                                        else if (architecture == 'x86') {
+
+                                        else if (architecture == 'x86lb') {
                                             if (isLongGc(scenario)) {
-                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${architecture} longgctests sequential"
-                                            } else {
-                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${architecture} Exclude0 x86_legacy_backend_issues.targets"
+                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${arch} longgctests sequential"
+                                            } 
+                                            else {
+                                                buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${arch} Exclude0 x86_legacy_backend_issues.targets"
                                             }
                                         }
                                     }
@@ -1192,13 +1236,13 @@ combinedScenarios.each { scenario ->
                                     if (!enableCorefxTesting) {
                                         // Run the rest of the build    
                                         // Build the mscorlib for the other OS's
-                                        buildCommands += "build.cmd ${lowerConfiguration} ${architecture} linuxmscorlib"
-                                        buildCommands += "build.cmd ${lowerConfiguration} ${architecture} freebsdmscorlib"
-                                        buildCommands += "build.cmd ${lowerConfiguration} ${architecture} osxmscorlib"
+                                        buildCommands += "build.cmd ${lowerConfiguration} ${arch} linuxmscorlib"
+                                        buildCommands += "build.cmd ${lowerConfiguration} ${arch} freebsdmscorlib"
+                                        buildCommands += "build.cmd ${lowerConfiguration} ${arch} osxmscorlib"
                                     
                                         // Zip up the tests directory so that we don't use so much space/time copying
                                         // 10s of thousands of files around.
-                                        buildCommands += "powershell -Command \"Add-Type -Assembly 'System.IO.Compression.FileSystem'; [System.IO.Compression.ZipFile]::CreateFromDirectory('.\\bin\\tests\\${osGroup}.${architecture}.${configuration}', '.\\bin\\tests\\tests.zip')\"";
+                                        buildCommands += "powershell -Command \"Add-Type -Assembly 'System.IO.Compression.FileSystem'; [System.IO.Compression.ZipFile]::CreateFromDirectory('.\\bin\\tests\\${osGroup}.${arch}.${configuration}', '.\\bin\\tests\\tests.zip')\"";
                                         
                                         // For windows, pull full test results and test drops for x86/x64
                                         Utilities.addArchival(newJob, "bin/Product/**,bin/tests/tests.zip")
@@ -1258,21 +1302,28 @@ combinedScenarios.each { scenario ->
                         case 'CentOS7.1':
                         case 'RHEL7.2':
                         case 'OpenSUSE13.2':
+                        case 'Fedora23':
                             switch (architecture) {
                                 case 'x64':
-                                case 'x86':
+                                case 'x86ryujit':
+                                case 'x86lb':
+                                    def arch = architecture
+                                    if (architecture == 'x86ryujit' || architecture == 'x86lb') {
+                                        arch = 'x86'
+                                    }
+                                
                                     if (!enableCorefxTesting) {
                                         // We run pal tests on all OS but generate mscorlib (and thus, nuget packages)
                                         // only on supported OS platforms.
                                         if ((os == 'FreeBSD') || (os == 'OpenSUSE13.2'))
                                         {
-                                            buildCommands += "./build.sh skipmscorlib verbose ${lowerConfiguration} ${architecture}"
+                                            buildCommands += "./build.sh skipmscorlib verbose ${lowerConfiguration} ${arch}"
                                         }
                                         else if (scenario == 'coverage')
                                         {
                                             assert os == 'Ubuntu'
                                             assert lowerConfiguration == 'release'
-                                            buildCommands += "./build.sh coverage verbose ${lowerConfiguration} ${architecture}"
+                                            buildCommands += "./build.sh coverage verbose ${lowerConfiguration} ${arch}"
 
                                             // Remove folders from obj that we don't expect to be covered. May update this later.
                                             buildCommands += "rm -rf ./bin/obj/Linux.x64.Release/src/ToolBox"
@@ -1285,9 +1336,9 @@ combinedScenarios.each { scenario ->
                                         }
                                         else
                                         {
-                                            buildCommands += "./build.sh verbose ${lowerConfiguration} ${architecture}"
+                                            buildCommands += "./build.sh verbose ${lowerConfiguration} ${arch}"
                                         }
-                                        buildCommands += "src/pal/tests/palsuite/runpaltests.sh \${WORKSPACE}/bin/obj/${osGroup}.${architecture}.${configuration} \${WORKSPACE}/bin/paltestout"
+                                        buildCommands += "src/pal/tests/palsuite/runpaltests.sh \${WORKSPACE}/bin/obj/${osGroup}.${arch}.${configuration} \${WORKSPACE}/bin/paltestout"
 
                                         // Delete PAL test obj files after we run them, if this is a coverage job
                                         if (scenario == 'coverage') {
index 0baad3c..37a8afd 100644 (file)
@@ -3,7 +3,7 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
   
   <PropertyGroup>
-    <Version>1.0.2</Version>
+    <Version>1.0.3</Version>
     <SkipPackageFileCheck>true</SkipPackageFileCheck>
     <PackageTargetRuntime>debian.8-$(PackagePlatform)</PackageTargetRuntime>
     <!-- only build for x64 -->
@@ -23,6 +23,7 @@
     <ArchitectureSpecificNativeFile Include="$(BinDir)sosdocsunix.txt"/>
     <ArchitectureSpecificNativeFile Include="$(BinDir)mscorlib.ni.dll"/>
     <ArchitectureSpecificLibFile Include="$(BinDir)mscorlib.dll"/>
+    <ArchitectureSpecificLibFile Include="$(BinDir)System.Private.CoreLib.dll"/>
     <ArchitectureSpecificToolFile Include="$(BinDir)crossgen"/>
     <ArchitectureSpecificNativeFile Include="@(NativeSplittableBinary)"/>
 
index 0d7765a..b5d0c49 100644 (file)
@@ -3,7 +3,7 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
   
   <PropertyGroup>
-    <Version>1.0.2</Version>
+    <Version>1.0.3</Version>
     <SkipPackageFileCheck>true</SkipPackageFileCheck>
     <PackageTargetRuntime>osx.10.10-$(PackagePlatform)</PackageTargetRuntime>
     <!-- only build for x64 -->
@@ -22,6 +22,7 @@
     <ArchitectureSpecificNativeFile Include="$(BinDir)sosdocsunix.txt"/>
     <ArchitectureSpecificNativeFile Include="$(BinDir)mscorlib.ni.dll"/>
     <ArchitectureSpecificLibFile Include="$(BinDir)mscorlib.dll"/>
+    <ArchitectureSpecificLibFile Include="$(BinDir)System.Private.CoreLib.dll"/>
     <ArchitectureSpecificToolFile Include="$(BinDir)crossgen"/>
     <ArchitectureSpecificNativeFile Include="@(NativeSplittableBinary)"/>
 
index 495ad26..cb5a720 100644 (file)
@@ -3,7 +3,7 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
   
   <PropertyGroup>
-    <Version>1.0.2</Version>
+    <Version>1.0.3</Version>
     <SkipPackageFileCheck>true</SkipPackageFileCheck>
     <PackageTargetRuntime>rhel.7-$(PackagePlatform)</PackageTargetRuntime>
     <!-- only build for x64 -->
@@ -22,6 +22,7 @@
     <NativeSplittableBinary Include="$(BinDir)System.Globalization.Native.so"/>
     <ArchitectureSpecificNativeFile Include="$(BinDir)sosdocsunix.txt"/>
     <ArchitectureSpecificNativeFile Include="$(BinDir)mscorlib.ni.dll"/>
+    <ArchitectureSpecificLibFile Include="$(BinDir)System.Private.CoreLib.dll"/>
     <ArchitectureSpecificLibFile Include="$(BinDir)mscorlib.dll"/>
     <ArchitectureSpecificToolFile Include="$(BinDir)crossgen"/>
 
index 9ea5815..0e71218 100644 (file)
@@ -3,7 +3,7 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
   
   <PropertyGroup>
-    <Version>1.0.2</Version>
+    <Version>1.0.3</Version>
     <SkipPackageFileCheck>true</SkipPackageFileCheck>
     <PackageTargetRuntime>ubuntu.14.04-$(PackagePlatform)</PackageTargetRuntime>
     <!-- only build for x64 -->
@@ -22,6 +22,7 @@
     <NativeSplittableBinary Include="$(BinDir)System.Globalization.Native.so"/>
     <ArchitectureSpecificNativeFile Include="$(BinDir)sosdocsunix.txt"/>
     <ArchitectureSpecificNativeFile Include="$(BinDir)mscorlib.ni.dll"/>
+    <ArchitectureSpecificLibFile Include="$(BinDir)System.Private.CoreLib.dll"/>
     <ArchitectureSpecificLibFile Include="$(BinDir)mscorlib.dll"/>
     <ArchitectureSpecificToolFile Include="$(BinDir)crossgen"/>
 
index ef3e035..b856c40 100644 (file)
@@ -3,7 +3,7 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
   
   <PropertyGroup>
-    <Version>1.0.2</Version>
+    <Version>1.0.3</Version>
     <SkipPackageFileCheck>true</SkipPackageFileCheck>
     <MinOSForArch>win7</MinOSForArch>
     <MinOSForArch Condition="$(PackagePlatform.StartsWith('arm'))">win8</MinOSForArch>
@@ -22,6 +22,7 @@
     <ArchitectureSpecificNativeFile Include="$(BinDir)mscorrc.dll"/>
     <ArchitectureSpecificNativeFile Include="$(BinDir)sos.dll"/>
 
+    <ArchitectureSpecificLibFile Include="$(BinDir)System.Private.CoreLib.dll"/>
     <ArchitectureSpecificLibFile Include="$(BinDir)mscorlib.dll"/>
 
     <ArchitectureSpecificToolFile Include="$(BinDir)crossgen.exe"/>
diff --git a/src/.nuget/Microsoft.TargetingPack.Private.CoreCLR/Microsoft.TargetingPack.Private.CoreCLR.pkgproj b/src/.nuget/Microsoft.TargetingPack.Private.CoreCLR/Microsoft.TargetingPack.Private.CoreCLR.pkgproj
new file mode 100644 (file)
index 0000000..c9d9d0c
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+
+  <PropertyGroup>
+    <Version>1.0.1</Version>
+    <SkipPackageFileCheck>true</SkipPackageFileCheck>
+    <SkipValidatePackage>true</SkipValidatePackage>
+    <PackagePlatforms>x64;</PackagePlatforms>
+    <OutputPath>$(PackagesOutputPath)</OutputPath>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <File Include="$(BinDir)/ref/mscorlib.dll">
+      <TargetPath>lib/netstandard1.0</TargetPath>
+    </File>
+  </ItemGroup>
+
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
index 23b2e2e..8a8333f 100644 (file)
@@ -8,5 +8,10 @@
         "Name": "Microsoft.NETCore.Runtime.CoreCLR",
         "Description": "The .NET Core runtime, called CoreCLR, and the base library, called mscorlib. It includes the garbage collector, JIT compiler, base .NET data types and many low-level classes.",
         "CommonTypes": [ ]
+    },
+    {
+        "Name": "Microsoft.TargetingPack.Private.CoreCLR",
+        "Description": "Contains a private targeting pack which contains only the CoreCLR mscorlib reference assembly. Used for producing platform specific libraries such as facades.",
+        "CommonTypes": [ ]
     }
 ]
index c614fbb..097f4cd 100644 (file)
@@ -888,7 +888,7 @@ BOOL PrintCallInfo(DWORD_PTR vEBP, DWORD_PTR IP, DumpStackFlag& DSFlag, BOOL bSy
     {
         bOutput = TRUE;
         if (!bSymbolOnly)
-            DMLOut("%p %s ", (ULONG64)vEBP, DMLIP(IP));
+            DMLOut("%p %s ", SOS_PTR(vEBP), DMLIP(IP));
         DMLOut("(MethodDesc %s ", DMLMethodDesc(methodDesc));    
         
         // TODO: Microsoft, more checks to make sure method is not eeimpl, etc. Add this field to MethodDesc
@@ -918,7 +918,7 @@ BOOL PrintCallInfo(DWORD_PTR vEBP, DWORD_PTR IP, DumpStackFlag& DSFlag, BOOL bSy
             bOutput = TRUE;
             const char *name;
             if (!bSymbolOnly)
-                DMLOut("%p %s ", (ULONG64)vEBP, DMLIP(IP));
+                DMLOut("%p %s ", SOS_PTR(vEBP), DMLIP(IP));
 
             // if AMD64 ever becomes a cross platform target this must be resolved through
             // virtual dispatch rather than conditional compilation
@@ -1030,9 +1030,9 @@ void DumpStackWorker (DumpStackFlag &DSFlag)
                     ExtOut(" ====> Exception ");
                     if (exrAddr)
                         ExtOut("Code %x ", exr.ExceptionCode);
-                    ExtOut ("cxr@%p", (ULONG64)cxrAddr);
+                    ExtOut ("cxr@%p", SOS_PTR(cxrAddr));
                     if (exrAddr)
-                        ExtOut(" exr@%p", (ULONG64)exrAddr);
+                        ExtOut(" exr@%p", SOS_PTR(exrAddr));
                     ExtOut("\n");
                 }
             }
index 4dd18aa..d802ebf 100644 (file)
@@ -383,7 +383,7 @@ void HandleCall(TADDR callee, Register *reg)
         if (MethodDescData.Request(g_sos, TO_CDADDR(methodDesc)) == S_OK)
         {
             NameForMD_s(methodDesc, g_mdName,mdNameLen);                    
-            ExtOut(" (%S, mdToken: %p)", g_mdName, (UINT64)MethodDescData.MDToken);
+            ExtOut(" (%S, mdToken: %p)", g_mdName, SOS_PTR(MethodDescData.MDToken));
             return;
         }
     }
@@ -414,7 +414,7 @@ void HandleCall(TADDR callee, Register *reg)
             if (MethodDescData.Request(g_sos, md) == S_OK)
             {
                 NameForMD_s(md, g_mdName,mdNameLen);
-                ExtOut(" (%S, mdToken: %p)", g_mdName, (UINT64)MethodDescData.MDToken);
+                ExtOut(" (%S, mdToken: %p)", g_mdName, SOS_PTR(MethodDescData.MDToken));
                 return;
             }
         }
index 1755cc7..757a04c 100644 (file)
@@ -86,7 +86,7 @@ static void DllsNameFromPeb(
     if (FAILED(g_ExtData->ReadVirtual(ProcessPeb+Offset_Ldr, &peb.Ldr,
                                       sizeof(peb.Ldr), NULL)))
     {
-        ExtOut ( "    Unable to read PEB_LDR_DATA address at %p\n", (ULONG64)(ProcessPeb+Offset_Ldr));
+        ExtOut ( "    Unable to read PEB_LDR_DATA address at %p\n", SOS_PTR(ProcessPeb+Offset_Ldr));
         return;
     }
 
@@ -123,7 +123,7 @@ static void DllsNameFromPeb(
                                       sizeof(Ldr.InMemoryOrderModuleList),
                                       NULL)))
     {
-        ExtOut ( "    Unable to read InMemoryOrderModuleList address at %p\n", OrderModuleListStart);
+        ExtOut ( "    Unable to read InMemoryOrderModuleList address at %p\n", SOS_PTR(OrderModuleListStart));
         return;
     }
     Next = (ULONG64)Ldr.InMemoryOrderModuleList.Flink;
@@ -201,7 +201,7 @@ static void DllsNameFromPeb(
             {
 #if 0
                 ExtOut ( "    Unable to read FullDllName.Buffer address at %p\n",
-                         (ULONG64)FullDllName.Buffer);
+                         SOS_PTR(FullDllName.Buffer));
 #endif
                 ZeroMemory( dllName, MAX_LONGPATH * sizeof (WCHAR) );
             }
index eef58e7..ac41e2d 100644 (file)
@@ -447,7 +447,7 @@ void GCPrintGenerationInfo(const DacpGcHeapDetails &heap)
         if (IsInterrupt())
             return;
         ExtOut("generation %d starts at 0x%p\n",
-                 n, (ULONG64)heap.generation_table[n].allocation_start);
+                 n, SOS_PTR(heap.generation_table[n].allocation_start));
     }
 
     // We also need to look at the gen0 alloc context.
@@ -455,8 +455,8 @@ void GCPrintGenerationInfo(const DacpGcHeapDetails &heap)
     if (heap.generation_table[0].allocContextPtr)
     {
         ExtOut("(0x%p, 0x%p)\n",
-            (ULONG64) heap.generation_table[0].allocContextPtr,
-            (ULONG64) (heap.generation_table[0].allocContextLimit + Align(min_obj_size)));       
+            SOS_PTR(heap.generation_table[0].allocContextPtr),
+            SOS_PTR(heap.generation_table[0].allocContextLimit + Align(min_obj_size)));
     }
     else
     {
@@ -479,11 +479,11 @@ void GCPrintSegmentInfo(const DacpGcHeapDetails &heap, DWORD_PTR &total_size)
             return;
         if (segment.Request(g_sos, dwAddrSeg, heap) != S_OK)
         {
-            ExtOut("Error requesting heap segment %p\n", (ULONG64)dwAddrSeg);
+            ExtOut("Error requesting heap segment %p\n", SOS_PTR(dwAddrSeg));
             return;
         }
-        ExtOut("%p  %p  %p  0x%" POINTERSIZE_TYPE "x(%" POINTERSIZE_TYPE "d)\n", (ULONG64)dwAddrSeg,
-                 (ULONG64)segment.mem, (ULONG64)segment.allocated,
+        ExtOut("%p  %p  %p  0x%" POINTERSIZE_TYPE "x(%" POINTERSIZE_TYPE "d)\n", SOS_PTR(dwAddrSeg),
+                 SOS_PTR(segment.mem), SOS_PTR(segment.allocated),
                  (ULONG_PTR)(segment.allocated - segment.mem),
                  (ULONG_PTR)(segment.allocated - segment.mem));
         total_size += (DWORD_PTR) (segment.allocated - segment.mem);
@@ -492,13 +492,13 @@ void GCPrintSegmentInfo(const DacpGcHeapDetails &heap, DWORD_PTR &total_size)
 
     if (segment.Request(g_sos, dwAddrSeg, heap) != S_OK)
     {
-        ExtOut("Error requesting heap segment %p\n",(ULONG64)dwAddrSeg);
+        ExtOut("Error requesting heap segment %p\n", SOS_PTR(dwAddrSeg));
         return;
     }
     
     DWORD_PTR end = (DWORD_PTR)heap.alloc_allocated;
-    ExtOut("%p  %p  %p  0x%" POINTERSIZE_TYPE "x(%" POINTERSIZE_TYPE "d)\n", (ULONG64)dwAddrSeg,
-             (ULONG64)segment.mem, (ULONG64)end,
+    ExtOut("%p  %p  %p  0x%" POINTERSIZE_TYPE "x(%" POINTERSIZE_TYPE "d)\n", SOS_PTR(dwAddrSeg),
+             SOS_PTR(segment.mem), SOS_PTR(end),
              (ULONG_PTR)(end - (DWORD_PTR)segment.mem),
              (ULONG_PTR)(end - (DWORD_PTR)segment.mem));
     
@@ -521,11 +521,11 @@ void GCPrintLargeHeapSegmentInfo(const DacpGcHeapDetails &heap, DWORD_PTR &total
             return;
         if (segment.Request(g_sos, dwAddrSeg, heap) != S_OK)
         {
-            ExtOut("Error requesting heap segment %p\n", (ULONG64)dwAddrSeg);
+            ExtOut("Error requesting heap segment %p\n", SOS_PTR(dwAddrSeg));
             return;
         }
-        ExtOut("%p  %p  %p  0x%" POINTERSIZE_TYPE "x(%" POINTERSIZE_TYPE "d)\n", (ULONG64)dwAddrSeg,
-                 (ULONG64)segment.mem, (ULONG64)segment.allocated,
+        ExtOut("%p  %p  %p  0x%" POINTERSIZE_TYPE "x(%" POINTERSIZE_TYPE "d)\n", SOS_PTR(dwAddrSeg),
+                 SOS_PTR(segment.mem), SOS_PTR(segment.allocated),
                  (ULONG_PTR)(segment.allocated - segment.mem),
                  segment.allocated - segment.mem);
         total_size += (DWORD_PTR) (segment.allocated - segment.mem);
@@ -539,7 +539,7 @@ void GCHeapInfo(const DacpGcHeapDetails &heap, DWORD_PTR &total_size)
     ExtOut("%" POINTERSIZE "s  %" POINTERSIZE "s  %" POINTERSIZE "s  %" POINTERSIZE "s\n", "segment", "begin", "allocated", "size");
     GCPrintSegmentInfo(heap, total_size);
     ExtOut("Large object heap starts at 0x%p\n",
-                  (ULONG64)heap.generation_table[GetMaxGeneration()+1].allocation_start);
+                  SOS_PTR(heap.generation_table[GetMaxGeneration()+1].allocation_start));
     ExtOut("%" POINTERSIZE "s  %" POINTERSIZE "s  %" POINTERSIZE "s  %" POINTERSIZE "s\n", "segment", "begin", "allocated", "size");
     GCPrintLargeHeapSegmentInfo(heap,total_size);
 }
@@ -588,7 +588,7 @@ BOOL GCObjInSegment(TADDR taddrObj, const DacpGcHeapDetails &heap,
             return FALSE;
         if (dacpSeg.Request(g_sos, taddrSeg, heap) != S_OK)
         {
-            ExtOut("Error requesting heap segment %p\n", (ULONG64)taddrSeg);
+            ExtOut("Error requesting heap segment %p\n", SOS_PTR(taddrSeg));
             return FALSE;
         }
         if (taddrObj >= TO_TADDR(dacpSeg.mem) && taddrObj < TO_TADDR(dacpSeg.allocated))
@@ -606,7 +606,7 @@ BOOL GCObjInSegment(TADDR taddrObj, const DacpGcHeapDetails &heap,
     // the ephemeral segment
     if (dacpSeg.Request(g_sos, taddrSeg, heap) != S_OK)
     {
-        ExtOut("Error requesting heap segment %p\n", (ULONG64)taddrSeg);
+        ExtOut("Error requesting heap segment %p\n", SOS_PTR(taddrSeg));
         return FALSE;
     }
 
@@ -637,7 +637,7 @@ BOOL GCObjInLargeSegment(TADDR taddrObj, const DacpGcHeapDetails &heap, TADDR_SE
             return FALSE;
         if (dacpSeg.Request(g_sos, taddrSeg, heap) != S_OK)
         {
-            ExtOut("Error requesting heap segment %p\n",(ULONG64)taddrSeg);
+            ExtOut("Error requesting heap segment %p\n", SOS_PTR(taddrSeg));
             return FALSE;
         }
         if (taddrObj >= TO_TADDR(dacpSeg.mem) && taddrObj && taddrObj < TO_TADDR(dacpSeg.allocated))
@@ -705,7 +705,7 @@ void GCGenUsageStats(TADDR start, TADDR end, const std::unordered_set<TADDR> &li
                 if (taddrObj == (TADDR)pAllocInfo->array[i].alloc_ptr)
                 {
                     ExtDbgOut("Skipping allocation context: [%#p-%#p)\n", 
-                        (ULONG64)pAllocInfo->array[i].alloc_ptr, (ULONG64)pAllocInfo->array[i].alloc_limit);
+                        SOS_PTR(pAllocInfo->array[i].alloc_ptr), SOS_PTR(pAllocInfo->array[i].alloc_limit));
                     taddrObj =
                         (TADDR)pAllocInfo->array[i].alloc_limit + Align(min_obj_size);
                     break;
@@ -739,7 +739,7 @@ void GCGenUsageStats(TADDR start, TADDR end, const std::unordered_set<TADDR> &li
         BOOL bMTOk = GetSizeEfficient(taddrObj, taddrMT, bLarge, objSize, bContainsPointers);
         if (!bMTOk)
         {
-            ExtErr("bad object: %#p - bad MT %#p\n", (ULONG64) taddrObj, (ULONG64) taddrMT);
+            ExtErr("bad object: %#p - bad MT %#p\n", SOS_PTR(taddrObj), SOS_PTR(taddrMT));
             // set objSize to size_t to look for the next valid MT
             objSize = sizeof(TADDR);
             continue;
@@ -792,7 +792,7 @@ BOOL GCHeapUsageStats(const DacpGcHeapDetails& heap, BOOL bIncUnreachable, HeapU
 
         if (dacpSeg.Request(g_sos, taddrSeg, heap) != S_OK)
         {
-            ExtErr("Error requesting heap segment %p\n", (ULONG64)taddrSeg);
+            ExtErr("Error requesting heap segment %p\n", SOS_PTR(taddrSeg));
             return FALSE;
         }
         GCGenUsageStats((TADDR)dacpSeg.mem, (TADDR)dacpSeg.allocated, liveObjs, heap, FALSE, &allocInfo, &hpUsage->genUsage[2]);
@@ -803,7 +803,7 @@ BOOL GCHeapUsageStats(const DacpGcHeapDetails& heap, BOOL bIncUnreachable, HeapU
     // 1b. now handle the ephemeral segment
     if (dacpSeg.Request(g_sos, taddrSeg, heap) != S_OK)
     {
-        ExtErr("Error requesting heap segment %p\n", (ULONG64)taddrSeg);
+        ExtErr("Error requesting heap segment %p\n", SOS_PTR(taddrSeg));
         return FALSE;
     }
 
@@ -836,7 +836,7 @@ BOOL GCHeapUsageStats(const DacpGcHeapDetails& heap, BOOL bIncUnreachable, HeapU
 
         if (dacpSeg.Request(g_sos, taddrSeg, heap) != S_OK)
         {
-            ExtErr("Error requesting heap segment %p\n",(ULONG64)taddrSeg);
+            ExtErr("Error requesting heap segment %p\n", SOS_PTR(taddrSeg));
             return FALSE;
         }
 
@@ -928,8 +928,8 @@ void GatherOneHeapFinalization(DacpGcHeapDetails& heapDetails, HeapStat *stat, B
                 (SegQueueLimit(heapDetails,gen_segment(m)) - SegQueue(heapDetails,gen_segment(m))) / sizeof(size_t));
             
             ExtOut ("(%p->%p)\n",
-                (ULONG64) SegQueue(heapDetails,gen_segment(m)),
-                (ULONG64) SegQueueLimit(heapDetails,gen_segment(m)));    
+                SOS_PTR(SegQueue(heapDetails,gen_segment(m))),
+                SOS_PTR(SegQueueLimit(heapDetails,gen_segment(m))));
         }
     }
 #ifndef FEATURE_PAL
@@ -951,9 +951,9 @@ void GatherOneHeapFinalization(DacpGcHeapDetails& heapDetails, HeapStat *stat, B
     {
         ExtOut ("Ready for finalization %d objects ",
                 (SegQueueLimit(heapDetails,FinalizerListSeg)-SegQueue(heapDetails,CriticalFinalizerListSeg)) / sizeof(size_t));
-        ExtOut ("(%p->%p)\n",                    
-                (ULONG64) SegQueue(heapDetails,CriticalFinalizerListSeg),
-                (ULONG64) SegQueueLimit(heapDetails,FinalizerListSeg));            
+        ExtOut ("(%p->%p)\n",
+                SOS_PTR(SegQueue(heapDetails,CriticalFinalizerListSeg)),
+                SOS_PTR(SegQueueLimit(heapDetails,FinalizerListSeg)));
     }
 
     // if bAllReady we only count objects that are ready for finalization,
@@ -1002,7 +1002,7 @@ BOOL GCHeapTraverse(const DacpGcHeapDetails &heap, AllocInfo* pallocInfo, VISITG
 
     if (segment.Request(g_sos, dwAddr, heap) != S_OK)
     {
-        ExtOut("Error requesting heap segment %p\n", (ULONG64)dwAddr);
+        ExtOut("Error requesting heap segment %p\n", SOS_PTR(dwAddr));
         return FALSE;
     }    
     
@@ -1033,9 +1033,9 @@ BOOL GCHeapTraverse(const DacpGcHeapDetails &heap, AllocInfo* pallocInfo, VISITG
             if (dwAddrCurrObj > (DWORD_PTR)end_of_segment)
             {
                 ExtOut ("curr_object: %p > heap_segment_allocated (seg: %p)\n",
-                         (ULONG64)dwAddrCurrObj, (ULONG64)dwAddrSeg);
+                         SOS_PTR(dwAddrCurrObj), SOS_PTR(dwAddrSeg));
                 if (dwAddrPrevObj) {
-                    ExtOut ("Last good object: %p\n", (ULONG64)dwAddrPrevObj);
+                    ExtOut ("Last good object: %p\n", SOS_PTR(dwAddrPrevObj));
                 }
                 return FALSE;
             }
@@ -1045,7 +1045,7 @@ BOOL GCHeapTraverse(const DacpGcHeapDetails &heap, AllocInfo* pallocInfo, VISITG
                 dwAddr = dwAddrSeg;
                 if (segment.Request(g_sos, dwAddr, heap) != S_OK)
                 {
-                    ExtOut("Error requesting heap segment %p\n", (ULONG64)dwAddr);
+                    ExtOut("Error requesting heap segment %p\n", SOS_PTR(dwAddr));
                     return FALSE;
                 }
                 dwAddrCurrObj = (DWORD_PTR)segment.mem;
@@ -1062,7 +1062,7 @@ BOOL GCHeapTraverse(const DacpGcHeapDetails &heap, AllocInfo* pallocInfo, VISITG
             {
                 // prev_object length is too long
                 ExtOut("curr_object: %p > end_youngest: %p\n",
-                         (ULONG64)dwAddrCurrObj, (ULONG64)end_youngest);
+                         SOS_PTR(dwAddrCurrObj), SOS_PTR(end_youngest));
                 if (dwAddrPrevObj) {
                     DMLOut("Last good object: %s\n", DMLObject(dwAddrPrevObj));
                 }
@@ -1132,7 +1132,7 @@ BOOL GCHeapTraverse(const DacpGcHeapDetails &heap, AllocInfo* pallocInfo, VISITG
     
     if (segment.Request(g_sos, dwAddr, heap) != S_OK)
     {
-        ExtOut("Error requesting heap segment %p\n",(ULONG64)dwAddr);
+        ExtOut("Error requesting heap segment %p\n", SOS_PTR(dwAddr));
         return FALSE;
     }
 
@@ -1156,9 +1156,9 @@ BOOL GCHeapTraverse(const DacpGcHeapDetails &heap, AllocInfo* pallocInfo, VISITG
             if (dwAddrCurrObj > (DWORD_PTR)end_of_segment)
             {
                 ExtOut("curr_object: %p > heap_segment_allocated (seg: %p)\n",
-                         (ULONG64)dwAddrCurrObj, (ULONG64)dwAddrSeg);
+                         SOS_PTR(dwAddrCurrObj), SOS_PTR(dwAddrSeg));
                 if (dwAddrPrevObj) {
-                    ExtOut("Last good object: %p\n", (ULONG64)dwAddrPrevObj);
+                    ExtOut("Last good object: %p\n", SOS_PTR(dwAddrPrevObj));
                 }
                 return FALSE;
             }
@@ -1168,7 +1168,7 @@ BOOL GCHeapTraverse(const DacpGcHeapDetails &heap, AllocInfo* pallocInfo, VISITG
                 dwAddr = dwAddrSeg;
                 if (segment.Request(g_sos, dwAddr, heap) != S_OK)
                 {
-                    ExtOut("Error requesting heap segment %p\n", (ULONG64)dwAddr);
+                    ExtOut("Error requesting heap segment %p\n", SOS_PTR(dwAddr));
                     return FALSE;
                 }
                 dwAddrCurrObj = (DWORD_PTR)segment.mem;
@@ -1481,7 +1481,7 @@ BOOL GCHeapSnapshot::AddSegments(DacpGcHeapDetails& details)
             // See code:ClrDataAccess::RequestGCHeapSegment for details. 
             if (segment.Request(g_sos, AddrSeg, details) != S_OK)
             {
-                ExtOut("Error requesting heap segment %p\n", (ULONG64)AddrSeg);
+                ExtOut("Error requesting heap segment %p\n", SOS_PTR(AddrSeg));
                 return FALSE;
             }
             if (n++ > nMaxHeapSegmentCount) // that would be insane
@@ -1552,7 +1552,7 @@ int GCHeapSnapshot::GetGeneration(CLRDATA_ADDRESS objectPointer)
     DacpGcHeapDetails *pDetails = GetHeap(objectPointer);
     if (pDetails == NULL)
     {
-        ExtOut("Object %p has no generation\n", (ULONG64)objectPointer);
+        ExtOut("Object %p has no generation\n", SOS_PTR(objectPointer));
         return 0;
     }
 
@@ -1601,7 +1601,7 @@ void LoaderHeapTraverse(CLRDATA_ADDRESS blockData,size_t blockSize,BOOL blockIsC
     }
     
     g_trav_totalSize += curSize;
-    ExtOut("%p(%x:%x) ", (ULONG64)blockData, blockSize, curSize);
+    ExtOut("%p(%x:%x) ", SOS_PTR(blockData), blockSize, curSize);
 }
 
 /**********************************************************************\
@@ -1696,7 +1696,7 @@ DWORD_PTR JitHeapInfo()
                     else if (codeHeapInfo[iHeaps].codeHeapType == CODEHEAP_HOST)
                     {
                         ExtOut("HostCodeHeap:      ");
-                        ExtOut("%p ", (ULONG64)codeHeapInfo[iHeaps].HostData.baseAddr);
+                        ExtOut("%p ", SOS_PTR(codeHeapInfo[iHeaps].HostData.baseAddr));
                         DWORD dwSize = (DWORD)(codeHeapInfo[iHeaps].HostData.currentAddr - codeHeapInfo[iHeaps].HostData.baseAddr);
                         PrintHeapSize(dwSize, 0);
                         totalSize += dwSize;
@@ -1890,7 +1890,7 @@ DWORD_PTR PrintModuleHeapInfo(__out_ecount(count) DWORD_PTR *moduleList, int cou
             DacpModuleData dmd;
             if (dmd.Request(g_sos, addr) != S_OK)
             {
-                ExtOut("Unable to read module %p\n", (ULONG64)addr);
+                ExtOut("Unable to read module %p\n", SOS_PTR(addr));
             }
             else
             {
index 44c0688..162580d 100644 (file)
@@ -295,8 +295,8 @@ DECLARE_API(HistStats)
                 {
                     if (Iter->Root == innerIter->Root)
                     {
-                        ExtOut ("Root %p promoted multiple times in gc %d\n", 
-                            (ULONG64) Iter->Root, 
+                        ExtOut ("Root %p promoted multiple times in gc %d\n",
+                            SOS_PTR(Iter->Root),
                             GCCount);
                         bErrorFound = TRUE;
                     }
@@ -317,8 +317,8 @@ DECLARE_API(HistStats)
                 {
                     if (Iter->Root == innerIter->Root)
                     {
-                        ExtOut ("Root %p relocated multiple times in gc %d\n", 
-                            (ULONG64) Iter->Root, 
+                        ExtOut ("Root %p relocated multiple times in gc %d\n",
+                            SOS_PTR(Iter->Root),
                             GCCount);
                         bErrorFound = TRUE;
                     }
@@ -417,8 +417,8 @@ DECLARE_API(HistRoot)
             bBoringPeople = false;
             
             ExtOut ("%8d %p %p %9s ", GCCount,
-                (ULONG64) pRelocRec->NewValue, 
-                (ULONG64) pRelocRec->methodTable,
+                SOS_PTR(pRelocRec->NewValue),
+                SOS_PTR(pRelocRec->methodTable),
                 pPromoteRec ? "yes" : "no");
             if (pPromoteRec != NULL)
             {
@@ -499,10 +499,10 @@ DECLARE_API(HistObjFind)
             if (pPtr->Value  == curAddress)
             {
                 bBoringPeople = false;
-                ExtOut ("%8d %p ", GCCount, (ULONG64) curAddress);
-                ExtOut ("Promotion for root %p (MT = %p)\n", 
-                    (ULONG64) pPtr->Root, 
-                    (ULONG64) pPtr->methodTable);
+                ExtOut ("%8d %p ", GCCount, SOS_PTR(curAddress));
+                ExtOut ("Promotion for root %p (MT = %p)\n",
+                    SOS_PTR(pPtr->Root),
+                    SOS_PTR(pPtr->methodTable));
             }
             pPtr = pPtr->next;
         }
@@ -512,12 +512,12 @@ DECLARE_API(HistObjFind)
         {
             if (pReloc->NewValue == curAddress ||
                 pReloc->PrevValue == curAddress)
-            {              
+            {
                 bBoringPeople = false;
-                ExtOut ("%8d %p ", GCCount, (ULONG64) curAddress);
-                ExtOut ("Relocation %s for root %p\n", 
+                ExtOut ("%8d %p ", GCCount, SOS_PTR(curAddress));
+                ExtOut ("Relocation %s for root %p\n",
                     (pReloc->NewValue == curAddress) ? "NEWVALUE" : "PREVVALUE",
-                    (ULONG64) pReloc->Root);
+                    SOS_PTR(pReloc->Root));
             }
             pReloc = pReloc->next;
         }
@@ -571,7 +571,7 @@ DECLARE_API(HistObj)
         
         UINT GCCount = (UINT) g_records[i].GCCount;
 
-        ExtOut ("%8d %p ", GCCount, (ULONG64) curAddress);
+        ExtOut ("%8d %p ", GCCount, SOS_PTR(curAddress));
 
         RelocRecord *pReloc = g_records[i].RelocList;
         size_t candidateCurAddress = curAddress;
@@ -580,7 +580,7 @@ DECLARE_API(HistObj)
         {
             if (pReloc->NewValue == curAddress)
             {
-                ExtOut ("%p, ", (ULONG64) pReloc->Root);
+                ExtOut ("%p, ", SOS_PTR(pReloc->Root));
                 if (bFirstReloc)
                 {
                     candidateCurAddress = pReloc->PrevValue;
index 446ace4..663457d 100644 (file)
@@ -452,12 +452,12 @@ void GCRootImpl::ReportOnePath(DWORD thread, const SOSStackRefData &stackRef, Ro
         if (stackRef.SourceType == SOS_StackSourceIP)
         {
             WString methodName = MethodNameFromIP(stackRef.Source);
-            ExtOut("    %p %p %S\n", stackRef.StackPointer, stackRef.Source, methodName.c_str());
+            ExtOut("    %p %p %S\n", SOS_PTR(stackRef.StackPointer), SOS_PTR(stackRef.Source), methodName.c_str());
         }
         else
         {
             WString frameName = GetFrameFromAddress(TO_TADDR(stackRef.Source));
-            ExtOut("    %p %S\n", stackRef.Source, frameName.c_str());
+            ExtOut("    %p %S\n", SOS_PTR(stackRef.Source), frameName.c_str());
         }
     }
     
@@ -525,8 +525,8 @@ int GCRootImpl::PrintRootsInOlderGen()
             return 0;
         }
 
-        ExtDbgOut("internal_root_array = %#p\n", analyzeData.internal_root_array);
-        ExtDbgOut("internal_root_array_index = %#p\n", analyzeData.internal_root_array_index);
+        ExtDbgOut("internal_root_array = %#p\n", SOS_PTR(analyzeData.internal_root_array));
+        ExtDbgOut("internal_root_array_index = %#p\n", SOS_PTR(analyzeData.internal_root_array_index));
         
         TADDR start = TO_TADDR(analyzeData.internal_root_array);
         TADDR stop = TO_TADDR(analyzeData.internal_root_array + sizeof(TADDR) * (size_t)analyzeData.internal_root_array_index);
@@ -567,8 +567,8 @@ int GCRootImpl::PrintRootsInOlderGen()
                 continue;
             }
 
-            ExtDbgOut("internal_root_array = %#p\n", analyzeData.internal_root_array);
-            ExtDbgOut("internal_root_array_index = %#p\n", analyzeData.internal_root_array_index);
+            ExtDbgOut("internal_root_array = %#p\n", SOS_PTR(analyzeData.internal_root_array));
+            ExtDbgOut("internal_root_array_index = %#p\n", SOS_PTR(analyzeData.internal_root_array_index));
             
             TADDR start = TO_TADDR(analyzeData.internal_root_array);
             TADDR stop = TO_TADDR(analyzeData.internal_root_array + sizeof(TADDR) * (size_t)analyzeData.internal_root_array_index);
@@ -1639,7 +1639,7 @@ BOOL FindSegment(const DacpGcHeapDetails &heap, DacpHeapSegmentData &seg, CLRDAT
     // Request the inital segment.
     if (seg.Request(g_sos, dwAddrSeg, heap) != S_OK)
     {
-        ExtOut("Error requesting heap segment %p.\n", (ULONG64)dwAddrSeg);
+        ExtOut("Error requesting heap segment %p.\n", SOS_PTR(dwAddrSeg));
         return FALSE;
     }
 
@@ -1656,7 +1656,7 @@ BOOL FindSegment(const DacpGcHeapDetails &heap, DacpHeapSegmentData &seg, CLRDAT
 
         if (seg.Request(g_sos, dwAddrSeg, heap) != S_OK)
         {
-            ExtOut("Error requesting heap segment %p.\n", (ULONG64)dwAddrSeg);
+            ExtOut("Error requesting heap segment %p.\n", SOS_PTR(dwAddrSeg));
             return FALSE;
         }
     }
@@ -2339,7 +2339,7 @@ bool sos::ObjectIterator::VerifyObjectMembers(char *reason, size_t count) const
                          (GetSizeEfficient(dwAddr1, dwAddrMethTable, FALSE, s, bPointers) == FALSE)) 
                     {
                         BuildError(reason, count, "object %s: bad member %p at %p", DMLObject(objAddr),
-                               (size_t)dwAddr1, (size_t)(objAddr+(size_t)parm-objAddr));
+                               SOS_PTR(dwAddr1), SOS_PTR(objAddr+(size_t)parm-objAddr));
 
                         return false;
                     }
@@ -2347,7 +2347,7 @@ bool sos::ObjectIterator::VerifyObjectMembers(char *reason, size_t count) const
                     if (IsMTForFreeObj(dwAddrMethTable))
                     {
                         sos::Throw<HeapCorruption>("object %s contains free object %p at %p", DMLObject(objAddr),
-                               (ULONG64)dwAddr1, (ULONG64)(objAddr+(size_t)parm-objAddr));
+                               SOS_PTR(dwAddr1), SOS_PTR(objAddr+(size_t)parm-objAddr));
                     }
                
                     // verify card table
@@ -2356,7 +2356,7 @@ bool sos::ObjectIterator::VerifyObjectMembers(char *reason, size_t count) const
                     {
                         BuildError(reason, count, "Object %s: %s missing card_table entry for %p",
                                 DMLObject(objAddr), (dwChild == dwAddr1)? "" : " maybe",
-                               (size_t)(objAddr+(size_t)parm-objAddr));
+                                SOS_PTR(objAddr+(size_t)parm-objAddr));
 
                         return false;
                     }
@@ -2414,8 +2414,8 @@ bool sos::ObjectIterator::VerifyObjectMembers(char *reason, size_t count) const
                              if (FAILED(GetMTOfObject(dwAddr1, &dwAddrMethTable)) ||
                                   (GetSizeEfficient(dwAddr1, dwAddrMethTable, FALSE, s, bPointers) == FALSE)) 
                              {
-                                 BuildError(reason, count, "Object %s: Bad member %p at %p.\n", DMLObject(objAddr), 
-                                         (size_t)dwAddr1, (size_t)(objAddr+(size_t)parm-objAddr));
+                                 BuildError(reason, count, "Object %s: Bad member %p at %p.\n", DMLObject(objAddr),
+                                         SOS_PTR(dwAddr1), SOS_PTR(objAddr+(size_t)parm-objAddr));
 
                                  return false;
                              }
@@ -2423,7 +2423,7 @@ bool sos::ObjectIterator::VerifyObjectMembers(char *reason, size_t count) const
                              if (IsMTForFreeObj(dwAddrMethTable))
                              {
                                  BuildError(reason, count, "Object %s contains free object %p at %p.", DMLObject(objAddr),
-                                        (size_t)dwAddr1, (size_t)(objAddr+(size_t)parm-objAddr));
+                                        SOS_PTR(dwAddr1), SOS_PTR(objAddr+(size_t)parm-objAddr));
                                  return false;
                              }
 
@@ -2433,7 +2433,7 @@ bool sos::ObjectIterator::VerifyObjectMembers(char *reason, size_t count) const
                              {
                                  BuildError(reason, count, "Object %s:%s missing card_table entry for %p",
                                         DMLObject(objAddr), (dwChild == dwAddr1) ? "" : " maybe",
-                                        (size_t)(objAddr+(size_t)parm-objAddr));
+                                        SOS_PTR(objAddr+(size_t)parm-objAddr));
 
                                  return false;
                              }
index 347aa39..71d364d 100644 (file)
@@ -272,7 +272,7 @@ HRESULT DecodeILFromAddress(IMetaDataImport *pImport, TADDR ilAddr)
         return Status;
     }
 
-    ExtOut("ilAddr = %p\n", (ULONG64) ilAddr);
+    ExtOut("ilAddr = %p\n", SOS_PTR(ilAddr));
 
     // Read the memory into a local buffer
     ArrayHolder<BYTE> pArray = new BYTE[Size];
@@ -493,13 +493,13 @@ void DisassembleToken(DacpObjectData& tokenArray,
     case mdtSignature:
     case mdtTypeRef:
         {
-            printf ("%x (%p)", token, (ULONG64) GetObj(tokenArray, RidFromToken(token)));
+            printf ("%x (%p)", token, SOS_PTR(GetObj(tokenArray, RidFromToken(token))));
         }
         break;
 
     case mdtFieldDef:
         {
-            printf ("%x (%p)", token, (ULONG64) GetObj(tokenArray, RidFromToken(token)));
+            printf ("%x (%p)", token, SOS_PTR(GetObj(tokenArray, RidFromToken(token))));
         }
         break;
 
@@ -523,7 +523,7 @@ void DisassembleToken(DacpObjectData& tokenArray,
 
     case mdtMemberRef:
         {
-            printf ("%x (%p)", token, (ULONG64) GetObj(tokenArray, RidFromToken(token)));
+            printf ("%x (%p)", token, SOS_PTR(GetObj(tokenArray, RidFromToken(token))));
         }
         break;
     case mdtString:
index 976ffe1..597855b 100644 (file)
@@ -865,7 +865,7 @@ DECLARE_API(DumpIL)
         DacpMethodDescData MethodDescData;
         if (MethodDescData.Request(g_sos, TO_CDADDR(dwStartAddr)) != S_OK)
         {
-            ExtOut("%p is not a MethodDesc\n", (ULONG64)dwStartAddr);
+            ExtOut("%p is not a MethodDesc\n", SOS_PTR(dwStartAddr));
             return Status;
         }
 
@@ -874,7 +874,7 @@ DECLARE_API(DumpIL)
             dwDynamicMethodObj = TO_TADDR(MethodDescData.managedDynamicMethodObject);
             if (dwDynamicMethodObj == NULL)
             {
-                ExtOut("Unable to print IL for DynamicMethodDesc %p\n", (ULONG64) dwDynamicMethodObj);
+                ExtOut("Unable to print IL for DynamicMethodDesc %p\n", SOS_PTR(dwDynamicMethodObj));
                 return Status;
             }
         }
@@ -1679,7 +1679,7 @@ HRESULT PrintPermissionSet (TADDR p_PermSet)
         return S_FALSE;
     }
 
-    ExtOut("PermissionSet object: %p\n", (ULONG64)p_PermSet);
+    ExtOut("PermissionSet object: %p\n", SOS_PTR(p_PermSet));
     
     // Print basic info
 
@@ -2732,7 +2732,7 @@ DECLARE_API(PrintException)
 
             if (Status != S_OK)
             {
-                ExtOut("Error retrieving nested exception info %p\n", (ULONG64)currentNested);
+                ExtOut("Error retrieving nested exception info %p\n", SOS_PTR(currentNested));
                 return Status;
             }
 
@@ -3371,7 +3371,7 @@ DECLARE_API(EEHeap)
                     return Status;
                 }
                 ExtOut("------------------------------\n");
-                ExtOut("Heap %d (%p)\n", n, (ULONG64)heapAddrs[n]);
+                ExtOut("Heap %d (%p)\n", n, SOS_PTR(heapAddrs[n]));
                 DWORD_PTR heapSize = 0;
                 GCHeapInfo (heapDetails, heapSize);
                 totalSize += heapSize;
@@ -4012,7 +4012,7 @@ private:
             {
                 DMLOut("%s %s %8d", DMLObject(itr->GetAddress()), DMLDumpHeapMT(itr->GetMT()), itr->GetSize());
                 ExtOut(" ThinLock owner %x (%p) Recursive %x\n", lockInfo.ThreadId,
-                                        (ULONG64)lockInfo.ThreadPtr, lockInfo.Recursion);
+                                        SOS_PTR(lockInfo.ThreadPtr), lockInfo.Recursion);
 
                 count++;
             }
@@ -4360,7 +4360,7 @@ DECLARE_API(VerifyObj)
     if (FAILED(GetMTOfObject(taddrObj, &taddrMT)) ||
         !GetSizeEfficient(taddrObj, taddrMT, FALSE, objSize, bContainsPointers))
     {
-        ExtOut("object %#p does not have valid method table\n", (ULONG64)taddrObj);
+        ExtOut("object %#p does not have valid method table\n", SOS_PTR(taddrObj));
         goto Exit;
     }
 
@@ -4376,7 +4376,7 @@ DECLARE_API(VerifyObj)
 Exit:
     if (bValid)
     {
-        ExtOut("object %#p is a valid object\n", (ULONG64) taddrObj);
+        ExtOut("object %#p is a valid object\n", SOS_PTR(taddrObj));
     }
 
     return Status;
@@ -4437,7 +4437,7 @@ DECLARE_API(ListNearObj)
     DacpGcHeapDetails *heap = g_snapshot.GetHeap(taddrArg);
     if (heap == NULL)
     {
-        ExtOut("Address %p does not lie in the managed heap\n", (ULONG64) taddrObj);
+        ExtOut("Address %p does not lie in the managed heap\n", SOS_PTR(taddrObj));
         return Status;
     }
 
@@ -4448,7 +4448,7 @@ DECLARE_API(ListNearObj)
     if (!GCObjInHeap(taddrObj, *heap, trngSeg, gen, allocCtx, bLarge))
     {
         ExtOut("Failed to find the segment of the managed heap where the object %p resides\n", 
-            (ULONG64) taddrObj);
+            SOS_PTR(taddrObj));
         return Status;
     }
 
@@ -4552,8 +4552,8 @@ DECLARE_API(ListNearObj)
     if (bCur)
         LNODisplayOutput(W("Before: "), curMT, taddrCur, curSize);
     else
-        ExtOut("Before: couldn't find any object between %#p and %#p\n", 
-            (ULONG64)trngSeg.start, (ULONG64)taddrArg);
+        ExtOut("Before: couldn't find any object between %#p and %#p\n",
+            SOS_PTR(trngSeg.start), SOS_PTR(taddrArg));
 
     if (bObj)
         LNODisplayOutput(W("Current:"), objMT, taddrObj, objSize);
@@ -4561,8 +4561,8 @@ DECLARE_API(ListNearObj)
     if (bNxt)
         LNODisplayOutput(W("After:  "), nxtMT, taddrNxt, nxtSize);
     else
-        ExtOut("After:  couldn't find any object between %#p and %#p\n", 
-            (ULONG64)taddrArg, (ULONG64)trngSeg.end);
+        ExtOut("After:  couldn't find any object between %#p and %#p\n",
+            SOS_PTR(taddrArg), SOS_PTR(trngSeg.end));
 
     if (bCur && bNxt && 
         (((taddrCur+curSize == taddrObj) && (taddrObj+objSize == taddrNxt)) || (taddrCur+curSize == taddrNxt)))
@@ -5250,7 +5250,7 @@ DECLARE_API(DumpModule)
     DacpModuleData module;
     if ((Status=module.Request(g_sos, TO_CDADDR(p_ModuleAddr)))!=S_OK)
     {
-        ExtOut("Fail to fill Module %p\n", (ULONG64) p_ModuleAddr);
+        ExtOut("Fail to fill Module %p\n", SOS_PTR(p_ModuleAddr));
         return Status;
     }
     
@@ -5269,17 +5269,17 @@ DECLARE_API(DumpModule)
     
     DMLOut("Assembly:   %s\n", DMLAssembly(module.Assembly));
 
-    ExtOut("LoaderHeap:              %p\n", (ULONG64)module.pLookupTableHeap);
-    ExtOut("TypeDefToMethodTableMap: %p\n", (ULONG64)module.TypeDefToMethodTableMap);
-    ExtOut("TypeRefToMethodTableMap: %p\n", (ULONG64)module.TypeRefToMethodTableMap);
-    ExtOut("MethodDefToDescMap:      %p\n", (ULONG64)module.MethodDefToDescMap);
-    ExtOut("FieldDefToDescMap:       %p\n", (ULONG64)module.FieldDefToDescMap);
-    ExtOut("MemberRefToDescMap:      %p\n", (ULONG64)module.MemberRefToDescMap);
-    ExtOut("FileReferencesMap:       %p\n", (ULONG64)module.FileReferencesMap);
-    ExtOut("AssemblyReferencesMap:   %p\n", (ULONG64)module.ManifestModuleReferencesMap);
+    ExtOut("LoaderHeap:              %p\n", SOS_PTR(module.pLookupTableHeap));
+    ExtOut("TypeDefToMethodTableMap: %p\n", SOS_PTR(module.TypeDefToMethodTableMap));
+    ExtOut("TypeRefToMethodTableMap: %p\n", SOS_PTR(module.TypeRefToMethodTableMap));
+    ExtOut("MethodDefToDescMap:      %p\n", SOS_PTR(module.MethodDefToDescMap));
+    ExtOut("FieldDefToDescMap:       %p\n", SOS_PTR(module.FieldDefToDescMap));
+    ExtOut("MemberRefToDescMap:      %p\n", SOS_PTR(module.MemberRefToDescMap));
+    ExtOut("FileReferencesMap:       %p\n", SOS_PTR(module.FileReferencesMap));
+    ExtOut("AssemblyReferencesMap:   %p\n", SOS_PTR(module.ManifestModuleReferencesMap));
 
     if (module.ilBase && module.metadataStart)
-        ExtOut("MetaData start address:  %p (%d bytes)\n", (ULONG64)module.metadataStart, module.metadataSize);
+        ExtOut("MetaData start address:  %p (%d bytes)\n", SOS_PTR(module.metadataStart), module.metadataSize);
 
     if (bMethodTables)
     {
@@ -5407,7 +5407,7 @@ DECLARE_API(DumpDomain)
 
         if ((Status=appDomain.Request(g_sos, pArray[n])) != S_OK)
         {
-            ExtOut("Failed to get appdomain %p, error %lx\n", (ULONG64)pArray[n], Status);
+            ExtOut("Failed to get appdomain %p, error %lx\n", SOS_PTR(pArray[n]), Status);
             return Status;
         }
 
@@ -7284,7 +7284,7 @@ DECLARE_API(bpmd)
                     {
                         continue;
                     }
-                    ExtOut("MethodDesc = %p\n", (ULONG64) pMDs[i]);
+                    ExtOut("MethodDesc = %p\n", SOS_PTR(pMDs[i]));
                 }
             }
 
@@ -7316,10 +7316,10 @@ DECLARE_API(bpmd)
         INIT_API_DAC();
 
         DacpMethodDescData MethodDescData;
-        ExtOut("MethodDesc = %p\n", (ULONG64) pMD);
+        ExtOut("MethodDesc = %p\n", SOS_PTR(pMD));
         if (MethodDescData.Request(g_sos, TO_CDADDR(pMD)) != S_OK)
         {
-            ExtOut("%p is not a valid MethodDesc\n", (ULONG64)pMD);
+            ExtOut("%p is not a valid MethodDesc\n", SOS_PTR(pMD));
             return Status;
         }
         
@@ -7361,7 +7361,7 @@ DECLARE_API(bpmd)
             // Must issue a pending breakpoint.
             if (g_sos->GetMethodDescName(pMD, mdNameLen, FunctionName, NULL) != S_OK)
             {
-                ExtOut("Unable to get method name for MethodDesc %p\n", (ULONG64)pMD);
+                ExtOut("Unable to get method name for MethodDesc %p\n", SOS_PTR(pMD));
                 return Status;
             }
 
@@ -7451,10 +7451,10 @@ DECLARE_API(ThreadPool)
             }
 
             if (workRequestData.Function == threadpool.AsyncTimerCallbackCompletionFPtr)
-                ExtOut ("    AsyncTimerCallbackCompletion TimerInfo@%p\n", (ULONG64)workRequestData.Context);
+                ExtOut ("    AsyncTimerCallbackCompletion TimerInfo@%p\n", SOS_PTR(workRequestData.Context));
             else
-                ExtOut ("    Unknown Function: %p  Context: %p\n", (ULONG64)workRequestData.Function,
-                    (ULONG64)workRequestData.Context);
+                ExtOut ("    Unknown Function: %p  Context: %p\n", SOS_PTR(workRequestData.Function),
+                    SOS_PTR(workRequestData.Context));
 
             workRequestPtr = workRequestData.NextWorkRequest;
         }
@@ -7564,7 +7564,7 @@ DECLARE_API(FindAppDomain)
     
     if ((p_Object == 0) || !sos::IsObject(p_Object))
     {
-        ExtOut("%p is not a valid object\n", (ULONG64) p_Object);
+        ExtOut("%p is not a valid object\n", SOS_PTR(p_Object));
         return Status;
     }
     
@@ -7596,7 +7596,7 @@ DECLARE_API(FindAppDomain)
             if ((domain.Request(g_sos, appDomain) != S_OK) ||
                 (g_sos->GetAppDomainName(appDomain,mdNameLen,g_mdName, NULL)!=S_OK))
             {
-                ExtOut("Error getting AppDomain %p.\n", (ULONG64) appDomain);
+                ExtOut("Error getting AppDomain %p.\n", SOS_PTR(appDomain));
                 return Status;
             }
 
@@ -7661,7 +7661,7 @@ DECLARE_API(COMState)
         g_ExtSystem->SetCurrentThreadId(ids[i]);
         CLRDATA_ADDRESS cdaTeb;
         g_ExtSystem->GetCurrentThreadTeb(&cdaTeb);
-        ExtOut("%3d %4x %p", ids[i], sysIds[i], CDA_TO_UL64(cdaTeb));
+        ExtOut("%3d %4x %p", ids[i], sysIds[i], SOS_PTR(CDA_TO_UL64(cdaTeb)));
         // Apartment state
         TADDR OleTlsDataAddr;
         if (SafeReadMemory(TO_TADDR(cdaTeb) + offsetof(TEB,ReservedForOle),
@@ -7707,10 +7707,10 @@ DECLARE_API(COMState)
                 if (SafeReadMemory(OleTlsDataAddr+offsetof(SOleTlsData,pCurrentCtx),
                                    &Context,
                                    sizeof(Context), NULL)) {
-                    ExtOut(" %p", (ULONG64)Context);
+                    ExtOut(" %p", SOS_PTR(Context));
                 }
                 else
-                    ExtOut(" %p", (ULONG64)0);
+                    ExtOut(" %p", SOS_PTR(0));
 
             }
             else
@@ -7844,7 +7844,7 @@ DECLARE_API(EHInfo)
     DacpMethodDescData MD;
     if ((tmpAddr == 0) || (MD.Request(g_sos, TO_CDADDR(tmpAddr)) != S_OK))
     {
-        ExtOut("%p is not a MethodDesc\n", (ULONG64)tmpAddr);
+        ExtOut("%p is not a MethodDesc\n", SOS_PTR(tmpAddr));
         return Status;
     }
 
@@ -7925,7 +7925,7 @@ DECLARE_API(GCInfo)
     DacpMethodDescData MD;
     if ((tmpAddr == 0) || (MD.Request(g_sos, TO_CDADDR(tmpAddr)) != S_OK))
     {
-        ExtOut("%p is not a valid MethodDesc\n", (ULONG64)taStartAddr);
+        ExtOut("%p is not a valid MethodDesc\n", SOS_PTR(taStartAddr));
         return Status;
     }
 
@@ -7977,7 +7977,7 @@ DECLARE_API(GCInfo)
 
     taGCInfoAddr = TO_TADDR(codeHeaderData.GCInfo);
 
-    ExtOut("GC info %p\n", (ULONG64)taGCInfoAddr);
+    ExtOut("GC info %p\n", SOS_PTR(taGCInfoAddr));
 
     // assume that GC encoding table is never more than
     // 40 + methodSize * 2
@@ -7999,7 +7999,7 @@ DECLARE_API(GCInfo)
     // We avoid using move here, because we do not want to return
     if (!SafeReadMemory(taGCInfoAddr, table, tableSize, NULL))
     {
-        ExtOut("Could not read memory %p\n", (ULONG64)taGCInfoAddr);
+        ExtOut("Could not read memory %p\n", SOS_PTR(taGCInfoAddr));
         return Status;
     }
 
@@ -8247,12 +8247,12 @@ DECLARE_API(u)
     if (codeHeaderData.ColdRegionStart != NULL)
     {
         ExtOut("Begin %p, size %x. Cold region begin %p, size %x\n",
-            (ULONG64)codeHeaderData.MethodStart, codeHeaderData.HotRegionSize,
-            (ULONG64)codeHeaderData.ColdRegionStart, codeHeaderData.ColdRegionSize);
+            SOS_PTR(codeHeaderData.MethodStart), codeHeaderData.HotRegionSize,
+            SOS_PTR(codeHeaderData.ColdRegionStart), codeHeaderData.ColdRegionSize);
     }
     else
     {
-        ExtOut("Begin %p, size %x\n", (ULONG64)codeHeaderData.MethodStart, codeHeaderData.MethodSize);    
+        ExtOut("Begin %p, size %x\n", SOS_PTR(codeHeaderData.MethodStart), codeHeaderData.MethodSize);
     }
 
 #if !defined(FEATURE_PAL)
@@ -8294,7 +8294,7 @@ DECLARE_API(u)
         // We avoid using move here, because we do not want to return
         if (!SafeReadMemory(TO_TADDR(codeHeaderData.GCInfo), gcEncodingInfo.table, tableSize, NULL))
         {
-            ExtOut("Could not read memory %p\n", (ULONG64)codeHeaderData.GCInfo);
+            ExtOut("Could not read memory %p\n", SOS_PTR(codeHeaderData.GCInfo));
             return Status;
         }
 
@@ -9639,8 +9639,8 @@ DECLARE_API(GCWhere)
         if(FAILED(GetMTOfObject(taddrObj, &taddrMT)) ||
            !GetSizeEfficient(taddrObj, taddrMT, FALSE, size, bContainsPointers))
         {
-            ExtWarn("Couldn't get size for object %#p: possible heap corruption.\n", 
-                taddrObj);
+            ExtWarn("Couldn't get size for object %#p: possible heap corruption.\n",
+                SOS_PTR(taddrObj));
         }
     }
 
@@ -9657,7 +9657,7 @@ DECLARE_API(GCWhere)
         {
             ExtOut("Address   " WIN64_8SPACES " Gen   Heap   segment   " WIN64_8SPACES " begin     " WIN64_8SPACES " allocated  " WIN64_8SPACES " size\n");
             ExtOut("%p   %d     %2d     %p   %p   %p    0x%x(%d)\n",
-                (ULONG64)taddrObj, gen, 0, (ULONG64)trngSeg.segAddr, (ULONG64)trngSeg.start, (ULONG64)trngSeg.end, size, size);
+                SOS_PTR(taddrObj), gen, 0, SOS_PTR(trngSeg.segAddr), SOS_PTR(trngSeg.start), SOS_PTR(trngSeg.end), size, size);
             bFound = TRUE;
         }
     }
@@ -9698,7 +9698,7 @@ DECLARE_API(GCWhere)
             {
                 ExtOut("Address " WIN64_8SPACES " Gen Heap segment " WIN64_8SPACES " begin   " WIN64_8SPACES " allocated" WIN64_8SPACES " size\n");
                 ExtOut("%p   %d     %2d     %p   %p   %p    0x%x(%d)\n",
-                    (ULONG64)taddrObj, gen, n, (ULONG64)trngSeg.segAddr, (ULONG64)trngSeg.start, (ULONG64)trngSeg.end, size, size);
+                    SOS_PTR(taddrObj), gen, n, SOS_PTR(trngSeg.segAddr), SOS_PTR(trngSeg.start), SOS_PTR(trngSeg.end), size, size);
                 bFound = TRUE;
                 break;
             }
@@ -9707,7 +9707,7 @@ DECLARE_API(GCWhere)
 
     if (!bFound)
     {
-        ExtOut("Address %#p not found in the managed heap.\n", (ULONG64)taddrObj);
+        ExtOut("Address %#p not found in the managed heap.\n", SOS_PTR(taddrObj));
     }
 
     return Status;
@@ -9800,7 +9800,7 @@ DECLARE_API(FindRoots)
 
         if (g_snapshot.GetHeap(taObj) == NULL)
         {
-            ExtOut("Address %#p is not in the managed heap.\n", (ULONG64) taObj);
+            ExtOut("Address %#p is not in the managed heap.\n", SOS_PTR(taObj));
             return Status;
         }
 
@@ -9808,7 +9808,7 @@ DECLARE_API(FindRoots)
         if (ogen > CNotification::GetCondemnedGen())
         {
             DMLOut("Object %s will survive this collection:\n\tgen(%#p) = %d > %d = condemned generation.\n",
-                DMLObject(taObj), (ULONG64)taObj, ogen, CNotification::GetCondemnedGen());
+                DMLObject(taObj), SOS_PTR(taObj), ogen, CNotification::GetCondemnedGen());
             return Status;
         }
 
@@ -10663,7 +10663,7 @@ DECLARE_API(GCHandleLeaks)
     ExtOut("Found %d handles:\n",iFinal);
     for (i=1;i<=iFinal;i++)
     {
-        ExtOut("%p\t",(ULONG64)array[i-1]);
+        ExtOut("%p\t", SOS_PTR(array[i-1]));
         if ((i % 4) == 0)
             ExtOut("\n");
     }
@@ -10721,14 +10721,14 @@ DECLARE_API(GCHandleLeaks)
             {
                 if (IsInterrupt())
                 {
-                    ExtOut("Quitting at %p due to user abort\n",(ULONG64)memIter);
+                    ExtOut("Quitting at %p due to user abort\n", SOS_PTR(memIter));
                     bAbort = TRUE;
                     break;
                 }
 
                 if ((memIter % 0x10000000)==0x0)
                 {
-                    ExtOut("Searching %p...\n",(ULONG64)memIter);
+                    ExtOut("Searching %p...\n", SOS_PTR(memIter));
                 }
                 
                 ULONG size = 0;
@@ -10750,11 +10750,11 @@ DECLARE_API(GCHandleLeaks)
                             {
                                 if (stressLog.IsInStressLog (addrInDebugee))
                                 {
-                                    ExtOut("Found %p in stress log at location %p, reference not counted\n", (ULONG64)value, addrInDebugee);
+                                    ExtOut("Found %p in stress log at location %p, reference not counted\n", SOS_PTR(value), addrInDebugee);
                                 }
                                 else
                                 {
-                                    ExtOut("Found %p at location %p\n",(ULONG64)value, addrInDebugee);
+                                    ExtOut("Found %p at location %p\n", SOS_PTR(value), addrInDebugee);
                                     array[i] |= 0x1;
                                 }
                             }
@@ -10765,7 +10765,7 @@ DECLARE_API(GCHandleLeaks)
                 {
                     if (size > 0)
                     {
-                        ExtOut("only read %x bytes at %p\n",size,(ULONG64)memIter);
+                        ExtOut("only read %x bytes at %p\n", size, SOS_PTR(memIter));
                     }
                 }
             }
@@ -10780,7 +10780,7 @@ DECLARE_API(GCHandleLeaks)
         if ((array[i] & 0x1) == 0)
         {
             numNotFound++;
-            // ExtOut("WARNING: %p not found\n",(ULONG64)array[i]);
+            // ExtOut("WARNING: %p not found\n", SOS_PTR(array[i]));
         }
     }
 
@@ -10801,11 +10801,11 @@ DECLARE_API(GCHandleLeaks)
         for (i=0;i<iFinal;i++)
         {
             if ((array[i] & 0x1) == 0)
-            {             
+            {
                 numPrinted++;
-                ExtOut("%p\t",(ULONG64)array[i]);
+                ExtOut("%p\t", SOS_PTR(array[i]));
                 if ((numPrinted % 4) == 0)
-                    ExtOut("\n");            
+                    ExtOut("\n");
             }
         }   
         ExtOut("\n");
@@ -12369,7 +12369,7 @@ private:
                     }
                     else
                     {
-                        ExtOut("(0x%p) ", CDA_TO_UL64(addr));
+                        ExtOut("(0x%p) ", SOS_PTR(CDA_TO_UL64(addr)));
                     }
                     fPrintedLocation = TRUE;
                 }
@@ -12409,7 +12409,7 @@ private:
                     if (outVar)
                         DMLOut("0x%s\n", DMLObject(outVar));
                     else
-                        ExtOut("0x%p\n", (ULONG64)outVar);
+                        ExtOut("0x%p\n", SOS_PTR(outVar));
                 }
                 
             }
@@ -12462,7 +12462,7 @@ private:
                     }
                     else
                     {
-                        ExtOut("0x%p ", CDA_TO_UL64(addr));
+                        ExtOut("0x%p ", SOS_PTR(CDA_TO_UL64(addr)));
                     }
                 }
 
@@ -12503,7 +12503,7 @@ private:
                     if (outVar)
                         DMLOut("0x%s\n", DMLObject(outVar));
                     else
-                        ExtOut("0x%p\n", (ULONG64)outVar);
+                        ExtOut("0x%p\n", SOS_PTR(outVar));
                 }
             }
             else
@@ -12856,14 +12856,14 @@ DECLARE_API(SaveModule)
     }
     else
     {
-        ExtOut ("%p is not a Module or base address\n", (ULONG64)moduleAddr);
+        ExtOut ("%p is not a Module or base address\n", SOS_PTR(moduleAddr));
         return Status;
     }
 
     MEMORY_BASIC_INFORMATION64 mbi;
     if (FAILED(g_ExtData2->QueryVirtual(TO_CDADDR(dllBase), &mbi)))
     {
-        ExtOut("Failed to retrieve information about segment %p", (ULONG64)dllBase);
+        ExtOut("Failed to retrieve information about segment %p", SOS_PTR(dllBase));
         return Status;
     }
 
@@ -13849,7 +13849,7 @@ DECLARE_API(VerifyStackTrace)
             return Status;
         }
 
-        ExtOut("_EFN_GetManagedExcepStack(%P, wszStr, sizeof(wszStr)) returned:\n", (ULONG64) taExc);
+        ExtOut("_EFN_GetManagedExcepStack(%P, wszStr, sizeof(wszStr)) returned:\n", SOS_PTR(taExc));
         ExtOut("%S\n", wszStr);
 
         if (ImplementEFNGetManagedExcepStack((ULONG64)NULL, wszStr, cchStr) != S_OK)
@@ -13993,9 +13993,9 @@ DECLARE_API(VerifyStackTrace)
         }
         for (size_t j=0; j < contextLength; j++)
         {
-            ExtOut("%p %p %p\n", (ULONG64) pSimple[j].FrameOffset,
-                    (ULONG64) pSimple[j].StackOffset,
-                    (ULONG64) pSimple[j].InstructionOffset);
+            ExtOut("%p %p %p\n", SOS_PTR(pSimple[j].FrameOffset),
+                    SOS_PTR(pSimple[j].StackOffset),
+                    SOS_PTR(pSimple[j].InstructionOffset));
         }
         delete [] pSimple;
         delete[] wszBuffer;
index f2aefa0..e070898 100644 (file)
 #define INITGUID
 #include "guiddef.h"
 
+#ifdef FEATURE_PAL
+#define SOS_PTR(x) (size_t)(x)
+#else // FEATURE_PAL
+#define SOS_PTR(x) (unsigned __int64)(x)
+#endif // FEATURE_PAL else
+
 #include "exts.h"
 
 //Alignment constant for allocation
 #define plug_skew           SIZEOF_OBJHEADER
 #define min_obj_size        (sizeof(BYTE*)+plug_skew+sizeof(size_t))
 
-#ifdef FEATURE_PAL
-#define SOS_PTR(x) (size_t)(x)
-#else // FEATURE_PAL
-#define SOS_PTR(x) (unsigned __int64)(x)
-#endif // FEATURE_PAL else
-
 extern BOOL CallStatus;
 
 
index b902aa1..e3fac08 100644 (file)
@@ -2113,9 +2113,9 @@ HRESULT FileNameForModule (DacpModuleData *pModule, __out_ecount (MAX_LONGPATH)
 
 void AssemblyInfo(DacpAssemblyData *pAssembly)
 {
-    ExtOut("ClassLoader:        %p\n", (ULONG64)pAssembly->ClassLoader);
+    ExtOut("ClassLoader:        %p\n", SOS_PTR(pAssembly->ClassLoader));
     if ((ULONG64)pAssembly->AssemblySecDesc != NULL)
-        ExtOut("SecurityDescriptor: %p\n", (ULONG64)pAssembly->AssemblySecDesc);
+        ExtOut("SecurityDescriptor: %p\n", SOS_PTR(pAssembly->AssemblySecDesc));
     ExtOut("  Module Name\n");
     
     ArrayHolder<CLRDATA_ADDRESS> Modules = new CLRDATA_ADDRESS[pAssembly->ModuleCount];
@@ -2194,12 +2194,12 @@ const char *GetStageText(DacpAppDomainDataStage stage)
 \**********************************************************************/
 void DomainInfo (DacpAppDomainData *pDomain)
 {
-    ExtOut("LowFrequencyHeap:   %p\n", (ULONG64)pDomain->pLowFrequencyHeap);
-    ExtOut("HighFrequencyHeap:  %p\n", (ULONG64)pDomain->pHighFrequencyHeap);
-    ExtOut("StubHeap:           %p\n", (ULONG64)pDomain->pStubHeap);
+    ExtOut("LowFrequencyHeap:   %p\n", SOS_PTR(pDomain->pLowFrequencyHeap));
+    ExtOut("HighFrequencyHeap:  %p\n", SOS_PTR(pDomain->pHighFrequencyHeap));
+    ExtOut("StubHeap:           %p\n", SOS_PTR(pDomain->pStubHeap));
     ExtOut("Stage:              %s\n", GetStageText(pDomain->appDomainStage));
     if ((ULONG64)pDomain->AppSecDesc != NULL)
-        ExtOut("SecurityDescriptor: %p\n", (ULONG64)pDomain->AppSecDesc);
+        ExtOut("SecurityDescriptor: %p\n", SOS_PTR(pDomain->AppSecDesc));
     ExtOut("Name:               ");
 
     if (g_sos->GetAppDomainName(pDomain->AppDomainPtr, mdNameLen, g_mdName, NULL)!=S_OK)
@@ -2274,7 +2274,7 @@ BOOL NameForMD_s (DWORD_PTR pMD, __out_ecount (capacity_mdName) WCHAR *mdName, s
     //
     if (!IsMiniDumpFile() && MethodDescData.Request(g_sos,StartAddr) != S_OK)
     {
-        ExtOut("%p is not a MethodDesc\n", (ULONG64)StartAddr);
+        ExtOut("%p is not a MethodDesc\n", SOS_PTR(StartAddr));
         return FALSE;
     }
 
index 230660f..1e319bf 100644 (file)
@@ -692,7 +692,7 @@ namespace Output
             {
                 if (mFormat == Formats::Default || mFormat == Formats::Pointer)
                 {
-                    ExtOut("%p", (__int64)mValue);
+                    ExtOut("%p", SOS_PTR(mValue));
                 }
                 else
                 {
index 329abb0..e7e5701 100644 (file)
@@ -695,9 +695,9 @@ Return Value:
 
         ExtOut(
             "%p-%p %p  %-13s %-13s %-8s %-8s\n",
-            (ULONG64) memInfo.BaseAddress,
-            (ULONG64)((ULONG_PTR)memInfo.BaseAddress + memInfo.RegionSize - 1),
-            (ULONG64)memInfo.RegionSize,
+            SOS_PTR(memInfo.BaseAddress),
+            SOS_PTR(((ULONG_PTR)memInfo.BaseAddress + memInfo.RegionSize - 1)),
+            SOS_PTR(memInfo.RegionSize),
             VmProtectToString( memInfo.AllocationProtect, aprotectStr, _countof(aprotectStr) ),
             VmProtectToString( memInfo.Protect, protectStr, _countof(protectStr)  ),
             VmStateToString( memInfo.State, stateStr, _countof(stateStr) ),
index 55d0147..70f698f 100644 (file)
@@ -50,7 +50,9 @@ BOOL IsCompilationProcess();
 #include "clrprivbindercoreclr.h"
 #include "clrprivbinderassemblyloadcontext.h"
 // Helper function in the VM, invoked by the Binder, to invoke the host assembly resolver
-extern HRESULT RuntimeInvokeHostAssemblyResolver(INT_PTR pManagedAssemblyLoadContextToBindWithin, IAssemblyName *pIAssemblyName, ICLRPrivAssembly **ppLoadedAssembly);
+extern HRESULT RuntimeInvokeHostAssemblyResolver(INT_PTR pManagedAssemblyLoadContextToBindWithin, 
+                                                IAssemblyName *pIAssemblyName, CLRPrivBinderCoreCLR *pTPABinder,
+                                                BINDER_SPACE::AssemblyName *pAssemblyName, ICLRPrivAssembly **ppLoadedAssembly);
 
 // Helper to check if we have a host assembly resolver set
 extern BOOL RuntimeCanUseAppPathAssemblyResolver(DWORD adid);
@@ -1814,6 +1816,7 @@ namespace BINDER_SPACE
 HRESULT AssemblyBinder::BindUsingHostAssemblyResolver (/* in */ INT_PTR pManagedAssemblyLoadContextToBindWithin,
                                                        /* in */ AssemblyName       *pAssemblyName,
                                                       /* in */ IAssemblyName      *pIAssemblyName,
+                                                      /* in */ CLRPrivBinderCoreCLR *pTPABinder,
                                                       /* out */ Assembly           **ppAssembly)
 {
     HRESULT hr = E_FAIL;
@@ -1821,9 +1824,10 @@ HRESULT AssemblyBinder::BindUsingHostAssemblyResolver (/* in */ INT_PTR pManaged
     
     _ASSERTE(pManagedAssemblyLoadContextToBindWithin != NULL);
     
-    // Call into the VM to use the HostAssemblyResolver and load the assembly
+    // RuntimeInvokeHostAssemblyResolver will perform steps 2-4 of CLRPrivBinderAssemblyLoadContext::BindAssemblyByName.
     ICLRPrivAssembly *pLoadedAssembly = NULL;
-    hr = RuntimeInvokeHostAssemblyResolver(pManagedAssemblyLoadContextToBindWithin, pIAssemblyName, &pLoadedAssembly);
+    hr = RuntimeInvokeHostAssemblyResolver(pManagedAssemblyLoadContextToBindWithin, pIAssemblyName, 
+                                           pTPABinder, pAssemblyName, &pLoadedAssembly);
     if (SUCCEEDED(hr))
     {
         _ASSERTE(pLoadedAssembly != NULL);
index 57f4ee7..8f3a3ee 100644 (file)
@@ -61,14 +61,19 @@ HRESULT CLRPrivBinderAssemblyLoadContext::BindAssemblyByName(IAssemblyName     *
         SAFE_NEW(pAssemblyName, AssemblyName);
         IF_FAIL_GO(pAssemblyName->Init(pIAssemblyName));
         
-        // Check if the assembly is in the TPA list or not. Don't search app paths when using the TPA binder because the actual
-        // binder is using a host assembly resolver.
-        hr = m_pTPABinder->BindAssemblyByNameWorker(pAssemblyName, &pCoreCLRFoundAssembly, true /* excludeAppPaths */);
-        if (hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND))
+        // When LoadContext needs to resolve an assembly reference, it will go through the following lookup order:
+        //
+        // 1) Lookup the assembly within the LoadContext itself. If assembly is found, use it.
+        // 2) Invoke the LoadContext's Load method implementation. If assembly is found, use it.
+        // 3) Lookup the assembly within TPABinder. If assembly is found, use it.
+        // 4) Invoke the LoadContext's Resolving event. If assembly is found, use it.
+        // 5) Raise exception.
+        //
+        // This approach enables a LoadContext to override assemblies that have been loaded in TPA context by loading
+        // a different (or even the same!) version.
+        
         {
-            // If we could not find the assembly in the TPA list,
-            // then bind to it in the context of the current binder.
-            // If we find it already loaded, we will return the reference.
+            // Step 1 - Try to find the assembly within the LoadContext.
             hr = BindAssemblyByNameWorker(pAssemblyName, &pCoreCLRFoundAssembly);
             if ((hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)) ||
                 (hr == FUSION_E_APP_DOMAIN_LOCKED) || (hr == FUSION_E_REF_DEF_MISMATCH))
@@ -82,7 +87,8 @@ HRESULT CLRPrivBinderAssemblyLoadContext::BindAssemblyByName(IAssemblyName     *
                 // Thus, if default binder has been overridden, then invoke it in an attempt to perform the binding for it make the call
                 // of what to do next. The host-overridden binder can either fail the bind or return reference to an existing assembly
                 // that has been loaded.
-                hr = AssemblyBinder::BindUsingHostAssemblyResolver(GetManagedAssemblyLoadContext(), pAssemblyName, pIAssemblyName, &pCoreCLRFoundAssembly);
+                //
+                hr = AssemblyBinder::BindUsingHostAssemblyResolver(GetManagedAssemblyLoadContext(), pAssemblyName, pIAssemblyName, m_pTPABinder, &pCoreCLRFoundAssembly);
                 if (SUCCEEDED(hr))
                 {
                     // We maybe returned an assembly that was bound to a different AssemblyLoadContext instance.
@@ -142,41 +148,19 @@ HRESULT CLRPrivBinderAssemblyLoadContext::BindUsingPEImage( /* in */ PEImage *pP
             IF_FAIL_GO(HRESULT_FROM_WIN32(ERROR_BAD_FORMAT));
         }
         
-        // Ensure we are not being asked to bind to a TPA assembly
-        //
-        // Easy out for mscorlib
+        // Disallow attempt to bind to the core library. Aside from that,
+        // the LoadContext can load any assembly (even if it was in a different LoadContext like TPA).
         if (pAssemblyName->IsMscorlib())
         {
             IF_FAIL_GO(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND));
         }
 
+        hr = AssemblyBinder::BindUsingPEImage(&m_appContext, pAssemblyName, pPEImage, PeKind, pIMetaDataAssemblyImport, &pCoreCLRFoundAssembly);
+        if (hr == S_OK)
         {
-            SString& simpleName = pAssemblyName->GetSimpleName();
-            ApplicationContext *pTPAApplicationContext = m_pTPABinder->GetAppContext();
-            SimpleNameToFileNameMap * tpaMap = pTPAApplicationContext->GetTpaList();
-            if (tpaMap->LookupPtr(simpleName.GetUnicode()) != NULL)
-            {
-                // The simple name of the assembly being requested to be bound was found in the TPA list.
-                // Now, perform the actual bind to see if the assembly was really in the TPA assembly or not.
-                // Don't search app paths when using the TPA binder because the actual binder is using a host assembly resolver.
-                hr = m_pTPABinder->BindAssemblyByNameWorker(pAssemblyName, &pCoreCLRFoundAssembly, true /* excludeAppPaths */);
-                if (SUCCEEDED(hr))
-                {
-                    if (pCoreCLRFoundAssembly->GetIsInGAC())
-                    {
-                        // If we were able to bind to a TPA assembly, then fail the load
-                        IF_FAIL_GO(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND));
-                    }
-                }
-            }
-            
-            hr = AssemblyBinder::BindUsingPEImage(&m_appContext, pAssemblyName, pPEImage, PeKind, pIMetaDataAssemblyImport, &pCoreCLRFoundAssembly);
-            if (hr == S_OK)
-            {
-                _ASSERTE(pCoreCLRFoundAssembly != NULL);
-                pCoreCLRFoundAssembly->SetBinder(this);
-                *ppAssembly = pCoreCLRFoundAssembly.Extract();
-            }
+            _ASSERTE(pCoreCLRFoundAssembly != NULL);
+            pCoreCLRFoundAssembly->SetBinder(this);
+            *ppAssembly = pCoreCLRFoundAssembly.Extract();
         }
 Exit:;        
     }
index a2fb1c8..d62af86 100644 (file)
@@ -80,7 +80,8 @@ HRESULT CLRPrivBinderCoreCLR::BindAssemblyByName(IAssemblyName     *pIAssemblyNa
             INT_PTR pManagedAssemblyLoadContext = GetManagedAssemblyLoadContext();
             if (pManagedAssemblyLoadContext != NULL)
             {
-              hr = AssemblyBinder::BindUsingHostAssemblyResolver(pManagedAssemblyLoadContext, pAssemblyName, pIAssemblyName, &pCoreCLRFoundAssembly);
+              hr = AssemblyBinder::BindUsingHostAssemblyResolver(pManagedAssemblyLoadContext, pAssemblyName, pIAssemblyName, 
+              NULL, &pCoreCLRFoundAssembly);
               if (SUCCEEDED(hr))
               {
                   // We maybe returned an assembly that was bound to a different AssemblyLoadContext instance.
index 87d6491..3a1f1e4 100644 (file)
@@ -78,6 +78,7 @@ namespace BINDER_SPACE
         static HRESULT BindUsingHostAssemblyResolver (/* in */ INT_PTR pManagedAssemblyLoadContextToBindWithin,
                                                       /* in */ AssemblyName       *pAssemblyName,
                                                       /* in */ IAssemblyName      *pIAssemblyName,
+                                                      /* in */ CLRPrivBinderCoreCLR *pTPABinder,
                                                       /* out */ Assembly           **ppAssembly);
                                                       
         static HRESULT BindUsingPEImage(/* in */  ApplicationContext *pApplicationContext,
index f125e83..b8245c5 100644 (file)
@@ -4,6 +4,9 @@
   <!-- List the projects that need to be built -->
   <ItemGroup>
     <Project Include="mscorlib\mscorlib.csproj" />
+    <Project Include="mscorlib\ref\mscorlib.csproj" />
+    <Project Include="mscorlib\facade\mscorlib.csproj" />
+    <Project Include="mscorlib\System.Private.CoreLib.csproj" />
   </ItemGroup>
 
   <Import Project="..\dir.targets" />
@@ -12,6 +15,7 @@
 
   <ItemGroup>
     <PDBSToMove Include="$(BinDir)mscorlib.pdb"/>
+    <PDBSToMove Include="$(BinDir)System.Private.CoreLib.pdb"/>
   </ItemGroup>
 
   <PropertyGroup>
@@ -21,7 +25,6 @@
   <Target Name="MovePDB" AfterTargets="Build">
     <Move Condition="Exists($(MscorlibPDBPath))"
         SourceFiles="@(PDBSToMove)"
-        DestinationFolder="$(BinDir)PDB"
-    />
+        DestinationFolder="$(BinDir)PDB" />
   </Target>
 </Project>
\ No newline at end of file
index 3f3b2b7..c98eaf8 100644 (file)
@@ -39,13 +39,15 @@ FCIMPL2(INT32, ArrayNative::GetLowerBound, ArrayBase* array, unsigned int dimens
 
     if (array == NULL)
         FCThrow(kNullReferenceException);
-
-    // What is this an array of?
-    MethodTable *pArrayMT = array->GetMethodTable();
-    DWORD Rank = pArrayMT->GetRank();
-
-    if (dimension >= Rank)
-        FCThrowRes(kIndexOutOfRangeException, W("IndexOutOfRange_ArrayRankIndex"));
+    
+    if (dimension != 0)
+    {
+        // Check the dimension is within our rank
+        unsigned int rank = array->GetRank();
+    
+        if (dimension >= rank)
+            FCThrowRes(kIndexOutOfRangeException, W("IndexOutOfRange_ArrayRankIndex"));
+    }
 
     return array->GetLowerBoundsPtr()[dimension];
 }
@@ -61,13 +63,15 @@ FCIMPL2(INT32, ArrayNative::GetUpperBound, ArrayBase* array, unsigned int dimens
 
     if (array == NULL)
         FCThrow(kNullReferenceException);
-
-    // What is this an array of?
-    MethodTable *pArrayMT = array->GetMethodTable();
-    DWORD Rank = pArrayMT->GetRank();
-
-    if (dimension >= Rank)
-        FCThrowRes(kIndexOutOfRangeException, W("IndexOutOfRange_ArrayRankIndex"));
+    
+    if (dimension != 0)
+    {
+        // Check the dimension is within our rank
+        unsigned int rank = array->GetRank();
+    
+        if (dimension >= rank)
+            FCThrowRes(kIndexOutOfRangeException, W("IndexOutOfRange_ArrayRankIndex"));
+    }
 
     return array->GetBoundsPtr()[dimension] + array->GetLowerBoundsPtr()[dimension] - 1;
 }
@@ -82,9 +86,15 @@ FCIMPL2(INT32, ArrayNative::GetLength, ArrayBase* array, unsigned int dimension)
 
     if (array==NULL)
         FCThrow(kNullReferenceException);
-    unsigned int rank = array->GetRank();
-    if (dimension >= rank)
-        FCThrow(kIndexOutOfRangeException);
+    
+    if (dimension != 0)
+    {
+        // Check the dimension is within our rank
+        unsigned int rank = array->GetRank();
+        if (dimension >= rank)
+            FCThrow(kIndexOutOfRangeException);
+    }
+    
     return array->GetBoundsPtr()[dimension];
 }
 FCIMPLEND
index b769ffe..f752339 100644 (file)
@@ -597,71 +597,6 @@ FCIMPL1(INT32, COMString::Length, StringObject* str) {
 FCIMPLEND
 
 
-/*==================================PadHelper===================================
-**Action:
-**Returns:
-**Arguments:
-**Exceptions:
-==============================================================================*/
-FCIMPL4(Object*, COMString::PadHelper, StringObject* thisRefUNSAFE, INT32 totalWidth, CLR_CHAR paddingChar, CLR_BOOL isRightPadded)
-{
-    FCALL_CONTRACT;
-
-    STRINGREF refRetVal = NULL;
-    STRINGREF thisRef = (STRINGREF) thisRefUNSAFE;
-    HELPER_METHOD_FRAME_BEGIN_RET_1(thisRef);
-
-    WCHAR *thisChars, *padChars;
-    INT32 thisLength;
-
-
-    if (thisRef==NULL) {
-        COMPlusThrow(kNullReferenceException, W("NullReference_This"));
-    }
-
-    thisRef->RefInterpretGetStringValuesDangerousForGC(&thisChars, &thisLength);
-
-    //Don't let them pass in a negative totalWidth
-    if (totalWidth<0) {
-        COMPlusThrowArgumentOutOfRange(W("totalWidth"), W("ArgumentOutOfRange_NeedNonNegNum"));
-    }
-
-    //If the string is longer than the length which they requested, give them
-    //back the old string.
-    if (totalWidth<thisLength) {
-        refRetVal = thisRef;
-        goto lExit;
-    }
-
-    refRetVal = StringObject::NewString(totalWidth);
-
-    // Reget thisChars, since if NewString triggers GC, thisChars may become trash.
-    thisRef->RefInterpretGetStringValuesDangerousForGC(&thisChars, &thisLength);
-    padChars = refRetVal->GetBuffer();
-
-    if (isRightPadded) {
-
-        memcpyNoGCRefs(padChars, thisChars, thisLength * sizeof(WCHAR));
-
-        for (int i=thisLength; i<totalWidth; i++) {
-            padChars[i] = paddingChar;
-        }
-    } else {
-        INT32 startingPos = totalWidth-thisLength;
-        memcpyNoGCRefs(padChars+startingPos, thisChars, thisLength * sizeof(WCHAR));
-
-        for (int i=0; i<startingPos; i++) {
-            padChars[i] = paddingChar;
-        }
-    }
-    _ASSERTE(padChars[totalWidth] == 0);
-
-lExit: ;
-    HELPER_METHOD_FRAME_END();
-    return OBJECTREFToObject(refRetVal);
-}
-FCIMPLEND
-
 // HELPER METHODS
 // 
 // 
index c7e38da..751391e 100644 (file)
@@ -75,8 +75,6 @@ public:
     //
     // Modifiers
     //
-    static FCDECL4(Object*, PadHelper, StringObject* thisRefUNSAFE, INT32 totalWidth, CLR_CHAR paddingChar, CLR_BOOL isRightPadded);
-
     static FCDECL3(Object*, ReplaceString, StringObject* thisRef, StringObject* oldValue, StringObject* newValue);
 
     static FCDECL3(Object*, Insert, StringObject* thisRefUNSAFE, INT32 startIndex, StringObject* valueUNSAFE);
index 3b5c860..1cb564a 100644 (file)
@@ -6,6 +6,8 @@
 #include <assert.h>
 #include <stdint.h>
 #include <string.h>
+#include <stdlib.h>
+#include <locale.h>
 
 #include "locale.hpp"
 
@@ -110,6 +112,41 @@ int32_t FixupLocaleName(UChar* value, int32_t valueLength)
     return i;
 }
 
+bool IsEnvVarSet(const char* name)
+{
+    const char* value = getenv(name);
+
+    return (value != nullptr) && (strcmp("", value) != 0);
+}
+
+// The behavior of uloc_getDefault() on POSIX systems is to query
+// setlocale(LC_MESSAGES) and use that value, unless it is C or
+// POSIX. In that case it tries to read LC_ALL, LC_MESSAGES and LANG
+// and then falls back to en_US_POSIX if none of them are set.
+//
+// en_US_POSIX is a weird locale since the collation rules treat 'a'
+// and 'A' as different letters even when ignoring case. Furthermore
+// it's common for LC_ALL, LC_MESSAGES and LANG to be unset when
+// running under Docker.
+//
+// We'd rather default to invariant in this case. If any of these
+// are set, we'll just call into ICU and let it do whatever
+// normalization it would do.
+const char* DetectDefaultLocaleName()
+{
+    char* loc = setlocale(LC_MESSAGES, nullptr);
+
+    if (loc != nullptr && (strcmp("C", loc) == 0 || strcmp("POSIX", loc) == 0))
+    {
+        if (!IsEnvVarSet("LC_ALL") && !IsEnvVarSet("LC_MESSAGES") && !IsEnvVarSet("LANG"))
+        {
+            return "";
+        }
+    }
+
+    return uloc_getDefault();
+}
+
 extern "C" int32_t GlobalizationNative_GetLocaleName(const UChar* localeName, UChar* value, int32_t valueLength)
 {
     UErrorCode status = U_ZERO_ERROR;
@@ -135,7 +172,7 @@ extern "C" int32_t GlobalizationNative_GetDefaultLocaleName(UChar* value, int32_
     char localeNameBuffer[ULOC_FULLNAME_CAPACITY];
     UErrorCode status = U_ZERO_ERROR;
 
-    const char* defaultLocale = uloc_getDefault();
+    const char* defaultLocale = DetectDefaultLocaleName();
 
     uloc_getBaseName(defaultLocale, localeNameBuffer, ULOC_FULLNAME_CAPACITY, &status);
 
index ed87d86..4845859 100644 (file)
@@ -41,3 +41,12 @@ Replace underscores with hyphens to interop with existing .NET code.
 Returns the length of the string.
 */
 int FixupLocaleName(UChar* value, int32_t valueLength);
+
+/*
+Function:
+DetectDefaultLocaleName
+
+Detect the default locale for the machine, defaulting to Invaraint if
+we can't compute one (different from uloc_getDefault()) would do.
+*/
+const char* DetectDefaultLocaleName();
index 6adb38f..927da67 100644 (file)
@@ -179,7 +179,7 @@ extern "C" int32_t GlobalizationNative_GetLocaleInfoString(
     switch (localeStringData)
     {
         case LocalizedDisplayName:
-            uloc_getDisplayName(locale, uloc_getDefault(), value, valueLength, &status);
+            uloc_getDisplayName(locale, DetectDefaultLocaleName(), value, valueLength, &status);
             break;
         case EnglishDisplayName:
             uloc_getDisplayName(locale, ULOC_ENGLISH, value, valueLength, &status);
@@ -188,7 +188,7 @@ extern "C" int32_t GlobalizationNative_GetLocaleInfoString(
             uloc_getDisplayName(locale, locale, value, valueLength, &status);
             break;
         case LocalizedLanguageName:
-            uloc_getDisplayLanguage(locale, uloc_getDefault(), value, valueLength, &status);
+            uloc_getDisplayLanguage(locale, DetectDefaultLocaleName(), value, valueLength, &status);
             break;
         case EnglishLanguageName:
             uloc_getDisplayLanguage(locale, ULOC_ENGLISH, value, valueLength, &status);
index 29c326d..a3a4543 100644 (file)
@@ -4133,10 +4133,8 @@ void NativeImageDumper::DumpModule( PTR_Module module )
     //file
     //assembly
 
-#if !defined(FEATURE_CORECLR)
     DisplayWriteFieldInt( m_DefaultDllImportSearchPathsAttributeValue,
                           module->m_DefaultDllImportSearchPathsAttributeValue, Module, MODULE );
-#endif // !FEATURE_CORECLR
 
 
     DisplayEndStructure(MODULE); //Module
index 0a765d6..5c2d376 100644 (file)
@@ -47,9 +47,9 @@
 #include <xcordebug.h>
 #include "dacimpl.h"
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#if defined(FEATURE_APPX_BINDER)
 #include <clrprivbinderappx.h>
-#endif // defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX)
+#endif // defined(FEATURE_APPX)
 
 #define STRSAFE_NO_DEPRECATE
 #include <strsafe.h>
index 28321d9..3c4e951 100644 (file)
@@ -267,9 +267,10 @@ public:
 
     HRESULT Register()
     {
-        if (PAL_RegisterForRuntimeStartup(m_processId, RuntimeStartupHandler, this, &m_unregisterToken) != NO_ERROR)
+        DWORD pe = PAL_RegisterForRuntimeStartup(m_processId, RuntimeStartupHandler, this, &m_unregisterToken);
+        if (pe != NO_ERROR)
         {
-            return E_INVALIDARG;
+            return HRESULT_FROM_WIN32(pe);
         }
         return S_OK;
     }
index 74d3f97..3756835 100644 (file)
@@ -32,9 +32,7 @@
 extern ICLRRuntimeInfo *g_pCLRRuntime;
 #endif // !FEATURE_CORECLR && !CROSSGEN_COMPILE
 
-#ifdef FEATURE_HOSTED_BINDER
 #include "clrprivhosting.h"
-#endif
 
 #ifndef FEATURE_CORECLR
 #include "clr/win32.h"
@@ -260,9 +258,7 @@ STDAPI InternalDllGetClassObject(
     if (rclsid == CLSID_CorMetaDataDispenser || rclsid == CLSID_CorMetaDataDispenserRuntime ||
         rclsid == CLSID_CorRuntimeHost || rclsid == CLSID_CLRRuntimeHost ||
         rclsid == CLSID_TypeNameFactory
-#ifdef FEATURE_HOSTED_BINDER
         || rclsid == __uuidof(CLRPrivRuntime)
-#endif
        )
     {
         hr = MetaDataDllGetClassObject(rclsid, riid, ppv);
index deccae8..42f2d80 100644 (file)
@@ -56,13 +56,13 @@ public:
 // Convert 8 bit string to unicode
 static LPCWSTR StringToUnicode(LPCSTR str)
 {
-    int length = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
+    int length = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);
     ASSERTE_ALL_BUILDS(length != 0);
 
     LPWSTR result = new (nothrow) WCHAR[length];
     ASSERTE_ALL_BUILDS(result != NULL);
     
-    length = MultiByteToWideChar(CP_ACP, 0, str, -1, result, length);
+    length = MultiByteToWideChar(CP_UTF8, 0, str, -1, result, length);
     ASSERTE_ALL_BUILDS(length != 0);
 
     return result;
index 16636ae..7077082 100644 (file)
 #endif // __clang__
 #endif // !_MSC_VER
 
+#ifndef SIZE_T_MAX
 #define SIZE_T_MAX ((size_t)-1)
+#endif
+#ifndef SSIZE_T_MAX
 #define SSIZE_T_MAX ((ptrdiff_t)(SIZE_T_MAX / 2))
+#endif
 
 #ifndef _INC_WINDOWS
 // -----------------------------------------------------------------------------------------------------------
@@ -454,7 +458,6 @@ public:
 
     static bool IsCurrentThreadFinalizer();
     static void Wait(DWORD timeout, bool allowReentrantWait = false);
-    static bool WatchDog();
     static void SignalFinalizationDone(bool fFinalizer);
     static void SetFinalizerThread(Thread * pThread);
     static HANDLE GetFinalizerEvent();
index 007b57f..45b958c 100644 (file)
@@ -224,31 +224,35 @@ public:
     static bool GetCurrentProcessAffinityMask(uintptr_t *processMask, uintptr_t *systemMask);
 
     //
-    // Support for acting on memory limit imposed on this process, eg, running in a job object on Windows.
+    // Global memory info
     //
     
-    // If the process's memory is restricted (ie, beyond what's available on the machine), return that limit.
+    // Return the size of the user-mode portion of the virtual address space of this process.
     // Return:
     //  non zero if it has succeeded, 0 if it has failed
-    // Remarks:
-    //  If a process runs with a restricted memory limit, and we are successful at getting 
-    //  that limit, it returns the limit. If there's no limit specified, or there's an error 
-    //  at getting that limit, it returns 0.
-    static uint64_t GetRestrictedPhysicalMemoryLimit();
+    static size_t GetVirtualMemoryLimit();
 
-    // Get the current physical memory this process is using.
+    // Get the physical memory that this process can use.
     // Return:
     //  non zero if it has succeeded, 0 if it has failed
-    static size_t GetCurrentPhysicalMemory();
-    
-    //
-    // Misc
-    //
+    // Remarks:
+    //  If a process runs with a restricted memory limit, it returns the limit. If there's no limit 
+    //  specified, it returns amount of actual physical memory.
+    static uint64_t GetPhysicalMemoryLimit();
 
     // Get global memory status
     // Parameters:
-    //  ms - pointer to the structure that will be filled in with the memory status
-    static void GetMemoryStatus(GCMemoryStatus* ms);
+    //  memory_load - A number between 0 and 100 that specifies the approximate percentage of physical memory 
+    //      that is in use (0 indicates no memory use and 100 indicates full memory use).
+    //  available_physical - The amount of physical memory currently available, in bytes.
+    //  available_page_file - The maximum amount of memory the current process can commit, in bytes.
+    // Remarks:
+    //  Any parameter can be null.
+    static void GetMemoryStatus(uint32_t* memory_load, uint64_t* available_physical, uint64_t* available_page_file);
+
+    //
+    // Misc
+    //
 
     // Flush write buffers of processors that are executing threads of the current process
     static void FlushProcessWriteBuffers();
index ef6ec59..5887dd7 100644 (file)
@@ -14,20 +14,6 @@ struct GCSystemInfo
     uint32_t dwAllocationGranularity;
 };
 
-// An 'abstract' definition of Windows MEMORYSTATUSEX.  In practice, the only difference is the missing struct size
-// field and one field that Windows documents to always be 0.  If additional information is available on other OSes,
-// this information should be surfaced through this structure as additional fields that the GC may optionally depend on.
-struct GCMemoryStatus
-{
-    uint32_t dwMemoryLoad;
-    uint64_t ullTotalPhys;
-    uint64_t ullAvailPhys;
-    uint64_t ullTotalPageFile;
-    uint64_t ullAvailPageFile;
-    uint64_t ullTotalVirtual;
-    uint64_t ullAvailVirtual;
-};
-
 typedef void * HANDLE;
 
 #ifdef PLATFORM_UNIX
index 0ad36aa..904f949 100644 (file)
@@ -2330,8 +2330,6 @@ uint64_t    gc_heap::total_physical_mem;
 
 uint64_t    gc_heap::entry_available_physical_mem;
 
-bool        gc_heap::restricted_physical_memory_p = false;
-
 #ifdef BACKGROUND_GC
 CLREvent    gc_heap::bgc_start_event;
 
@@ -5100,7 +5098,7 @@ void gc_heap::destroy_thread_support ()
     }
 }
 
-#if !defined(FEATURE_REDHAWK) && !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_REDHAWK) && !defined(FEATURE_PAL)
 void set_thread_group_affinity_for_heap(int heap_number, GCThreadAffinity* affinity)
 {
     affinity->Group = GCThreadAffinity::None;
@@ -5114,7 +5112,7 @@ void set_thread_group_affinity_for_heap(int heap_number, GCThreadAffinity* affin
     {
         if (bit_number == gpn)
         {
-            dprintf(3, ("using processor group %d, mask %x%Ix for heap %d\n", gn, mask, heap_number));
+            dprintf(3, ("using processor group %d, mask %Ix for heap %d\n", gn, mask, heap_number));
             affinity->Processor = gpn;
             affinity->Group = gn;
             heap_select::set_cpu_group_for_heap(heap_number, (uint8_t)gn);
@@ -5157,29 +5155,20 @@ void set_thread_affinity_mask_for_heap(int heap_number, GCThreadAffinity* affini
             {
                 if (bit_number == heap_number)
                 {
-                    dprintf (3, ("Using processor %d for heap %d\n", proc_number, heap_number));
+                    dprintf (3, ("Using processor %d for heap %d", proc_number, heap_number));
                     affinity->Processor = proc_number;
                     heap_select::set_proc_no_for_heap(heap_number, proc_number);
                     if (NumaNodeInfo::CanEnableGCNumaAware())
-                    { // have the processor number, find the numa node
-#if !defined(FEATURE_CORESYSTEM)
-                        uint8_t node_no = 0;
-                        if (NumaNodeInfo::GetNumaProcessorNode(proc_number, &node_no))
-                            heap_select::set_numa_node_for_heap(heap_number, node_no);
-#else
-                        uint16_t gn, gpn;
+                    {
                         uint16_t node_no = 0;
-                        CPUGroupInfo::GetGroupForProcessor((uint16_t)heap_number, &gn, &gpn);
-                        
                         PROCESSOR_NUMBER proc_no;
-                        proc_no.Group = gn;
-                        proc_no.Number = (uint8_t)gpn;
+                        proc_no.Group = 0;
+                        proc_no.Number = (uint8_t)proc_number;
                         proc_no.Reserved = 0;
                         if (NumaNodeInfo::GetNumaProcessorNodeEx(&proc_no, &node_no))
                         {
                             heap_select::set_numa_node_for_heap(heap_number, (uint8_t)node_no);
                         }
-#endif
                     }
                     return;
                 }
@@ -5199,7 +5188,7 @@ bool gc_heap::create_gc_thread ()
     affinity.Group = GCThreadAffinity::None;
     affinity.Processor = GCThreadAffinity::None;
 
-#if !defined(FEATURE_REDHAWK) && !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_REDHAWK) && !defined(FEATURE_PAL)
     //We are about to set affinity for GC threads, it is a good place to setup NUMA and
     //CPU groups, because the process mask, processor number, group number are all
     //readyly available.
@@ -5208,7 +5197,7 @@ bool gc_heap::create_gc_thread ()
     else
         set_thread_affinity_mask_for_heap(heap_number, &affinity);
 
-#endif // !FEATURE_REDHAWK && !FEATURE_CORECLR
+#endif // !FEATURE_REDHAWK && !FEATURE_PAL
 
     return GCToOSInterface::CreateThread(gc_thread_stub, this, &affinity);
 }
@@ -7026,11 +7015,9 @@ int gc_heap::grow_brick_card_tables (uint8_t* start,
         {
             //modify the higest address so the span covered
             //is twice the previous one.
-            GCMemoryStatus st;
-            GCToOSInterface::GetMemoryStatus (&st);
-            uint8_t* top = (uint8_t*)0 + Align ((size_t)(st.ullTotalVirtual));
-            // On non-Windows systems, we get only an approximate ullTotalVirtual
-            // value that can possibly be slightly lower than the saved_g_highest_address.
+            uint8_t* top = (uint8_t*)0 + Align (GCToOSInterface::GetVirtualMemoryLimit());
+            // On non-Windows systems, we get only an approximate value that can possibly be
+            // slightly lower than the saved_g_highest_address.
             // In such case, we set the top to the saved_g_highest_address so that the
             // card and brick tables always cover the whole new range.
             if (top < saved_g_highest_address)
@@ -7067,9 +7054,11 @@ int gc_heap::grow_brick_card_tables (uint8_t* start,
                                 (size_t)saved_g_lowest_address,
                                 (size_t)saved_g_highest_address));
 
+        bool write_barrier_updated = false;
         uint32_t virtual_reserve_flags = VirtualReserveFlags::None;
         uint32_t* saved_g_card_table = g_card_table;
         uint32_t* ct = 0;
+        uint32_t* translated_ct = 0;
         short* bt = 0;
 
         size_t cs = size_card_of (saved_g_lowest_address, saved_g_highest_address);
@@ -7189,10 +7178,10 @@ int gc_heap::grow_brick_card_tables (uint8_t* start,
             card_table_mark_array (ct) = NULL;
 #endif //MARK_ARRAY
 
-        g_card_table = translate_card_table (ct);
+        translated_ct = translate_card_table (ct);
 
         dprintf (GC_TABLE_LOG, ("card table: %Ix(translated: %Ix), seg map: %Ix, mark array: %Ix", 
-            (size_t)ct, (size_t)g_card_table, (size_t)seg_mapping_table, (size_t)card_table_mark_array (ct)));
+            (size_t)ct, (size_t)translated_ct, (size_t)seg_mapping_table, (size_t)card_table_mark_array (ct)));
 
 #ifdef BACKGROUND_GC
         if (hp->should_commit_mark_array())
@@ -7209,7 +7198,7 @@ int gc_heap::grow_brick_card_tables (uint8_t* start,
                 goto fail;
             }
 
-            if (!commit_mark_array_new_seg (hp, new_seg, saved_g_lowest_address))
+            if (!commit_mark_array_new_seg (hp, new_seg, translated_ct, saved_g_lowest_address))
             {
                 dprintf (GC_TABLE_LOG, ("failed to commit mark array for the new seg"));
                 set_fgm_result (fgm_commit_table, logging_ma_commit_size, loh_p);
@@ -7222,51 +7211,50 @@ int gc_heap::grow_brick_card_tables (uint8_t* start,
         }
 #endif //BACKGROUND_GC
 
-        {
-            bool write_barrier_updated = false;
 #ifdef FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP
-            if (gc_can_use_concurrent)
-            {
-                // The current design of software write watch requires that the runtime is suspended during resize. Suspending
-                // on resize is preferred because it is a far less frequent operation than GetWriteWatch() / ResetWriteWatch().
-                // Suspending here allows copying dirty state from the old table into the new table, and not have to merge old
-                // table info lazily as done for card tables.
+        if (gc_can_use_concurrent)
+        {
+            // The current design of software write watch requires that the runtime is suspended during resize. Suspending
+            // on resize is preferred because it is a far less frequent operation than GetWriteWatch() / ResetWriteWatch().
+            // Suspending here allows copying dirty state from the old table into the new table, and not have to merge old
+            // table info lazily as done for card tables.
 
-                BOOL is_runtime_suspended = IsSuspendEEThread();
-                if (!is_runtime_suspended)
-                {
-                    suspend_EE();
-                }
+            BOOL is_runtime_suspended = IsSuspendEEThread();
+            if (!is_runtime_suspended)
+            {
+                // Note on points where the runtime is suspended anywhere in this function. Upon an attempt to suspend the
+                // runtime, a different thread may suspend first, causing this thread to block at the point of the suspend call.
+                // So, at any suspend point, externally visible state needs to be consistent, as code that depends on that state
+                // may run while this thread is blocked. This includes updates to g_card_table, g_lowest_address, and
+                // g_highest_address.
+                suspend_EE();
+            }
 
-                SoftwareWriteWatch::SetResizedUntranslatedTable(
-                    mem + sw_ww_table_offset,
-                    saved_g_lowest_address,
-                    saved_g_highest_address);
+            g_card_table = translated_ct;
 
-                // Since the runtime is already suspended, update the write barrier here as well.
-                // This passes a bool telling whether we need to switch to the post
-                // grow version of the write barrier.  This test tells us if the new
-                // segment was allocated at a lower address than the old, requiring
-                // that we start doing an upper bounds check in the write barrier.
-                StompWriteBarrierResize(true, la != saved_g_lowest_address);
-                write_barrier_updated = true;
+            SoftwareWriteWatch::SetResizedUntranslatedTable(
+                mem + sw_ww_table_offset,
+                saved_g_lowest_address,
+                saved_g_highest_address);
 
-                if (!is_runtime_suspended)
-                {
-                    restart_EE();
-                }
-            }
-#endif // FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP
+            // Since the runtime is already suspended, update the write barrier here as well.
+            // This passes a bool telling whether we need to switch to the post
+            // grow version of the write barrier.  This test tells us if the new
+            // segment was allocated at a lower address than the old, requiring
+            // that we start doing an upper bounds check in the write barrier.
+            StompWriteBarrierResize(true, la != saved_g_lowest_address);
+            write_barrier_updated = true;
 
-            if (!write_barrier_updated)
+            if (!is_runtime_suspended)
             {
-                // This passes a bool telling whether we need to switch to the post
-                // grow version of the write barrier.  This test tells us if the new
-                // segment was allocated at a lower address than the old, requiring
-                // that we start doing an upper bounds check in the write barrier.
-                StompWriteBarrierResize(!!IsSuspendEEThread(), la != saved_g_lowest_address);
+                restart_EE();
             }
         }
+        else
+#endif // FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP
+        {
+            g_card_table = translated_ct;
+        }
 
         // We need to make sure that other threads executing checked write barriers
         // will see the g_card_table update before g_lowest/highest_address updates.
@@ -7279,6 +7267,19 @@ int gc_heap::grow_brick_card_tables (uint8_t* start,
         g_lowest_address = saved_g_lowest_address;
         VolatileStore(&g_highest_address, saved_g_highest_address);
 
+        if (!write_barrier_updated)
+        {
+            // This passes a bool telling whether we need to switch to the post
+            // grow version of the write barrier.  This test tells us if the new
+            // segment was allocated at a lower address than the old, requiring
+            // that we start doing an upper bounds check in the write barrier.
+            // This will also suspend the runtime if the write barrier type needs
+            // to be changed, so we are doing this after all global state has
+            // been updated. See the comment above suspend_EE() above for more
+            // info.
+            StompWriteBarrierResize(!!IsSuspendEEThread(), la != saved_g_lowest_address);
+        }
+
         return 0;
         
 fail:
@@ -7286,10 +7287,7 @@ fail:
 
         if (mem)
         {
-            if (g_card_table != saved_g_card_table)
-            {
-                g_card_table = saved_g_card_table; 
-            }
+            assert(g_card_table == saved_g_card_table);
 
             //delete (uint32_t*)((uint8_t*)ct - sizeof(card_table_info));
             if (!GCToOSInterface::VirtualRelease (mem, alloc_size_aligned))
@@ -13172,7 +13170,7 @@ try_again:
                 if ((max_hp == org_hp) && (end < finish))
                 {   
                     start = end; end = finish; 
-                    delta = dd_min_size(dd)/4; //Use the same threshold as tier 1 for now. Tune it later
+                    delta = dd_min_size(dd)/2; // Make it twice as hard to balance to remote nodes on NUMA.
                     goto try_again;
                 }
 
@@ -19044,33 +19042,7 @@ void gc_heap::get_memory_info (uint32_t* memory_load,
                                uint64_t* available_physical,
                                uint64_t* available_page_file)
 {
-    if (restricted_physical_memory_p)
-    {
-        size_t working_set_size = GCToOSInterface::GetCurrentPhysicalMemory();
-        if (working_set_size)
-        {
-            if (memory_load)
-                *memory_load = (uint32_t)((float)working_set_size * 100.0 / (float)total_physical_mem);
-            if (available_physical)
-                *available_physical = total_physical_mem - working_set_size;
-            // Available page file doesn't mean much when physical memory is restricted since
-            // we don't know how much of it is available to this process so we are not going to 
-            // bother to make another OS call for it.
-            if (available_page_file)
-                *available_page_file = 0;
-
-            return;
-        }
-    }
-    
-    GCMemoryStatus ms;
-    GCToOSInterface::GetMemoryStatus(&ms);
-    if (memory_load)
-        *memory_load = ms.dwMemoryLoad;
-    if (available_physical)
-        *available_physical = ms.ullAvailPhys;
-    if (available_page_file)
-        *available_page_file = ms.ullAvailPageFile;
+    GCToOSInterface::GetMemoryStatus(memory_load, available_physical, available_page_file);
 }
 
 void fire_mark_event (int heap_num, int root_type, size_t bytes_marked)
@@ -25269,6 +25241,7 @@ void gc_heap::verify_mark_array_cleared (heap_segment* seg, uint32_t* mark_array
 
 BOOL gc_heap::commit_mark_array_new_seg (gc_heap* hp, 
                                          heap_segment* seg,
+                                         uint32_t* new_card_table,
                                          uint8_t* new_lowest_address)
 {
     UNREFERENCED_PARAMETER(hp); // compiler bug? -- this *is*, indeed, referenced
@@ -25307,18 +25280,23 @@ BOOL gc_heap::commit_mark_array_new_seg (gc_heap* hp,
             return FALSE;
         }
 
-        if (hp->card_table != g_card_table)
+        if (new_card_table == 0)
+        {
+            new_card_table = g_card_table;
+        }
+
+        if (hp->card_table != new_card_table)
         {
             if (new_lowest_address == 0)
             {
                 new_lowest_address = g_lowest_address;
             }
 
-            uint32_t* ct = &g_card_table[card_word (gcard_of (new_lowest_address))];
+            uint32_t* ct = &new_card_table[card_word (gcard_of (new_lowest_address))];
             uint32_t* ma = (uint32_t*)((uint8_t*)card_table_mark_array (ct) - size_mark_array_of (0, new_lowest_address));
 
             dprintf (GC_TABLE_LOG, ("table realloc-ed: %Ix->%Ix, MA: %Ix->%Ix", 
-                                    hp->card_table, g_card_table,
+                                    hp->card_table, new_card_table,
                                     hp->mark_array, ma));
 
             if (!commit_mark_array_by_range (commit_start, commit_end, ma))
@@ -33706,22 +33684,7 @@ HRESULT GCHeap::Initialize ()
     if (hr != S_OK)
         return hr;
 
-    // If there's a physical memory limit set on this process, it needs to be checked very early on, 
-    // before we set various memory info.
-    uint64_t physical_memory_limit = GCToOSInterface::GetRestrictedPhysicalMemoryLimit();
-
-    if (physical_memory_limit)
-        gc_heap::restricted_physical_memory_p = true;
-
-    GCMemoryStatus ms;
-    GCToOSInterface::GetMemoryStatus (&ms);
-    gc_heap::total_physical_mem = ms.ullTotalPhys;
-
-    if (gc_heap::restricted_physical_memory_p)
-    {
-        // A sanity check in case someone set a larger limit than there is actual physical memory.
-        gc_heap::total_physical_mem = min (gc_heap::total_physical_mem, physical_memory_limit);
-    }
+    gc_heap::total_physical_mem = GCToOSInterface::GetPhysicalMemoryLimit();
 
     gc_heap::mem_one_percent = gc_heap::total_physical_mem / 100;
 #ifndef MULTIPLE_HEAPS
@@ -35895,11 +35858,9 @@ size_t GCHeap::GetValidGen0MaxSize(size_t seg_size)
             GCToOSInterface::GetLargestOnDieCacheSize(TRUE),
             GCToOSInterface::GetLogicalCpuCount()));
 
-        GCMemoryStatus ms;
-        GCToOSInterface::GetMemoryStatus (&ms);
         // if the total min GC across heaps will exceed 1/6th of available memory,
         // then reduce the min GC size until it either fits or has been reduced to cache size.
-        while ((gen0size * gc_heap::n_heaps) > (ms.ullAvailPhys / 6))
+        while ((gen0size * gc_heap::n_heaps) > GCToOSInterface::GetPhysicalMemoryLimit() / 6)
         {
             gen0size = gen0size / 2;
             if (gen0size <= trueSize)
index 64f37c5..9f6abe4 100644 (file)
@@ -2652,6 +2652,7 @@ protected:
     PER_HEAP_ISOLATED
     BOOL commit_mark_array_new_seg (gc_heap* hp, 
                                     heap_segment* seg,
+                                    uint32_t* new_card_table = 0,
                                     uint8_t* new_lowest_address = 0);
 
     PER_HEAP_ISOLATED
@@ -2958,9 +2959,6 @@ public:
     uint64_t entry_available_physical_mem;
 
     PER_HEAP_ISOLATED
-    bool restricted_physical_memory_p;
-
-    PER_HEAP_ISOLATED
     size_t last_gc_index;
 
     PER_HEAP_ISOLATED
index 7e6641e..64faa32 100644 (file)
@@ -282,30 +282,38 @@ uint32_t GCToOSInterface::GetCurrentProcessCpuCount()
     return g_SystemInfo.dwNumberOfProcessors;
 }
 
-// If the process's memory is restricted (ie, beyond what's available on the machine), return that limit.
+// Return the size of the user-mode portion of the virtual address space of this process.
 // Return:
 //  non zero if it has succeeded, 0 if it has failed
-// Remarks:
-//  If a process runs with a restricted memory limit, and we are successful at getting 
-//  that limit, it returns the limit. If there's no limit specified, or there's an error 
-//  at getting that limit, it returns 0.
-uint64_t GCToOSInterface::GetRestrictedPhysicalMemoryLimit()
+size_t GCToOSInterface::GetVirtualMemoryLimit()
 {
-    return 0;
+    MEMORYSTATUSEX memStatus;
+
+    memStatus.dwLength = sizeof(MEMORYSTATUSEX);
+    BOOL fRet = GlobalMemoryStatusEx(&memStatus);
+    _ASSERTE(fRet);
+
+    return (size_t)memStatus.ullTotalVirtual;
 }
 
-// Get the current physical memory this process is using.
+// Get the physical memory that this process can use.
 // Return:
 //  non zero if it has succeeded, 0 if it has failed
-size_t GCToOSInterface::GetCurrentPhysicalMemory()
+uint64_t GCToOSInterface::GetPhysicalMemoryLimit()
 {
-    return 0;
+    MEMORYSTATUSEX memStatus;
+
+    memStatus.dwLength = sizeof(MEMORYSTATUSEX);
+    BOOL fRet = GlobalMemoryStatusEx(&memStatus);
+    _ASSERTE(fRet);
+
+    return memStatus.ullTotalPhys;
 }
 
 // Get global memory status
 // Parameters:
 //  ms - pointer to the structure that will be filled in with the memory status
-void GCToOSInterface::GetMemoryStatus(GCMemoryStatus* ms)
+void GCToOSInterface::GetMemoryStatus(uint32_t* memory_load, uint64_t* available_physical, uint64_t* available_page_file)
 {
     CONTRACTL
     {
@@ -321,20 +329,18 @@ void GCToOSInterface::GetMemoryStatus(GCMemoryStatus* ms)
     _ASSERTE (fRet);
 
     // If the machine has more RAM than virtual address limit, let us cap it.
-    // Our GC can never use more than virtual address limit.
+    // The GC can never use more than virtual address limit.
     if (memStatus.ullAvailPhys > memStatus.ullTotalVirtual)
     {
         memStatus.ullAvailPhys = memStatus.ullAvailVirtual;
     }
 
-    // Convert Windows struct to abstract struct
-    ms->dwMemoryLoad              = memStatus.dwMemoryLoad           ;
-    ms->ullTotalPhys              = memStatus.ullTotalPhys           ;
-    ms->ullAvailPhys              = memStatus.ullAvailPhys           ;
-    ms->ullTotalPageFile          = memStatus.ullTotalPageFile       ;
-    ms->ullAvailPageFile          = memStatus.ullAvailPageFile       ;
-    ms->ullTotalVirtual           = memStatus.ullTotalVirtual        ;
-    ms->ullAvailVirtual           = memStatus.ullAvailVirtual        ;
+    if (memory_load != NULL)
+        *memory_load = memStatus.dwMemoryLoad;
+    if (available_physical != NULL)
+        *available_physical = memStatus.ullAvailPhys;
+    if (available_page_file != NULL)
+        *available_page_file = memStatus.ullAvailPageFile;
 }
 
 // Get a high precision performance counter
index fd72821..0b87b3e 100644 (file)
@@ -683,11 +683,15 @@ enum CORCOMPILE_GCREFMAP_TOKENS
 // Tags for fixup blobs
 enum CORCOMPILE_FIXUP_BLOB_KIND
 {
-    ENCODE_NONE                 = 0,
+    ENCODE_NONE                         = 0,
     
-    ENCODE_MODULE_OVERRIDE      = 0x80,             /* When the high bit is set, override of the module immediately follows */
+    ENCODE_MODULE_OVERRIDE              = 0x80,     /* When the high bit is set, override of the module immediately follows */
 
-    ENCODE_TYPE_HANDLE          = 0x10,             /* Type handle */
+    ENCODE_DICTIONARY_LOOKUP_THISOBJ    = 0x07,
+    ENCODE_DICTIONARY_LOOKUP_TYPE       = 0x08,
+    ENCODE_DICTIONARY_LOOKUP_METHOD     = 0x09,
+
+    ENCODE_TYPE_HANDLE                  = 0x10,     /* Type handle */
     ENCODE_METHOD_HANDLE,                           /* Method handle */
     ENCODE_FIELD_HANDLE,                            /* Field handle */
 
@@ -728,7 +732,8 @@ enum CORCOMPILE_FIXUP_BLOB_KIND
 
     ENCODE_DELEGATE_CTOR,
 
-    ENCODE_MODULE_HANDLE      = 0x50,               /* Module token */
+
+    ENCODE_MODULE_HANDLE                = 0x50,     /* Module token */
     ENCODE_STATIC_FIELD_ADDRESS,                    /* For accessing a static field */
     ENCODE_MODULE_ID_FOR_STATICS,                   /* For accessing static fields */
     ENCODE_MODULE_ID_FOR_GENERIC_STATICS,           /* For accessing static fields */
index 4706e2f..762cdf1 100644 (file)
     <DataFile Include="$(IntermediateOutputDirectory)\mscoree.h" />
     <DataFile Include="$(IntermediateOutputDirectory)\\corsym.h" />
     <DataFile Include="$(ClrLibPath)\$(OutputName).lib" />
-    <DataFile Include="$(Clrbase)\src\inc\CLRPrivAppXHosting.idl" Condition="'$(FeatureHostedBinder)'=='true'" />
-    <DataFile Include="$(IntermediateOutputDirectory)\CLRPrivAppXHosting.h" Condition="'$(FeatureHostedBinder)'=='true'" />
-    <DataFile Include="$(Clrbase)\src\inc\CLRPrivHosting.idl" Condition="'$(FeatureHostedBinder)'=='true'" />
-    <DataFile Include="$(IntermediateOutputDirectory)\CLRPrivHosting.h" Condition="'$(FeatureHostedBinder)'=='true'" />
-    <DataFile Include="$(Clrbase)\src\inc\CLRPrivBinding.idl" Condition="'$(FeatureHostedBinder)'=='true'" />
-    <DataFile Include="$(IntermediateOutputDirectory)\CLRPrivBinding.h" Condition="'$(FeatureHostedBinder)'=='true'" />
-    <DataFile Include="$(Clrbase)\src\inc\CLRPrivRuntimeBinders.idl" Condition="'$(FeatureHostedBinder)'=='true'" />
-    <DataFile Include="$(IntermediateOutputDirectory)\CLRPrivRuntimeBinders.h" Condition="'$(FeatureHostedBinder)'=='true'" />
+    <DataFile Include="$(Clrbase)\src\inc\CLRPrivAppXHosting.idl" />
+    <DataFile Include="$(IntermediateOutputDirectory)\CLRPrivAppXHosting.h" />
+    <DataFile Include="$(Clrbase)\src\inc\CLRPrivHosting.idl" />
+    <DataFile Include="$(IntermediateOutputDirectory)\CLRPrivHosting.h" />
+    <DataFile Include="$(Clrbase)\src\inc\CLRPrivBinding.idl" />
+    <DataFile Include="$(IntermediateOutputDirectory)\CLRPrivBinding.h" />
+    <DataFile Include="$(Clrbase)\src\inc\CLRPrivRuntimeBinders.idl" />
+    <DataFile Include="$(IntermediateOutputDirectory)\CLRPrivRuntimeBinders.h" />
   </ItemGroup>
 
   <ItemGroup Condition="'$(FeatureCoreClr)' == 'true'">
       <Visibility>Inter</Visibility>
       <FileType>Include</FileType>
     </PublishPartGenerated>
-    <PublishPartGenerated Include="$(Clrbase)\src\inc\CLRPrivAppXHosting.idl" Condition="'$(FeatureHostedBinder)'=='true'"
+    <PublishPartGenerated Include="$(Clrbase)\src\inc\CLRPrivAppXHosting.idl"> 
       <Visibility>Inter</Visibility>
       <FileType>Include</FileType>
     </PublishPartGenerated>
-    <PublishPartGenerated Include="$(IntermediateOutputDirectory)\CLRPrivAppXHosting.h" Condition="'$(FeatureHostedBinder)'=='true'"
+    <PublishPartGenerated Include="$(IntermediateOutputDirectory)\CLRPrivAppXHosting.h"> 
       <Visibility>Inter</Visibility>
       <FileType>Include</FileType>
     </PublishPartGenerated>
       <Visibility>Intra</Visibility>
       <FileType>Include</FileType>
     </PublishPartGenerated>
-    <PublishPartGenerated Include="$(IntermediateOutputDirectory)\ClrPrivHosting.h" Condition="'$(FeatureHostedBinder)'=='true'">
+    <PublishPartGenerated Include="$(IntermediateOutputDirectory)\ClrPrivHosting.h">
       <Visibility>Intra</Visibility>
       <FileType>Include</FileType>
     </PublishPartGenerated>
-    <PublishPartGenerated Include="$(IntermediateOutputDirectory)\CLRPrivRuntimeBinders.h" Condition="'$(FeatureHostedBinder)'=='true'">
+    <PublishPartGenerated Include="$(IntermediateOutputDirectory)\CLRPrivRuntimeBinders.h">
       <Visibility>Intra</Visibility>
       <FileType>Include</FileType>
     </PublishPartGenerated>
index 144826f..1479b0b 100644 (file)
     <CCompile Include="$(IntermediateOutputDirectory)/fusionpriv_i.c" />
     <CCompile Include="$(IntermediateOutputDirectory)/mscorsvc_i.c" Condition="'$(FeaturePrejit)'=='true'" />
     <CCompile Include="$(IntermediateOutputDirectory)/tlbimpexp_i.c" />
-    <CCompile Include="$(IntermediateOutputDirectory)/CLRPrivAppXHosting_i.c" Condition="'$(FeatureHostedBinder)'=='true'" />
-    <CCompile Include="$(IntermediateOutputDirectory)/CLRPrivBinding_i.c" Condition="'$(FeatureHostedBinder)'=='true'" />
-    <CCompile Include="$(IntermediateOutputDirectory)/CLRPrivHosting_i.c" Condition="'$(FeatureHostedBinder)'=='true'" />
-    <CCompile Include="$(IntermediateOutputDirectory)/CLRPrivRuntimeBinders_i.c" Condition="'$(FeatureHostedBinder)'=='true'" />
+    <CCompile Include="$(IntermediateOutputDirectory)/CLRPrivAppXHosting_i.c" />
+    <CCompile Include="$(IntermediateOutputDirectory)/CLRPrivBinding_i.c" />
+    <CCompile Include="$(IntermediateOutputDirectory)/CLRPrivHosting_i.c" />
+    <CCompile Include="$(IntermediateOutputDirectory)/CLRPrivRuntimeBinders_i.c" />
   </ItemGroup>
   <ItemGroup>
     <Idl Include="$(Clrbase)\src\inc\metahost.idl" />
     <Idl Include="$(Clrbase)\src\inc\gchost.idl" />
     <Idl Include="$(Clrbase)\src\inc\mscoruef.idl" />
     <Idl Include="$(Clrbase)\src\inc\assemblyusagelog.idl" Condition="'$(FeatureCoreclr)'!='true'" />
-    <Idl Include="$(Clrbase)\src\inc\CLRPrivAppXHosting.idl" Condition="'$(FeatureHostedBinder)'=='true'" />
+    <Idl Include="$(Clrbase)\src\inc\CLRPrivAppXHosting.idl" />
     <Idl Include="$(Clrbase)\src\inc\CLRPrivBinding.idl" />
-    <Idl Include="$(Clrbase)\src\inc\CLRPrivHosting.idl" Condition="'$(FeatureHostedBinder)'=='true'" />
-    <Idl Include="$(Clrbase)\src\inc\CLRPrivRuntimeBinders.idl" Condition="'$(FeatureHostedBinder)'=='true'" />
+    <Idl Include="$(Clrbase)\src\inc\CLRPrivHosting.idl" />
+    <Idl Include="$(Clrbase)\src\inc\CLRPrivRuntimeBinders.idl" />
     <Idl Include="$(ClrBase)\src\inc\corsym.idl">
       <CompileInterface>true</CompileInterface>
       <CompileProxy>false</CompileProxy>
index 071490d..c194def 100644 (file)
@@ -1077,7 +1077,7 @@ typedef enum CorNativeType
 
     NATIVE_TYPE_IINSPECTABLE = 0x2e,
     NATIVE_TYPE_HSTRING     = 0x2f,
-
+    NATIVE_TYPE_LPUTF8STR   = 0x30, // utf-8 string
     NATIVE_TYPE_MAX         = 0x50, // first invalid element type
 } CorNativeType;
 
index 2607c7d..579088c 100644 (file)
@@ -33,9 +33,7 @@
 #endif
 #include "holder.h"
 
-#if defined(FEATURE_HOSTED_BINDER)
 #include "clrprivhosting.h"
-#endif
 
 #ifdef FEATURE_COMINTEROP
 #include "activation.h" // WinRT activation.
@@ -736,10 +734,8 @@ class CorHost2 :
     , public CLRValidator
     , public CorDebuggerInfo
     , public ICLRRuntimeHost
-#endif // FEATURE_CORECLR
-#if defined(FEATURE_HOSTED_BINDER) && !defined(FEATURE_CORECLR)
     , public ICLRPrivRuntime
-#endif
+#endif // FEATURE_CORECLR
     , public CorExecutionManager
 {
     friend struct _DacGlobals;
@@ -859,7 +855,7 @@ public:
 
 #endif // !FEATURE_CORECLR
 
-#if defined(FEATURE_HOSTED_BINDER) && !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_CORECLR)
     /**********************************************************************************
      ** ICLRPrivRuntime Methods
      **********************************************************************************/
@@ -884,7 +880,7 @@ public:
         ICLRPrivBinder * pBinder,
         int * pRetVal);
 
-#endif // FEATURE_HOSTED_BINDER && !FEATURE_CORECLR
+#endif // !FEATURE_CORECLR
 
     static IHostControl *GetHostControl ()
     {
@@ -1082,7 +1078,6 @@ private:
 
 #endif // FEATURE_CORECLR
 
-#if defined(FEATURE_CORECLR) || defined(FEATURE_HOSTED_BINDER)
     // Helpers for both ICLRRuntimeHost2 and ICLRPrivRuntime
     HRESULT _CreateAppDomain(
         LPCWSTR wszFriendlyName,
@@ -1092,7 +1087,7 @@ private:
         int nProperties, 
         LPCWSTR* pPropertyNames, 
         LPCWSTR* pPropertyValues,
-#if defined(FEATURE_HOSTED_BINDER) && !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_CORECLR)
         ICLRPrivBinder* pBinder,
 #endif
         DWORD* pAppDomainID);
@@ -1103,12 +1098,9 @@ private:
         LPCWSTR wszClassName,     
         LPCWSTR wszMethodName,
         INT_PTR* fnPtr);
-#endif // defined(FEATURE_CORECLR) || defined(FEATURE_HOSTED_BINDER)
 
-#ifdef FEATURE_HOSTED_BINDER
     // entrypoint helper to be wrapped in a filter to process unhandled exceptions
     VOID ExecuteMainInner(Assembly* pRootAssembly);
-#endif // FEATURE_HOSTED_BINDER
 
     static LONG  m_RefCount;
 
index 0eca760..6ea69bb 100644 (file)
@@ -231,11 +231,11 @@ TODO: Talk about initializing strutures before use
 #if COR_JIT_EE_VERSION > 460
 
 // Update this one
-SELECTANY const GUID JITEEVersionIdentifier = { /* 57813506-0058-41df-8b1b-e0b68c3a9da3 */
-    0x57813506,
-    0x58,
-    0x41df,
-    { 0x8b, 0x1b, 0xe0, 0xb6, 0x8c, 0x3a, 0x9d, 0xa3 }
+SELECTANY const GUID JITEEVersionIdentifier = { /* 7a6aa61a-78b1-4dfb-9e06-655fb4774d7f */
+    0x7a6aa61a,
+    0x78b1,
+    0x4dfb,
+    { 0x9e, 0x6, 0x65, 0x5f, 0xb4, 0x77, 0x4d, 0x7f }
 };
 
 #else
@@ -432,7 +432,10 @@ enum CorInfoHelpFunc
     CORINFO_HELP_NEWFAST,
     CORINFO_HELP_NEWSFAST,          // allocator for small, non-finalizer, non-array object
     CORINFO_HELP_NEWSFAST_ALIGN8,   // allocator for small, non-finalizer, non-array object, 8 byte aligned
-    CORINFO_HELP_NEW_MDARR,         // multi-dim array helper (with or without lower bounds)
+    CORINFO_HELP_NEW_MDARR,         // multi-dim array helper (with or without lower bounds - dimensions passed in as vararg)
+#if COR_JIT_EE_VERSION > 460
+    CORINFO_HELP_NEW_MDARR_NONVARARG,// multi-dim array helper (with or without lower bounds - dimensions passed in as unmanaged array)
+#endif
     CORINFO_HELP_NEWARR_1_DIRECT,   // helper for any one dimensional array creation
     CORINFO_HELP_NEWARR_1_OBJ,      // optimized 1-D object arrays
     CORINFO_HELP_NEWARR_1_VC,       // optimized 1-D value class arrays
@@ -636,8 +639,8 @@ enum CorInfoHelpFunc
     CORINFO_HELP_READYTORUN_CHKCAST,
     CORINFO_HELP_READYTORUN_STATIC_BASE,
     CORINFO_HELP_READYTORUN_VIRTUAL_FUNC_PTR,
-
 #if COR_JIT_EE_VERSION > 460
+    CORINFO_HELP_READYTORUN_GENERIC_HANDLE,
     CORINFO_HELP_READYTORUN_DELEGATE_CTOR,
 #else
     #define CORINFO_HELP_READYTORUN_DELEGATE_CTOR CORINFO_HELP_EE_PRESTUB
@@ -687,6 +690,9 @@ enum CorInfoHelpFunc
 
     CORINFO_HELP_JIT_PINVOKE_BEGIN, // Transition to preemptive mode before a P/Invoke, frame is the first argument
     CORINFO_HELP_JIT_PINVOKE_END,   // Transition to cooperative mode after a P/Invoke, frame is the first argument
+
+    CORINFO_HELP_JIT_REVERSE_PINVOKE_ENTER, // Transition to cooperative mode in reverse P/Invoke prolog, frame is the first argument
+    CORINFO_HELP_JIT_REVERSE_PINVOKE_EXIT,  // Transition to preemptive mode in reverse P/Invoke epilog, frame is the first argument
 #endif
 
     CORINFO_HELP_COUNT,
@@ -1303,12 +1309,29 @@ enum CORINFO_RUNTIME_LOOKUP_KIND
     CORINFO_LOOKUP_CLASSPARAM,
 };
 
+#if COR_JIT_EE_VERSION > 460
+
+struct CORINFO_LOOKUP_KIND
+{
+    bool                        needsRuntimeLookup;
+    CORINFO_RUNTIME_LOOKUP_KIND runtimeLookupKind;
+
+    // The 'runtimeLookupFlags' field is just for internal VM / ZAP communication, 
+    // not to be used by the JIT.
+    WORD                        runtimeLookupFlags;
+} ;
+
+#else
+
 struct CORINFO_LOOKUP_KIND
 {
     bool                        needsRuntimeLookup;
     CORINFO_RUNTIME_LOOKUP_KIND runtimeLookupKind;
 } ;
 
+#endif
+
+
 // CORINFO_RUNTIME_LOOKUP indicates the details of the runtime lookup
 // operation to be performed.
 //
@@ -1773,7 +1796,7 @@ struct CORINFO_EE_INFO
         unsigned    offsetOfReturnAddress;
     }
     inlinedCallFrameInfo;
-   
+
     // Offsets into the Thread structure
     unsigned    offsetOfThreadFrame;            // offset of the current Frame
     unsigned    offsetOfGCState;                // offset of the preemptive/cooperative state of the Thread
@@ -1789,6 +1812,11 @@ struct CORINFO_EE_INFO
     // Array offsets
     unsigned    offsetOfObjArrayData;
 
+#if COR_JIT_EE_VERSION > 460
+    // Reverse PInvoke offsets
+    unsigned    sizeOfReversePInvokeFrame;
+#endif
+
     CORINFO_OS  osType;
     unsigned    osMajor;
     unsigned    osMinor;
@@ -2394,20 +2422,28 @@ public:
             CORINFO_CLASS_HANDLE        cls
             ) = 0;
 
-    virtual void getReadyToRunHelper(
-            CORINFO_RESOLVED_TOKEN * pResolvedToken,
-            CorInfoHelpFunc          id,
-            CORINFO_CONST_LOOKUP *   pLookup
+#if COR_JIT_EE_VERSION > 460
+    virtual bool getReadyToRunHelper(
+            CORINFO_RESOLVED_TOKEN *        pResolvedToken,
+            CORINFO_LOOKUP_KIND *           pGenericLookupKind,
+            CorInfoHelpFunc                 id,
+            CORINFO_CONST_LOOKUP *          pLookup
             ) = 0;
 
-#if COR_JIT_EE_VERSION > 460
     virtual void getReadyToRunDelegateCtorHelper(
             CORINFO_RESOLVED_TOKEN * pTargetMethod,
             CORINFO_CLASS_HANDLE     delegateType,
             CORINFO_CONST_LOOKUP *   pLookup
             ) = 0;
+#else
+    virtual void getReadyToRunHelper(
+            CORINFO_RESOLVED_TOKEN * pResolvedToken,
+            CorInfoHelpFunc          id,
+            CORINFO_CONST_LOOKUP *   pLookup
+            ) = 0;
 #endif
 
+
     virtual const char* getHelperName(
             CorInfoHelpFunc
             ) = 0;
index 8fbbbdc..8481d9a 100644 (file)
@@ -146,6 +146,7 @@ enum CorJitFlag2
     CORJIT_FLG2_SAMPLING_JIT_BACKGROUND = 0x00000001, // JIT is being invoked as a result of stack sampling for hot methods in the background
 #if COR_JIT_EE_VERSION > 460
     CORJIT_FLG2_USE_PINVOKE_HELPERS     = 0x00000002, // The JIT should use the PINVOKE_{BEGIN,END} helpers instead of emitting inline transitions
+    CORJIT_FLG2_REVERSE_PINVOKE         = 0x00000004, // The JIT should insert REVERSE_PINVOKE_{ENTER,EXIT} helpers into method prolog/epilog
 #endif
 };
 
index 709700a..82fa48c 100644 (file)
@@ -325,9 +325,9 @@ DEFINE_DACVAR(ULONG, HRESULT, dac__g_hrFatalError, ::g_hrFatalError)
 DEFINE_DACVAR(ULONG, DWORD, AssemblyUsageLogManager__s_UsageLogFlags, AssemblyUsageLogManager::s_UsageLogFlags)
 #endif // FEATURE_CORECLR
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#if defined(FEATURE_APPX_BINDER)
 DEFINE_DACVAR(ULONG, PTR_CLRPrivBinderAppX, CLRPrivBinderAppX__s_pSingleton, CLRPrivBinderAppX::s_pSingleton)
-#endif //defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX)
+#endif //defined(FEATURE_APPX)
 
 #ifdef FEATURE_MINIMETADATA_IN_TRIAGEDUMPS
 DEFINE_DACVAR(ULONG, DWORD, dac__g_MiniMetaDataBuffMaxSize, ::g_MiniMetaDataBuffMaxSize)
index 4a915d1..a4d19bb 100644 (file)
@@ -108,7 +108,7 @@ struct AutoExpVisibleValue
         const class AssemblyLocation                        *_asAssemblyLocation;
 #endif //FEATURE_FUSION
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX)
+#if defined(FEATURE_APPX)
         const class AppXBindResultImpl                      *_asAppXBindResultImpl;
 #endif
 
index a6fd8f8..b8521bf 100644 (file)
@@ -79,6 +79,9 @@
     DYNAMICJITHELPER(CORINFO_HELP_NEWSFAST,             JIT_New,    CORINFO_HELP_SIG_REG_ONLY)
     DYNAMICJITHELPER(CORINFO_HELP_NEWSFAST_ALIGN8,      JIT_New,    CORINFO_HELP_SIG_REG_ONLY)
     JITHELPER(CORINFO_HELP_NEW_MDARR,                   JIT_NewMDArr,CORINFO_HELP_SIG_8_VA)
+#if COR_JIT_EE_VERSION > 460
+    JITHELPER(CORINFO_HELP_NEW_MDARR_NONVARARG,         JIT_NewMDArrNonVarArg,CORINFO_HELP_SIG_4_STACK)
+#endif
     JITHELPER(CORINFO_HELP_NEWARR_1_DIRECT,             JIT_NewArr1,CORINFO_HELP_SIG_REG_ONLY)
     DYNAMICJITHELPER(CORINFO_HELP_NEWARR_1_OBJ,         JIT_NewArr1,CORINFO_HELP_SIG_REG_ONLY)
     DYNAMICJITHELPER(CORINFO_HELP_NEWARR_1_VC,          JIT_NewArr1,CORINFO_HELP_SIG_REG_ONLY)
     JITHELPER(CORINFO_HELP_READYTORUN_STATIC_BASE,        NULL,   CORINFO_HELP_SIG_NO_ALIGN_STUB)
     JITHELPER(CORINFO_HELP_READYTORUN_VIRTUAL_FUNC_PTR,   NULL,   CORINFO_HELP_SIG_NO_ALIGN_STUB)
 #if COR_JIT_EE_VERSION > 460
+    JITHELPER(CORINFO_HELP_READYTORUN_GENERIC_HANDLE,     NULL,   CORINFO_HELP_SIG_NO_ALIGN_STUB)
     JITHELPER(CORINFO_HELP_READYTORUN_DELEGATE_CTOR,      NULL,   CORINFO_HELP_SIG_NO_ALIGN_STUB)
 #endif // COR_JIT_EE_VERSION
 
     JITHELPER(CORINFO_HELP_JIT_PINVOKE_BEGIN, NULL, CORINFO_HELP_SIG_UNDEF)
     JITHELPER(CORINFO_HELP_JIT_PINVOKE_END, NULL, CORINFO_HELP_SIG_UNDEF)
 
+    JITHELPER(CORINFO_HELP_JIT_REVERSE_PINVOKE_ENTER, NULL, CORINFO_HELP_SIG_UNDEF)
+    JITHELPER(CORINFO_HELP_JIT_REVERSE_PINVOKE_EXIT, NULL, CORINFO_HELP_SIG_UNDEF)
+
 #endif // COR_JIT_EE_VERSION
 
 #undef JITHELPER
index 7a82ec4..71879cd 100644 (file)
@@ -122,6 +122,10 @@ enum ReadyToRunTypeLayoutFlags
 
 enum ReadyToRunFixupKind
 {
+    READYTORUN_FIXUP_ThisObjDictionaryLookup    = 0x07,
+    READYTORUN_FIXUP_TypeDictionaryLookup       = 0x08,
+    READYTORUN_FIXUP_MethodDictionaryLookup     = 0x09,
+
     READYTORUN_FIXUP_TypeHandle                 = 0x10,
     READYTORUN_FIXUP_MethodHandle               = 0x11,
     READYTORUN_FIXUP_FieldHandle                = 0x12,
@@ -226,6 +230,17 @@ enum ReadyToRunHelper
     READYTORUN_HELPER_Unbox_Nullable            = 0x5B,
     READYTORUN_HELPER_NewMultiDimArr            = 0x5C,
 
+    // Helpers used with generic handle lookup cases
+    READYTORUN_HELPER_NewObject                 = 0x60,
+    READYTORUN_HELPER_NewArray                  = 0x61,
+    READYTORUN_HELPER_CheckCastAny              = 0x62,
+    READYTORUN_HELPER_CheckInstanceAny          = 0x63,
+    READYTORUN_HELPER_GenericGcStaticBase       = 0x64,
+    READYTORUN_HELPER_GenericNonGcStaticBase    = 0x65,
+    READYTORUN_HELPER_GenericGcTlsBase          = 0x66,
+    READYTORUN_HELPER_GenericNonGcTlsBase       = 0x67,
+    READYTORUN_HELPER_VirtualFuncPtr            = 0x68,
+
     // Long mul/div/shift ops
     READYTORUN_HELPER_LMul                      = 0xC0,
     READYTORUN_HELPER_LMulOfv                   = 0xC1,
index 2dcb1a1..c9c4292 100644 (file)
@@ -42,6 +42,18 @@ HELPER(READYTORUN_HELPER_Unbox,                     CORINFO_HELP_UNBOX,
 HELPER(READYTORUN_HELPER_Unbox_Nullable,            CORINFO_HELP_UNBOX_NULLABLE,                    )
 HELPER(READYTORUN_HELPER_NewMultiDimArr,            CORINFO_HELP_NEW_MDARR,                         )
 
+HELPER(READYTORUN_HELPER_NewObject,                 CORINFO_HELP_NEWFAST,                           )
+HELPER(READYTORUN_HELPER_NewArray,                  CORINFO_HELP_NEWARR_1_DIRECT,                   )
+HELPER(READYTORUN_HELPER_CheckCastAny,              CORINFO_HELP_CHKCASTANY,                        )
+HELPER(READYTORUN_HELPER_CheckInstanceAny,          CORINFO_HELP_ISINSTANCEOFANY,                   )
+
+HELPER(READYTORUN_HELPER_GenericGcStaticBase,       CORINFO_HELP_GETGENERICS_GCSTATIC_BASE,         )
+HELPER(READYTORUN_HELPER_GenericNonGcStaticBase,    CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE,      )
+HELPER(READYTORUN_HELPER_GenericGcTlsBase,          CORINFO_HELP_GETGENERICS_GCTHREADSTATIC_BASE,   )
+HELPER(READYTORUN_HELPER_GenericNonGcTlsBase,       CORINFO_HELP_GETGENERICS_NONGCTHREADSTATIC_BASE,)
+
+HELPER(READYTORUN_HELPER_VirtualFuncPtr,            CORINFO_HELP_VIRTUAL_FUNC_PTR,                  )
+
 HELPER(READYTORUN_HELPER_LMul,                      CORINFO_HELP_LMUL,                              )
 HELPER(READYTORUN_HELPER_LMulOfv,                   CORINFO_HELP_LMUL_OVF,                          )
 HELPER(READYTORUN_HELPER_ULMulOvf,                  CORINFO_HELP_ULMUL_OVF,                         )
index fc3af0e..f9d82c5 100644 (file)
@@ -47,15 +47,8 @@ const WCHAR kWatsonName2[] = W("drwtsn32");
 
 #include "random.h"
 
-// Windows CoreSystem has a different naming scheme for some dlls, which we must take account of when doing
-// LoadLibrary and the like.
-#if defined(FEATURE_CORESYSTEM)
-#define WINDOWS_KERNEL32_DLLNAME_A "kernelbase"
-#define WINDOWS_KERNEL32_DLLNAME_W W("kernelbase")
-#elif !defined(FEATURE_CORESYSTEM) || defined(CROSS_COMPILE)
 #define WINDOWS_KERNEL32_DLLNAME_A "kernel32"
 #define WINDOWS_KERNEL32_DLLNAME_W W("kernel32")
-#endif
 
 class StringArrayList;
 
@@ -1544,11 +1537,6 @@ public:
 
 #if !defined(FEATURE_REDHAWK)&& !defined(FEATURE_PAL)
 private:       // apis types
-#if !defined(FEATURE_CORESYSTEM)
-    //GetNumaProcessorNode()
-    typedef BOOL
-    (WINAPI *PGNPN)(UCHAR, PUCHAR);
-#endif
 
     //GetNumaHighestNodeNumber()
     typedef BOOL
@@ -1558,21 +1546,14 @@ private:        // apis types
     (WINAPI *PVAExN)(HANDLE,LPVOID,SIZE_T,DWORD,DWORD,DWORD);
 
     // api pfns and members
-#if !defined(FEATURE_CORESYSTEM)
-    static PGNPN    m_pGetNumaProcessorNode;
-#endif
     static PGNHNN   m_pGetNumaHighestNodeNumber;
     static PVAExN   m_pVirtualAllocExNuma;
 
 public:        // functions
-#if !defined(FEATURE_CORESYSTEM)
-    static BOOL GetNumaProcessorNode(UCHAR proc_no, PUCHAR node_no);
-#endif
 
     static LPVOID VirtualAllocExNuma(HANDLE hProc, LPVOID lpAddr, SIZE_T size,
                                      DWORD allocType, DWORD prot, DWORD node);
 
-#if !defined(FEATURE_CORECLR) || defined(FEATURE_CORESYSTEM)
 private:
     //GetNumaProcessorNodeEx()
     typedef BOOL
@@ -1582,7 +1563,6 @@ private:
 public:
     static BOOL GetNumaProcessorNodeEx(PPROCESSOR_NUMBER proc_no, PUSHORT node_no);
 #endif
-#endif
 };
 
 struct CPU_Group_Info 
@@ -1634,7 +1614,6 @@ private:
     //GetThreadGroupAffinity()
     typedef BOOL
     (WINAPI *PGTGA)(HANDLE, GROUP_AFFINITY *);
-#if !defined(FEATURE_CORESYSTEM) && !defined(FEATURE_CORECLR)
     //GetCurrentProcessorNumberEx()
     typedef void
     (WINAPI *PGCPNEx)(PROCESSOR_NUMBER *);
@@ -1644,16 +1623,12 @@ private:
     //NtQuerySystemInformationEx()
     //typedef int
     //(WINAPI *PNTQSIEx)(SYSTEM_INFORMATION_CLASS, PULONG, ULONG, PVOID, ULONG, PULONG);
-#endif
-
     static PGLPIEx m_pGetLogicalProcessorInformationEx;
     static PSTGA   m_pSetThreadGroupAffinity;
     static PGTGA   m_pGetThreadGroupAffinity;
-#if !defined(FEATURE_CORESYSTEM) && !defined(FEATURE_CORECLR)
     static PGCPNEx m_pGetCurrentProcessorNumberEx;
     static PGST    m_pGetSystemTimes;
     //static PNTQSIEx m_pNtQuerySystemInformationEx;
-#endif
 
 public:
     static BOOL GetLogicalProcessorInformationEx(DWORD relationship,
@@ -1661,12 +1636,10 @@ public:
     static BOOL SetThreadGroupAffinity(HANDLE h,
                    GROUP_AFFINITY *groupAffinity, GROUP_AFFINITY *previousGroupAffinity);
     static BOOL GetThreadGroupAffinity(HANDLE h, GROUP_AFFINITY *groupAffinity);
-#if !defined(FEATURE_CORESYSTEM) && !defined(FEATURE_CORECLR)
     static BOOL GetSystemTimes(FILETIME *idleTime, FILETIME *kernelTime, FILETIME *userTime);
     static void ChooseCPUGroupAffinity(GROUP_AFFINITY *gf);
     static void ClearCPUGroupAffinity(GROUP_AFFINITY *gf);
 #endif
-#endif
 };
 
 int GetCurrentProcessCpuCount();
index ba36486..062c7f3 100644 (file)
@@ -78,7 +78,7 @@ namespace Ro { namespace detail {
     // Debugging aide.  Set breakpoint on _FailedHR 
     //  to see HRESULT propagation.
     // 
-    #ifdef DBG
+    #ifdef DEBUG
     inline HRESULT __declspec(noinline) _FailedHR(HRESULT hr) { static HRESULT _hr = hr; return hr; }
     #else
     inline HRESULT _FailedHR(HRESULT hr) { return hr; }
index d6e69c5..2d7bc65 100644 (file)
@@ -205,27 +205,6 @@ protected :
     static  const char *genInsName(instruction ins);
 #endif // DEBUG
 
-#ifdef LEGACY_BACKEND
-
-    //-------------------------------------------------------------------------
-    //
-    //  If we know that the flags register is set to a value that corresponds
-    //  to the current value of a register or variable, the following values
-    //  record that information.
-    //
-
-    emitLocation        genFlagsEqLoc;
-    regNumber           genFlagsEqReg;
-    unsigned            genFlagsEqVar;
-
-    void                genFlagsEqualToNone ();
-    void                genFlagsEqualToReg  (GenTreePtr tree, regNumber reg);
-    void                genFlagsEqualToVar  (GenTreePtr tree, unsigned  var);
-    bool                genFlagsAreReg      (regNumber reg);
-    bool                genFlagsAreVar      (unsigned  var);
-
-#endif // LEGACY_BACKEND
-
     //-------------------------------------------------------------------------
 
     // JIT-time constants for use in multi-dimensional array code generation.
@@ -460,11 +439,6 @@ protected:
     void                genProfilingLeaveCallback(unsigned helper = CORINFO_HELP_PROF_FCN_LEAVE);
 #endif // PROFILING_SUPPORTED
 
-#if INLINE_NDIRECT
-    regMaskTP           genPInvokeMethodProlog(regMaskTP    initRegs);
-    void                genPInvokeMethodEpilog();    
-#endif // INLINE_NDIRECT
-
     void                genPrologPadForReJit();
 
     void                genEmitCall(int                                                 callType,
@@ -552,17 +526,6 @@ protected:
     //
     //-------------------------------------------------------------------------
 
-#if INLINE_NDIRECT
-
-    regNumber           genPInvokeCallProlog(LclVarDsc *    varDsc,
-                                             int            argSize,
-                                      CORINFO_METHOD_HANDLE methodToken,
-                                             BasicBlock *   returnLabel);
-
-    void                genPInvokeCallEpilog(LclVarDsc *    varDsc,
-                                             regMaskTP      retVal);
-#endif
-
 /*****************************************************************************/
 #ifdef DEBUGGING_SUPPORT
 /*****************************************************************************/
@@ -857,11 +820,7 @@ public :
 
     void                instInit();
 
-#ifdef LEGACY_BACKEND
-    regNumber           genIsEnregisteredIntVariable(GenTreePtr tree);
-#endif // LEGACY_BACKEND
     regNumber           genGetZeroRegister();
-    
 
     void                instGen         (instruction    ins);
 #ifdef _TARGET_XARCH_
@@ -1053,17 +1012,7 @@ public :
                                          unsigned *     indScale,
                                          regNumber *    indReg,
                                          unsigned *     cns);
-#ifdef LEGACY_BACKEND
-    void                sched_AM        (instruction    ins,
-                                         emitAttr       size,
-                                         regNumber      ireg,
-                                         bool           rdst,
-                                         GenTreePtr     tree,
-                                         unsigned       offs,
-                                         bool           cons  = false,
-                                         int            cval  = 0,
-                                         insFlags       flags = INS_FLAGS_DONT_CARE);
-#endif // LEGACY_BACKEND
+
     void                inst_set_SV_var (GenTreePtr     tree);
 
 #ifdef _TARGET_ARM_
index 53b7315..88925c2 100644 (file)
@@ -226,16 +226,13 @@ void                CodeGen::genCodeForBBlist()
         regSet.rsSetRegsModified(RBM_INT_CALLEE_SAVED & ~RBM_FPBASE);
     }
 
-#if INLINE_NDIRECT
     /* If we have any pinvoke calls, we might potentially trash everything */
-    if  (compiler->info.compCallUnmanaged)
+    if (compiler->info.compCallUnmanaged)
     {
         noway_assert(isFramePointerUsed());  // Setup of Pinvoke frame currently requires an EBP style frame
         regSet.rsSetRegsModified(RBM_INT_CALLEE_SAVED & ~RBM_FPBASE);
     }
 
-#endif // INLINE_NDIRECT
-
     genPendingCallLabel = nullptr;
 
     /* Initialize the pointer tracking code */
@@ -1821,7 +1818,7 @@ void CodeGen::genUnspillRegIfNeeded(GenTree *tree)
         }
         else
         {
-            TempDsc* t = regSet.rsUnspillInPlace(unspillTree);
+            TempDsc* t = regSet.rsUnspillInPlace(unspillTree, unspillTree->gtRegNum);
             compiler->tmpRlsTemp(t);
             getEmitter()->emitIns_R_S(ins_Load(unspillTree->gtType),
                             emitActualTypeSize(unspillTree->gtType),
index 06d47ab..8b78390 100644 (file)
@@ -2065,7 +2065,9 @@ void                CodeGen::genCodeForBBlist()
             break;
 
         case BBJ_EHCATCHRET:
-            getEmitter()->emitIns_R_L(INS_adr, EA_4BYTE_DSP_RELOC, block->bbJumpDest, REG_INTRET);
+            // For long address (default): `adrp + add` will be emitted.
+            // For short address (proven later): `adr` will be emitted.
+            getEmitter()->emitIns_R_L(INS_adr, EA_PTRSIZE, block->bbJumpDest, REG_INTRET);
 
             __fallthrough;
 
@@ -2248,10 +2250,17 @@ void                CodeGen::genSetRegToConst(regNumber targetReg, var_types tar
             }
             else
             {
+                // Get a temp integer register to compute long address.
+                regMaskTP addrRegMask = tree->gtRsvdRegs;
+                regNumber addrReg = genRegNumFromMask(addrRegMask);
+                noway_assert(addrReg != REG_NA);
+
                 // We must load the FP constant from the constant pool
                 // Emit a data section constant for the float or double constant.
                 CORINFO_FIELD_HANDLE hnd = emit->emitFltOrDblConst(dblConst);
-                emit->emitIns_R_C(INS_ldr, size, targetReg, hnd, 0);
+                // For long address (default): `adrp + ldr + fmov` will be emitted.
+                // For short address (proven later), `ldr` will be emitted.
+                emit->emitIns_R_C(INS_ldr, size, targetReg, addrReg, hnd, 0);
             }
         }
         break;
@@ -3271,6 +3280,9 @@ CodeGen::genCodeForTreeNode(GenTreePtr treeNode)
     case GT_LABEL:
         genPendingCallLabel = genCreateTempLabel();
         treeNode->gtLabel.gtLabBB = genPendingCallLabel;
+
+        // For long address (default): `adrp + add` will be emitted.
+        // For short address (proven later): `adr` will be emitted.
         emit->emitIns_R_L(INS_adr, EA_PTRSIZE, genPendingCallLabel, targetReg);
         break;
 
@@ -3353,118 +3365,6 @@ CodeGen::genCodeForTreeNode(GenTreePtr treeNode)
     }
 }
 
-
-// Generate code for division (or mod) by power of two
-// or negative powers of two.  (meaning -1 * a power of two, not 2^(-1))
-// Op2 must be a contained integer constant.
-void
-CodeGen::genCodeForPow2Div(GenTreeOp* tree)
-{
-#if 0
-    GenTree *dividend = tree->gtOp.gtOp1;
-    GenTree *divisor  = tree->gtOp.gtOp2;
-    genTreeOps  oper  = tree->OperGet();
-    emitAttr    size  = emitTypeSize(tree);
-    emitter    *emit  = getEmitter();
-    regNumber targetReg  = tree->gtRegNum;
-    var_types targetType = tree->TypeGet();
-
-    bool isSigned = oper == GT_MOD || oper == GT_DIV;
-
-    // precondition: extended dividend is in RDX:RAX
-    // which means it is either all zeros or all ones
-
-    noway_assert(divisor->isContained());
-    GenTreeIntConCommon* divImm = divisor->AsIntConCommon();
-    int64_t imm = divImm->IconValue();
-    ssize_t abs_imm = abs(imm);
-    noway_assert(isPow2(abs_imm));
-    
-
-    if (isSigned)
-    {
-        if (imm == 1)
-        {
-            if (targetReg != REG_RAX)
-                inst_RV_RV(INS_mov, targetReg, REG_RAX, targetType);
-
-            return;
-        }
-
-        if (abs_imm == 2)
-        {
-            if (oper == GT_MOD)
-            {
-                emit->emitIns_R_I(INS_and, size, REG_RAX, 1); // result is 0 or 1
-                // xor with rdx will flip all bits if negative
-                emit->emitIns_R_R(INS_xor, size, REG_RAX, REG_RDX); // 111.11110 or 0
-            }
-            else
-            {
-                assert(oper == GT_DIV);
-                // add 1 if it's negative
-                emit->emitIns_R_R(INS_sub, size, REG_RAX, REG_RDX);
-            }
-        }
-        else
-        {
-            // add imm-1 if negative
-            emit->emitIns_R_I(INS_and, size, REG_RDX, abs_imm - 1);
-            emit->emitIns_R_R(INS_add, size, REG_RAX, REG_RDX);
-        }
-
-        if (oper == GT_DIV)
-        {
-            unsigned shiftAmount = genLog2(unsigned(abs_imm));
-            inst_RV_SH(INS_sar, size, REG_RAX, shiftAmount);
-
-            if (imm < 0)
-            {
-                emit->emitIns_R(INS_neg, size, REG_RAX);
-            }
-        }
-        else
-        {
-            assert(oper == GT_MOD);
-            if (abs_imm > 2)
-            {
-                emit->emitIns_R_I(INS_and, size, REG_RAX, abs_imm - 1);
-            }
-            // RDX contains 'imm-1' if negative
-            emit->emitIns_R_R(INS_sub, size, REG_RAX, REG_RDX);
-        }
-
-        if (targetReg != REG_RAX)
-        {
-            inst_RV_RV(INS_mov, targetReg, REG_RAX, targetType);
-        }
-    }
-    else
-    {
-        assert (imm > 0);
-
-        if (targetReg != dividend->gtRegNum)
-        {
-            inst_RV_RV(INS_mov, targetReg, dividend->gtRegNum, targetType);
-        }
-
-        if (oper == GT_UDIV)
-        {
-            inst_RV_SH(INS_shr, size, targetReg, genLog2(unsigned(imm)));
-        }
-        else 
-        {
-            assert(oper == GT_UMOD);
-
-            emit->emitIns_R_I(INS_and, size, targetReg, imm -1);
-        }
-    }
-#else // !0
-    NYI("genCodeForPow2Div");
-#endif // !0
-}
-
-
 /***********************************************************************************************
  *  Generate code for localloc
  */
@@ -4148,7 +4048,6 @@ void CodeGen::genCodeForCpBlk(GenTreeCpBlk* cpBlkNode)
 void
 CodeGen::genTableBasedSwitch(GenTree* treeNode)
 {
-    NYI("Emit table based switch");
     genConsumeOperands(treeNode->AsOp());
     regNumber idxReg = treeNode->gtOp.gtOp1->gtRegNum;
     regNumber baseReg = treeNode->gtOp.gtOp2->gtRegNum;
@@ -4156,21 +4055,21 @@ CodeGen::genTableBasedSwitch(GenTree* treeNode)
     regNumber tmpReg = genRegNumFromMask(treeNode->gtRsvdRegs);
 
     // load the ip-relative offset (which is relative to start of fgFirstBB)
-    //getEmitter()->emitIns_R_ARX(INS_mov, EA_4BYTE, baseReg, baseReg, idxReg, 4, 0);
+    getEmitter()->emitIns_R_R_R(INS_ldr, EA_4BYTE, baseReg, baseReg, idxReg, INS_OPTS_LSL);
 
     // add it to the absolute address of fgFirstBB
     compiler->fgFirstBB->bbFlags |= BBF_JMP_TARGET;
-    //getEmitter()->emitIns_R_L(INS_lea, EA_PTRSIZE, compiler->fgFirstBB, tmpReg);
-    //getEmitter()->emitIns_R_R(INS_add, EA_PTRSIZE, baseReg, tmpReg);
+    getEmitter()->emitIns_R_L(INS_adr, EA_PTRSIZE, compiler->fgFirstBB, tmpReg);
+    getEmitter()->emitIns_R_R_R(INS_add, EA_PTRSIZE, baseReg, baseReg, tmpReg);
+
     // jmp baseReg
-    // getEmitter()->emitIns_R(INS_i_jmp, emitTypeSize(TYP_I_IMPL), baseReg);
+    getEmitter()->emitIns_R(INS_br, emitTypeSize(TYP_I_IMPL), baseReg);
 }
 
 // emits the table and an instruction to get the address of the first element
 void
 CodeGen::genJumpTable(GenTree* treeNode)
 {
-    NYI("Emit Jump table");
     noway_assert(compiler->compCurBB->bbJumpKind == BBJ_SWITCH);
     assert(treeNode->OperGet() == GT_JMPTABLE);
 
@@ -4200,9 +4099,10 @@ CodeGen::genJumpTable(GenTree* treeNode)
     // Access to inline data is 'abstracted' by a special type of static member
     // (produced by eeFindJitDataOffs) which the emitter recognizes as being a reference
     // to constant data, not a real static field.
-    getEmitter()->emitIns_R_C(INS_lea,
+    getEmitter()->emitIns_R_C(INS_adr,
         emitTypeSize(TYP_I_IMPL),
         treeNode->gtRegNum,
+        REG_NA,
         compiler->eeFindJitDataOffs(jmpTabBase),
         0);
     genProduceReg(treeNode);
@@ -4706,7 +4606,7 @@ void CodeGen::genUnspillRegIfNeeded(GenTree *tree)
         }
         else
         {
-            TempDsc* t = regSet.rsUnspillInPlace(unspillTree);
+            TempDsc* t = regSet.rsUnspillInPlace(unspillTree, unspillTree->gtRegNum);
             getEmitter()->emitIns_R_S(ins_Load(unspillTree->gtType),
                             emitActualTypeSize(unspillTree->gtType),
                             dstReg,
@@ -5172,12 +5072,10 @@ void CodeGen::genCallInstruction(GenTreePtr node)
 #endif // DEBUG
 
     // If fast tail call, then we are done.  In this case we setup the args (both reg args
-    // and stack args in incoming arg area) and call target in rax.  Epilog sequence would
-    // generate "br x0".
+    // and stack args in incoming arg area) and call target in IP0.  Epilog sequence would
+    // generate "br IP0".
     if (call->IsFastTailCall())
     {
-        NYI_ARM64("CodeGen - IsFastTailCall");
-
         // Don't support fast tail calling JIT helpers
         assert(callType != CT_HELPER);
 
@@ -5185,14 +5083,13 @@ void CodeGen::genCallInstruction(GenTreePtr node)
         assert(target != nullptr);
 
         genConsumeReg(target);
-#if 0
-        if (target->gtRegNum != REG_RAX)
+
+        if (target->gtRegNum != REG_IP0)
         {
-            inst_RV_RV(INS_mov, REG_RAX, target->gtRegNum);
+            inst_RV_RV(INS_mov, REG_IP0, target->gtRegNum);
         }
-#endif
         return;
-    }   
+    }
 
     // For a pinvoke to unmanged code we emit a label to clear 
     // the GC pointer state before the callsite.
@@ -6467,10 +6364,7 @@ void CodeGen::genPutArgStk(GenTreePtr treeNode)
     // All other calls - stk arg is setup in out-going arg area.
     if (putInIncomingArgArea)
     {
-        // The first varNum is guaranteed to be the first incoming arg of the method being compiled.
-        // See lvaInitTypeRef() for the order in which lvaTable entries are initialized.
-        varNum = 0;
-#ifdef DEBUG
+        varNum = getFirstArgWithStackSlot();
 #if FEATURE_FASTTAILCALL
         // This must be a fast tail call.
         assert(treeNode->AsPutArgStk()->gtCall->AsCall()->IsFastTailCall());
@@ -6478,11 +6372,9 @@ void CodeGen::genPutArgStk(GenTreePtr treeNode)
         // Since it is a fast tail call, the existence of first incoming arg is guaranteed
         // because fast tail call requires that in-coming arg area of caller is >= out-going
         // arg area required for tail call.
-        LclVarDsc* varDsc = compiler->lvaTable;mit
+        LclVarDsc* varDsc = &(compiler->lvaTable[varNum]);
         assert(varDsc != nullptr);
-        assert(varDsc->lvIsRegArg && ((varDsc->lvArgReg == REG_ARG_0) || (varDsc->lvArgReg == REG_FLTARG_0))); 
 #endif // FEATURE_FASTTAILCALL
-#endif
     }
     else
     {
index e23c2d3..988437e 100644 (file)
 
 #ifdef LEGACY_BACKEND // Not necessary (it's this way in the #include location), but helpful to IntelliSense
 
+public:
+
+    regNumber           genIsEnregisteredIntVariable(GenTreePtr tree);
+
+    void                sched_AM        (instruction    ins,
+                                         emitAttr       size,
+                                         regNumber      ireg,
+                                         bool           rdst,
+                                         GenTreePtr     tree,
+                                         unsigned       offs,
+                                         bool           cons  = false,
+                                         int            cval  = 0,
+                                         insFlags       flags = INS_FLAGS_DONT_CARE);
+
+protected:
+
 #if FEATURE_STACK_FP_X87
     VARSET_TP           genFPregVars;       // mask corresponding to genFPregCnt
     unsigned            genFPdeadRegCnt;    // The dead unpopped part of genFPregCnt
     // Prolog functions and data (there are a few exceptions for more generally used things)
     //
 
+    regMaskTP           genPInvokeMethodProlog(regMaskTP    initRegs);
+
+    void                genPInvokeMethodEpilog();    
+
+    regNumber           genPInvokeCallProlog(LclVarDsc *    varDsc,
+                                             int            argSize,
+                                      CORINFO_METHOD_HANDLE methodToken,
+                                             BasicBlock *   returnLabel);
+
+    void                genPInvokeCallEpilog(LclVarDsc *    varDsc,
+                                             regMaskTP      retVal);
+
     regNumber           genLclHeap          (GenTreePtr     size);
 
     void                genSinglePush       ();
@@ -703,6 +731,23 @@ protected :
     void checkLiveness   (genLivenessSet * ls);
     void unspillLiveness (genLivenessSet * ls);
 
+    //-------------------------------------------------------------------------
+    //
+    //  If we know that the flags register is set to a value that corresponds
+    //  to the current value of a register or variable, the following values
+    //  record that information.
+    //
+
+    emitLocation        genFlagsEqLoc;
+    regNumber           genFlagsEqReg;
+    unsigned            genFlagsEqVar;
+
+    void                genFlagsEqualToNone ();
+    void                genFlagsEqualToReg  (GenTreePtr tree, regNumber reg);
+    void                genFlagsEqualToVar  (GenTreePtr tree, unsigned  var);
+    bool                genFlagsAreReg      (regNumber reg);
+    bool                genFlagsAreVar      (unsigned  var);
+
 #endif // LEGACY_BACKEND
 
 #endif // _CODEGENCLASSIC_H_
index 186ec9b..7a9b9f9 100644 (file)
@@ -589,131 +589,6 @@ void CodeGenInterface::genGetRegPairFromMask(regMaskTP  regPairMask, regNumber*
 }
 
 
-/*****************************************************************************
-*           TRACKING OF FLAGS
-*****************************************************************************/
-
-#ifdef LEGACY_BACKEND
-
-void                CodeGen::genFlagsEqualToNone()
-{
-    genFlagsEqReg = REG_NA;
-    genFlagsEqVar = (unsigned)-1;
-    genFlagsEqLoc.Init();
-}
-
-/*****************************************************************************
- *
- *  Record the fact that the flags register has a value that reflects the
- *  contents of the given register.
- */
-
-void                CodeGen::genFlagsEqualToReg(GenTreePtr tree,
-                                                regNumber  reg)
-{
-    genFlagsEqLoc.CaptureLocation(getEmitter());
-    genFlagsEqReg = reg;
-
-    /* previous setting of flags by a var becomes invalid */
-
-    genFlagsEqVar = 0xFFFFFFFF;
-
-    /* Set appropriate flags on the tree */
-
-    if (tree)
-    {
-        tree->gtFlags |= GTF_ZSF_SET;
-        assert(tree->gtSetFlags());
-    }
-}
-
-/*****************************************************************************
- *
- *  Record the fact that the flags register has a value that reflects the
- *  contents of the given local variable.
- */
-
-void                CodeGen::genFlagsEqualToVar(GenTreePtr tree,
-                                                unsigned   var)
-{
-    genFlagsEqLoc.CaptureLocation(getEmitter());
-    genFlagsEqVar = var;
-
-    /* previous setting of flags by a register becomes invalid */
-
-    genFlagsEqReg = REG_NA;
-
-    /* Set appropriate flags on the tree */
-
-    if (tree)
-    {
-        tree->gtFlags |= GTF_ZSF_SET;
-        assert(tree->gtSetFlags());
-    }
-}
-
-/*****************************************************************************
- *
- *  Return an indication of whether the flags register is set to the current
- *  value of the given register/variable. The return value is as follows:
- *
- *      false  ..  nothing
- *      true   ..  the zero flag (ZF) and sign flag (SF) is set
- */
-
-bool                 CodeGen::genFlagsAreReg(regNumber reg)
-{
-    if  ((genFlagsEqReg == reg) && genFlagsEqLoc.IsCurrentLocation(getEmitter()))
-    {
-        return true;
-    }
-
-    return false;
-}
-
-bool                 CodeGen::genFlagsAreVar(unsigned  var)
-{
-    if  ((genFlagsEqVar == var) && genFlagsEqLoc.IsCurrentLocation(getEmitter()))
-    {
-        return true;
-    }
-
-    return false;
-}
-
-// TODO-Cleanup: Move this out of CodeGenCommon.cpp - we shouldn't need to use this
-// in the new backend
-/*****************************************************************************
- * This utility function returns true iff the execution path from "from"
- * (inclusive) to "to" (exclusive) contains a death of the given var
- */
-bool
-CodeGen::genContainsVarDeath(GenTreePtr from, GenTreePtr to, unsigned varNum)
-{
-    GenTreePtr tree;
-    for (tree = from; tree != NULL && tree != to; tree = tree->gtNext)
-    {
-        if (tree->IsLocal() && (tree->gtFlags & GTF_VAR_DEATH))
-        {
-            unsigned dyingVarNum = tree->gtLclVarCommon.gtLclNum;
-            if (dyingVarNum == varNum) return true;
-            LclVarDsc * varDsc = &(compiler->lvaTable[varNum]);
-            if (varDsc->lvPromoted)
-            {
-                assert(varDsc->lvType == TYP_STRUCT);
-                unsigned firstFieldNum = varDsc->lvFieldLclStart;
-                if (varNum >= firstFieldNum && varNum < firstFieldNum + varDsc->lvFieldCnt)
-                {
-                    return true;
-                }
-            }
-        }
-    }
-    assert(tree != NULL);
-    return false;
-}
-#endif // LEGACY_BACKEND
-
 // The given lclVar is either going live (being born) or dying.
 // It might be both going live and dying (that is, it is a dead store) under MinOpts.
 // Update regSet.rsMaskVars accordingly.
@@ -3219,7 +3094,7 @@ void                CodeGen::genGenerateCode(void * * codePtr,
         genCreateAndStoreGCInfo(codeSize, prologSize, epilogSize DEBUGARG(codePtr));
 
 #ifdef  DEBUG
-    FILE* dmpf = stdout;
+    FILE* dmpf = jitstdout;
 
     compiler->opts.dmpHex = false;
     if  (!strcmp(compiler->info.compMethodName, "<name of method you want the hex dump for"))
@@ -3258,7 +3133,7 @@ void                CodeGen::genGenerateCode(void * * codePtr,
         fflush(dmpf);
     }
 
-    if (dmpf != stdout)
+    if (dmpf != jitstdout)
     {
         fclose(dmpf);
     }
@@ -5193,10 +5068,8 @@ void CodeGen::genCheckUseBlockInit()
             continue;
 
 #if FEATURE_FIXED_OUT_ARGS
-#if INLINE_NDIRECT
         if (varNum == compiler->lvaPInvokeFrameRegSaveVar)
             continue;
-#endif
         if (varNum == compiler->lvaOutgoingArgSpaceVar)
             continue;
 #endif
@@ -7687,413 +7560,6 @@ void CodeGen::genPrologPadForReJit()
 }
 
 
-#ifdef LEGACY_BACKEND
-/*****************************************************************************/
-#if INLINE_NDIRECT
-
-/*****************************************************************************
- * Initialize the TCB local and the NDirect stub, afterwards "push"
- * the hoisted NDirect stub.
- *
- * 'initRegs' is the set of registers which will be zeroed out by the prolog
- *             typically initRegs is zero
- *
- * The layout of the NDirect Inlined Call Frame is as follows:
- * (see VM/frames.h and VM/JITInterface.cpp for more information)
- *
- *   offset     field name                        when set
- *  --------------------------------------------------------------
- *    +00h      vptr for class InlinedCallFrame   method prolog
- *    +04h      m_Next                            method prolog
- *    +08h      m_Datum                           call site
- *    +0ch      m_pCallSiteTracker (callsite ESP) call site and zeroed in method prolog
- *    +10h      m_pCallerReturnAddress            call site
- *    +14h      m_pCalleeSavedRegisters           not set by JIT
- *    +18h      JIT retval spill area (int)       before call_gc
- *    +1ch      JIT retval spill area (long)      before call_gc
- *    +20h      Saved value of EBP                method prolog
- */
-
-regMaskTP           CodeGen::genPInvokeMethodProlog(regMaskTP initRegs)
-{
-    assert(compiler->compGeneratingProlog);
-    noway_assert(!compiler->opts.ShouldUsePInvokeHelpers());
-    noway_assert(compiler->info.compCallUnmanaged);
-
-    CORINFO_EE_INFO * pInfo = compiler->eeGetEEInfo();
-    noway_assert(compiler->lvaInlinedPInvokeFrameVar != BAD_VAR_NUM);
-
-    /* let's find out if compLvFrameListRoot is enregistered */
-
-    LclVarDsc *     varDsc = &compiler->lvaTable[compiler->info.compLvFrameListRoot];
-
-    noway_assert(!varDsc->lvIsParam);
-    noway_assert(varDsc->lvType == TYP_I_IMPL);
-
-    DWORD threadTlsIndex, *pThreadTlsIndex;
-
-    threadTlsIndex = compiler->info.compCompHnd->getThreadTLSIndex((void**) &pThreadTlsIndex);
-#if defined(_TARGET_X86_)
-    if (threadTlsIndex == (DWORD)-1 || pInfo->osType != CORINFO_WINNT)
-#else
-    if (true)
-#endif
-    {
-        // Instead of calling GetThread(), and getting GS cookie and
-        // InlinedCallFrame vptr through indirections, we'll call only one helper.
-        // The helper takes frame address in REG_PINVOKE_FRAME, returns TCB in REG_PINVOKE_TCB
-        // and uses REG_PINVOKE_SCRATCH as scratch register.
-        getEmitter()->emitIns_R_S (INS_lea,
-                                 EA_PTRSIZE,
-                                 REG_PINVOKE_FRAME,
-                                 compiler->lvaInlinedPInvokeFrameVar,
-                                 pInfo->inlinedCallFrameInfo.offsetOfFrameVptr);
-        regTracker.rsTrackRegTrash(REG_PINVOKE_FRAME);
-
-        // We're about to trask REG_PINVOKE_TCB, it better not be in use!
-        assert((regSet.rsMaskUsed & RBM_PINVOKE_TCB) == 0);
-
-        // Don't use the argument registers (including the special argument in
-        // REG_PINVOKE_FRAME) for computing the target address.
-        regSet.rsLockReg(RBM_ARG_REGS|RBM_PINVOKE_FRAME);
-
-        genEmitHelperCall(CORINFO_HELP_INIT_PINVOKE_FRAME, 0, EA_UNKNOWN);
-
-        regSet.rsUnlockReg(RBM_ARG_REGS|RBM_PINVOKE_FRAME);
-
-        if (varDsc->lvRegister)
-        {
-            regNumber regTgt = varDsc->lvRegNum;
-
-            // we are about to initialize it. So turn the bit off in initRegs to prevent
-            // the prolog reinitializing it.
-            initRegs &= ~genRegMask(regTgt);
-
-            if (regTgt != REG_PINVOKE_TCB)
-            {
-                // move TCB to the its register if necessary
-                getEmitter()->emitIns_R_R(INS_mov, EA_PTRSIZE, regTgt, REG_PINVOKE_TCB);
-                regTracker.rsTrackRegTrash(regTgt);
-            }
-        }
-        else
-        {
-            // move TCB to its stack location
-            getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
-                                     EA_PTRSIZE,
-                                     REG_PINVOKE_TCB,
-                                     compiler->info.compLvFrameListRoot,
-                                     0);
-        }
-
-        // We are done, the rest of this function deals with the inlined case.
-        return initRegs;
-    }
-
-    regNumber      regTCB;
-
-    if (varDsc->lvRegister)
-    {
-        regTCB = varDsc->lvRegNum;
-
-        // we are about to initialize it. So turn the bit off in initRegs to prevent
-        // the prolog reinitializing it.
-        initRegs &= ~genRegMask(regTCB);
-    }
-    else // varDsc is allocated on the Stack
-    {
-        regTCB = REG_PINVOKE_TCB;
-    }
-
-    /* get TCB,  mov reg, FS:[compiler->info.compEEInfo.threadTlsIndex] */
-
-    // TODO-ARM-CQ: should we inline TlsGetValue here?
-#if !defined(_TARGET_ARM_) && !defined(_TARGET_AMD64_)
-#define WIN_NT_TLS_OFFSET (0xE10)
-#define WIN_NT5_TLS_HIGHOFFSET (0xf94)
-
-    if (threadTlsIndex < 64)
-    {
-        //  mov  reg, FS:[0xE10+threadTlsIndex*4]
-        getEmitter()->emitIns_R_C (ins_Load(TYP_I_IMPL),
-                                 EA_PTRSIZE,
-                                 regTCB,
-                                 FLD_GLOBAL_FS,
-                                 WIN_NT_TLS_OFFSET + threadTlsIndex * sizeof(int));
-        regTracker.rsTrackRegTrash(regTCB);
-    }
-    else
-    {
-        noway_assert(pInfo->osMajor >= 5);
-
-        DWORD basePtr   = WIN_NT5_TLS_HIGHOFFSET;
-        threadTlsIndex -= 64;
-
-        // mov reg, FS:[0x2c] or mov reg, fs:[0xf94]
-        // mov reg, [reg+threadTlsIndex*4]
-
-        getEmitter()->emitIns_R_C (ins_Load(TYP_I_IMPL),
-                                 EA_PTRSIZE,
-                                 regTCB,
-                                 FLD_GLOBAL_FS,
-                                 basePtr);
-        getEmitter()->emitIns_R_AR(ins_Load(TYP_I_IMPL),
-                                 EA_PTRSIZE,
-                                 regTCB,
-                                 regTCB,
-                                 threadTlsIndex*sizeof(int));
-        regTracker.rsTrackRegTrash(regTCB);
-    }
-#endif
-
-    /* save TCB in local var if not enregistered */
-
-    if (!varDsc->lvRegister)
-    {
-        getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
-                                 EA_PTRSIZE,
-                                 regTCB,
-                                 compiler->info.compLvFrameListRoot,
-                                 0);
-    }
-
-    /* set frame's vptr */
-
-    const void * inlinedCallFrameVptr, **pInlinedCallFrameVptr;
-    inlinedCallFrameVptr = compiler->info.compCompHnd->getInlinedCallFrameVptr((void**) &pInlinedCallFrameVptr);
-    noway_assert(inlinedCallFrameVptr != NULL); // if we have the TLS index, vptr must also be known
-
-    instGen_Store_Imm_Into_Lcl(TYP_I_IMPL, EA_HANDLE_CNS_RELOC, (ssize_t) inlinedCallFrameVptr,
-                               compiler->lvaInlinedPInvokeFrameVar, 
-                               pInfo->inlinedCallFrameInfo.offsetOfFrameVptr,
-                               REG_PINVOKE_SCRATCH);
-
-    // Set the GSCookie
-    GSCookie gsCookie, * pGSCookie;
-    compiler->info.compCompHnd->getGSCookie(&gsCookie, &pGSCookie);
-    noway_assert(gsCookie != 0); // if we have the TLS index, GS cookie must also be known
-
-    instGen_Store_Imm_Into_Lcl(TYP_I_IMPL, EA_PTRSIZE, (ssize_t) gsCookie,
-                               compiler->lvaInlinedPInvokeFrameVar,
-                               pInfo->inlinedCallFrameInfo.offsetOfGSCookie,
-                               REG_PINVOKE_SCRATCH);
-
-    /* Get current frame root (mov reg2, [reg+offsetOfThreadFrame]) and
-       set next field in frame */
-
-    getEmitter()->emitIns_R_AR (ins_Load(TYP_I_IMPL),
-                              EA_PTRSIZE,
-                              REG_PINVOKE_SCRATCH,
-                              regTCB,
-                              pInfo->offsetOfThreadFrame);
-    regTracker.rsTrackRegTrash(REG_PINVOKE_SCRATCH);
-
-    getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
-                             EA_PTRSIZE,
-                             REG_PINVOKE_SCRATCH,
-                             compiler->lvaInlinedPInvokeFrameVar,
-                             pInfo->inlinedCallFrameInfo.offsetOfFrameLink);
-
-    noway_assert(isFramePointerUsed());  // Setup of Pinvoke frame currently requires an EBP style frame
-
-    /* set EBP value in frame */
-    getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
-                             EA_PTRSIZE,
-                             genFramePointerReg(),
-                             compiler->lvaInlinedPInvokeFrameVar,
-                             pInfo->inlinedCallFrameInfo.offsetOfCalleeSavedFP);
-
-    /* reset track field in frame */
-    instGen_Store_Imm_Into_Lcl(TYP_I_IMPL, EA_PTRSIZE, 0,
-                               compiler->lvaInlinedPInvokeFrameVar,
-                               pInfo->inlinedCallFrameInfo.offsetOfReturnAddress,
-                               REG_PINVOKE_SCRATCH);
-
-    /* get address of our frame */
-
-    getEmitter()->emitIns_R_S (INS_lea,
-                             EA_PTRSIZE,
-                             REG_PINVOKE_SCRATCH,
-                             compiler->lvaInlinedPInvokeFrameVar,
-                             pInfo->inlinedCallFrameInfo.offsetOfFrameVptr);
-    regTracker.rsTrackRegTrash(REG_PINVOKE_SCRATCH);
-
-    /* now "push" our N/direct frame */
-
-    getEmitter()->emitIns_AR_R (ins_Store(TYP_I_IMPL),
-                              EA_PTRSIZE,
-                              REG_PINVOKE_SCRATCH,
-                              regTCB,
-                              pInfo->offsetOfThreadFrame);
-
-    return initRegs;
-}
-
-/*****************************************************************************
- *  Unchain the InlinedCallFrame.
- *  Technically, this is not part of the epilog; it is called when we are generating code for a GT_RETURN node
- *  or tail call.
- */
-void                CodeGen::genPInvokeMethodEpilog()
-{
-    noway_assert(compiler->info.compCallUnmanaged);
-    noway_assert(!compiler->opts.ShouldUsePInvokeHelpers());
-    noway_assert(compiler->compCurBB == compiler->genReturnBB ||
-                 (compiler->compTailCallUsed && (compiler->compCurBB->bbJumpKind == BBJ_THROW)) ||
-                 (compiler->compJmpOpUsed && (compiler->compCurBB->bbFlags & BBF_HAS_JMP)));
-
-    CORINFO_EE_INFO *   pInfo = compiler->eeGetEEInfo();
-    noway_assert(compiler->lvaInlinedPInvokeFrameVar != BAD_VAR_NUM);
-
-    getEmitter()->emitDisableRandomNops();
-    //debug check to make sure that we're not using ESI and/or EDI across this call, except for
-    //compLvFrameListRoot.
-    unsigned regTrashCheck = 0;
-
-    /* XXX Tue 5/29/2007
-     * We explicitly add interference for these in CodeGen::rgPredictRegUse.  If you change the code
-     * sequence or registers used, make sure to update the interference for compiler->genReturnLocal.
-     */
-    LclVarDsc   *       varDsc = &compiler->lvaTable[compiler->info.compLvFrameListRoot];
-    regNumber           reg;
-    regNumber           reg2 = REG_PINVOKE_FRAME;
-
-
-    //
-    // Two cases for epilog invocation:
-    //
-    // 1. Return
-    //    We can trash the ESI/EDI registers.
-    //
-    // 2. Tail call
-    //    When tail called, we'd like to preserve enregistered args,
-    //    in ESI/EDI so we can pass it to the callee.
-    //
-    // For ARM, don't modify SP for storing and restoring the TCB/frame registers.
-    // Instead use the reserved local variable slot.
-    //
-    if (compiler->compCurBB->bbFlags & BBF_HAS_JMP)
-    {
-        if (compiler->rpMaskPInvokeEpilogIntf & RBM_PINVOKE_TCB)
-        {
-#if INLINE_NDIRECT && FEATURE_FIXED_OUT_ARGS
-            // Save the register in the reserved local var slot.
-            getEmitter()->emitIns_S_R(ins_Store(TYP_I_IMPL), EA_PTRSIZE, REG_PINVOKE_TCB, compiler->lvaPInvokeFrameRegSaveVar, 0);
-#else
-            inst_RV(INS_push, REG_PINVOKE_TCB, TYP_I_IMPL);
-#endif
-        }
-        if (compiler->rpMaskPInvokeEpilogIntf & RBM_PINVOKE_FRAME)
-        {
-#if INLINE_NDIRECT && FEATURE_FIXED_OUT_ARGS
-            // Save the register in the reserved local var slot.
-            getEmitter()->emitIns_S_R(ins_Store(TYP_I_IMPL), EA_PTRSIZE, REG_PINVOKE_FRAME, compiler->lvaPInvokeFrameRegSaveVar, REGSIZE_BYTES);
-#else
-            inst_RV(INS_push, REG_PINVOKE_FRAME, TYP_I_IMPL);
-#endif
-        }
-    }
-
-    if (varDsc->lvRegister)
-    {
-        reg = varDsc->lvRegNum;
-        if (reg == reg2)
-            reg2 = REG_PINVOKE_TCB;
-
-        regTrashCheck |= genRegMask(reg2);
-    }
-    else
-    {
-        /* mov esi, [tcb address]    */
-
-        getEmitter()->emitIns_R_S (ins_Load(TYP_I_IMPL),
-                                 EA_PTRSIZE,
-                                 REG_PINVOKE_TCB,
-                                 compiler->info.compLvFrameListRoot,
-                                 0);
-        regTracker.rsTrackRegTrash(REG_PINVOKE_TCB);
-        reg = REG_PINVOKE_TCB;
-
-        regTrashCheck = RBM_PINVOKE_TCB | RBM_PINVOKE_FRAME;
-    }
-
-    /* mov edi, [ebp-frame.next] */
-
-    getEmitter()->emitIns_R_S  (ins_Load(TYP_I_IMPL),
-                              EA_PTRSIZE,
-                              reg2,
-                              compiler->lvaInlinedPInvokeFrameVar,
-                              pInfo->inlinedCallFrameInfo.offsetOfFrameLink);
-    regTracker.rsTrackRegTrash(reg2);
-
-    /* mov [esi+offsetOfThreadFrame], edi */
-
-    getEmitter()->emitIns_AR_R (ins_Store(TYP_I_IMPL),
-                              EA_PTRSIZE,
-                              reg2,
-                              reg,
-                              pInfo->offsetOfThreadFrame);
-
-    noway_assert(!(regSet.rsMaskUsed & regTrashCheck));
-
-#ifndef LEGACY_BACKEND
-    if (compiler->genReturnLocal != BAD_VAR_NUM)
-    {
-        const LclVarDsc & genReturnLclVar = compiler->lvaTable[compiler->genReturnLocal];
-        if (genReturnLclVar.lvIsRegCandidate() && genReturnLclVar.lvRegister)
-        {
-            //really make sure we're not clobbering compiler->genReturnLocal.
-            noway_assert(!(genRegMask(genReturnLclVar.lvRegNum)
-                           & ( (varDsc->lvRegister ? genRegMask(varDsc->lvRegNum) : 0)
-                               | RBM_PINVOKE_TCB | RBM_PINVOKE_FRAME)));
-        }
-    }
-#else // LEGACY_BACKEND
-    if (compiler->genReturnLocal != BAD_VAR_NUM &&
-        compiler->lvaTable[compiler->genReturnLocal].lvTracked &&
-        compiler->lvaTable[compiler->genReturnLocal].lvRegister)
-    {
-        //really make sure we're not clobbering compiler->genReturnLocal.
-        noway_assert(!(genRegMask(compiler->lvaTable[compiler->genReturnLocal].lvRegNum)
-                       & ( (varDsc->lvRegister ? genRegMask(varDsc->lvRegNum) : 0)
-                           | RBM_PINVOKE_TCB | RBM_PINVOKE_FRAME)));
-    }
-#endif // LEGACY_BACKEND
-
-    (void)regTrashCheck;
-
-    // Restore the registers ESI and EDI.
-    if (compiler->compCurBB->bbFlags & BBF_HAS_JMP)
-    {
-        if (compiler->rpMaskPInvokeEpilogIntf & RBM_PINVOKE_FRAME)
-        {
-#if INLINE_NDIRECT && FEATURE_FIXED_OUT_ARGS
-            // Restore the register from the reserved local var slot.
-            getEmitter()->emitIns_R_S(ins_Load(TYP_I_IMPL), EA_PTRSIZE, REG_PINVOKE_FRAME, compiler->lvaPInvokeFrameRegSaveVar, REGSIZE_BYTES);
-#else
-            inst_RV(INS_pop, REG_PINVOKE_FRAME, TYP_I_IMPL);
-#endif
-            regTracker.rsTrackRegTrash(REG_PINVOKE_FRAME);
-        }
-        if (compiler->rpMaskPInvokeEpilogIntf & RBM_PINVOKE_TCB)
-        {
-#if INLINE_NDIRECT && FEATURE_FIXED_OUT_ARGS
-            // Restore the register from the reserved local var slot.
-            getEmitter()->emitIns_R_S(ins_Load(TYP_I_IMPL), EA_PTRSIZE, REG_PINVOKE_TCB, compiler->lvaPInvokeFrameRegSaveVar, 0);
-#else
-            inst_RV(INS_pop, REG_PINVOKE_TCB, TYP_I_IMPL);
-#endif
-            regTracker.rsTrackRegTrash(REG_PINVOKE_TCB);
-        }
-    }
-    getEmitter()->emitEnableRandomNops();
-}
-
-#endif // INLINE_NDIRECT
-#endif // LEGACY_BACKEND
-/*****************************************************************************/
-
-
 /*****************************************************************************
  *
  *  Reserve space for a function prolog.
@@ -8276,14 +7742,12 @@ void                CodeGen::genFinalizeFrame()
 #endif // !_TARGET_AMD64_
     }
 
-#if INLINE_NDIRECT
     /* If we have any pinvoke calls, we might potentially trash everything */
     if (compiler->info.compCallUnmanaged)
     {
         noway_assert(isFramePointerUsed());  // Setup of Pinvoke frame currently requires an EBP style frame
         regSet.rsSetRegsModified(RBM_INT_CALLEE_SAVED & ~RBM_FPBASE);
     }
-#endif // INLINE_NDIRECT
 
     /* Count how many callee-saved registers will actually be saved (pushed) */
 
@@ -8719,7 +8183,6 @@ void                CodeGen::genFnProlog()
     regMaskTP  excludeMask    = intRegState.rsCalleeRegArgMaskLiveIn;
     regMaskTP  tempMask;
 
-#if INLINE_NDIRECT
     // We should not use the special PINVOKE registers as the initReg
     // since they are trashed by the jithelper call to setup the PINVOKE frame
     if (compiler->info.compCallUnmanaged)
@@ -8742,7 +8205,6 @@ void                CodeGen::genFnProlog()
             }
         }
     }
-#endif // INLINE_NDIRECT
 
 #ifdef _TARGET_ARM_
     // If we have a variable sized frame (compLocallocUsed is true)
@@ -9003,14 +8465,14 @@ void                CodeGen::genFnProlog()
 
     genReportGenericContextArg(initReg, &initRegZeroed);
 
-#if INLINE_NDIRECT && defined(LEGACY_BACKEND) // in RyuJIT backend this has already been expanded into trees
+#if defined(LEGACY_BACKEND) // in RyuJIT backend this has already been expanded into trees
     if (compiler->info.compCallUnmanaged)
     {
         getEmitter()->emitDisableRandomNops();
         initRegs = genPInvokeMethodProlog(initRegs);
         getEmitter()->emitEnableRandomNops();
     }
-#endif // !(INLINE_NDIRECT && defined(LEGACY_BACKEND))
+#endif // defined(LEGACY_BACKEND)
 
     // The local variable representing the security object must be on the stack frame
     // and must be 0 initialized.
@@ -9497,11 +8959,23 @@ void                CodeGen::genFnEpilog(BasicBlock* block)
         // figure out what jump we have
         GenTreePtr jmpStmt = block->lastTopLevelStmt();
         noway_assert(jmpStmt && (jmpStmt->gtOper == GT_STMT));
-
+#if !FEATURE_FASTTAILCALL
         noway_assert(jmpStmt->gtNext == nullptr);
         GenTreePtr jmpNode = jmpStmt->gtStmt.gtStmtExpr;
         noway_assert(jmpNode->gtOper == GT_JMP);
+#else
+        // arm64
+        // If jmpNode is GT_JMP then gtNext must be null.
+        // If jmpNode is a fast tail call, gtNext need not be null since it could have embedded stmts.
+        GenTreePtr jmpNode = jmpStmt->gtStmt.gtStmtExpr;
+        noway_assert((jmpNode->gtOper != GT_JMP) || (jmpStmt->gtNext == nullptr));
+
+        // Could either be a "jmp method" or "fast tail call" implemented as epilog+jmp
+        noway_assert((jmpNode->gtOper == GT_JMP) || ((jmpNode->gtOper == GT_CALL) && jmpNode->AsCall()->IsFastTailCall()));
 
+        // The next block is associated with this "if" stmt
+        if (jmpNode->gtOper == GT_JMP)
+#endif
         {
             // Simply emit a jump to the methodHnd. This is similar to a call so we can use
             // the same descriptor with some minor adjustments.
@@ -9530,6 +9004,16 @@ void                CodeGen::genFnEpilog(BasicBlock* block)
                 BAD_IL_OFFSET, REG_NA, REG_NA, 0, 0, /* iloffset, ireg, xreg, xmul, disp */
                 true);                     /* isJump */
         }
+#if FEATURE_FASTTAILCALL
+        else
+        {
+            // Fast tail call.
+            // Call target = REG_IP0.
+            // https://github.com/dotnet/coreclr/issues/4827
+            // Do we need a special encoding for stack walker like rex.w prefix for x64?
+            getEmitter()->emitIns_R(INS_br, emitTypeSize(TYP_I_IMPL), REG_IP0);
+        }
+#endif //FEATURE_FASTTAILCALL
     }
     else
     {
@@ -10671,512 +10155,6 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 */
 
-/*****************************************************************************/
-#if INLINE_NDIRECT
-
-#ifdef LEGACY_BACKEND
-
-/*****************************************************************************
-    This function emits the call-site prolog for direct calls to unmanaged code.
-    It does all the necessary setup of the InlinedCallFrame.
-    frameListRoot specifies the local containing the thread control block.
-    argSize or methodToken is the value to be copied into the m_datum
-            field of the frame (methodToken may be indirected & have a reloc)
-    The function returns  the register now containing the thread control block,
-    (it could be either enregistered or loaded into one of the scratch registers)
-*/
-
-regNumber          CodeGen::genPInvokeCallProlog(LclVarDsc*            frameListRoot,
-                                                  int                   argSize,
-                                                  CORINFO_METHOD_HANDLE methodToken,
-                                                  BasicBlock*           returnLabel)
-{
-    // Some stack locals might be 'cached' in registers, we need to trash them
-    // from the regTracker *and* also ensure the gc tracker does not consider
-    // them live (see the next assert).  However, they might be live reg vars
-    // that are non-pointers CSE'd from pointers.
-    // That means the register will be live in rsMaskVars, so we can't just
-    // call gcMarkSetNpt().
-    {
-        regMaskTP deadRegs = regTracker.rsTrashRegsForGCInterruptability() & ~RBM_ARG_REGS;
-        gcInfo.gcRegGCrefSetCur &= ~deadRegs;
-        gcInfo.gcRegByrefSetCur &= ~deadRegs;
-
-#ifdef DEBUG
-        deadRegs &= regSet.rsMaskVars;
-        if (deadRegs)
-        {
-            for (LclVarDsc * varDsc = compiler->lvaTable;
-                 ((varDsc < (compiler->lvaTable + compiler->lvaCount)) && deadRegs);
-                 varDsc++ )
-            {
-                if (!varDsc->lvTracked || !varDsc->lvRegister)
-                    continue;
-
-                if (!VarSetOps::IsMember(compiler, compiler->compCurLife, varDsc->lvVarIndex))
-                    continue;
-
-                regMaskTP varRegMask = genRegMask(varDsc->lvRegNum);
-                if (isRegPairType(varDsc->lvType) && varDsc->lvOtherReg != REG_STK)
-                    varRegMask |= genRegMask(varDsc->lvOtherReg);
-
-                if (varRegMask & deadRegs)
-                {
-                    // We found the enregistered var that should not be live if it
-                    // was a GC pointer.
-                    noway_assert(!varTypeIsGC(varDsc));
-                    deadRegs &= ~varRegMask;
-                }
-            }
-        }
-#endif // DEBUG
-    }
-
-    /* Since we are using the InlinedCallFrame, we should have spilled all
-       GC pointers to it - even from callee-saved registers */
-
-    noway_assert(((gcInfo.gcRegGCrefSetCur|gcInfo.gcRegByrefSetCur) & ~RBM_ARG_REGS) == 0);
-
-    /* must specify only one of these parameters */
-    noway_assert((argSize == 0) || (methodToken == NULL));
-
-    /* We are about to call unmanaged code directly.
-       Before we can do that we have to emit the following sequence:
-
-       mov  dword ptr [frame.callTarget], MethodToken
-       mov  dword ptr [frame.callSiteTracker], esp
-       mov  reg, dword ptr [tcb_address]
-       mov  byte  ptr [tcb+offsetOfGcState], 0
-
-     */
-
-    CORINFO_EE_INFO * pInfo = compiler->eeGetEEInfo();
-
-    noway_assert(compiler->lvaInlinedPInvokeFrameVar != BAD_VAR_NUM);
-    
-    /* mov   dword ptr [frame.callSiteTarget], value */
-
-    if (methodToken == NULL)
-    {
-        /* mov   dword ptr [frame.callSiteTarget], argSize */
-        instGen_Store_Imm_Into_Lcl(TYP_INT, EA_4BYTE, argSize,
-                                   compiler->lvaInlinedPInvokeFrameVar,
-                                   pInfo->inlinedCallFrameInfo.offsetOfCallTarget);
-    }
-    else
-    {
-        void * embedMethHnd, * pEmbedMethHnd;
-
-        embedMethHnd = (void*)compiler->info.compCompHnd->embedMethodHandle(
-                                          methodToken,
-                                          &pEmbedMethHnd);
-
-        noway_assert((!embedMethHnd) != (!pEmbedMethHnd));
-
-        if (embedMethHnd != NULL)
-        {
-            /* mov   dword ptr [frame.callSiteTarget], "MethodDesc" */
-
-            instGen_Store_Imm_Into_Lcl(TYP_I_IMPL, EA_HANDLE_CNS_RELOC, (ssize_t) embedMethHnd,
-                                      compiler->lvaInlinedPInvokeFrameVar,
-                                      pInfo->inlinedCallFrameInfo.offsetOfCallTarget);
-        }
-        else
-        {
-            /* mov   reg, dword ptr [MethodDescIndir]
-               mov   dword ptr [frame.callSiteTarget], reg */
-
-#ifndef LEGACY_BACKEND
-            regNumber reg = genGetTempReg(RBM_ALLINT, callTree, false);
-#else // LEGACY_BACKEND
-            regNumber reg = regSet.rsPickFreeReg();
-#endif // LEGACY_BACKEND
-
-#if CPU_LOAD_STORE_ARCH
-            instGen_Set_Reg_To_Imm (EA_HANDLE_CNS_RELOC,
-                                    reg,
-                                    (ssize_t) pEmbedMethHnd);
-            getEmitter()->emitIns_R_AR(ins_Load(TYP_I_IMPL), EA_PTRSIZE, reg, reg, 0);
-#else // !CPU_LOAD_STORE_ARCH
-#ifdef _TARGET_AMD64_
-            if (reg != REG_RAX)
-            {
-                instGen_Set_Reg_To_Imm (EA_HANDLE_CNS_RELOC,
-                                        reg,
-                                        (ssize_t) pEmbedMethHnd);
-                getEmitter()->emitIns_R_AR(ins_Load(TYP_I_IMPL), EA_PTRSIZE, reg, reg, 0);
-            }
-            else
-#endif // _TARGET_AMD64_
-            {
-                getEmitter()->emitIns_R_AI(ins_Load(TYP_I_IMPL), EA_PTR_DSP_RELOC,
-                                         reg, (ssize_t) pEmbedMethHnd);
-            }
-#endif // !CPU_LOAD_STORE_ARCH
-            regTracker.rsTrackRegTrash(reg);
-            getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
-                                     EA_PTRSIZE,
-                                     reg,
-                                     compiler->lvaInlinedPInvokeFrameVar,
-                                     pInfo->inlinedCallFrameInfo.offsetOfCallTarget);
-        }
-    }
-
-    regNumber tcbReg = REG_NA;
-
-    if (frameListRoot->lvRegister)
-    {
-        tcbReg = frameListRoot->lvRegNum;
-    }
-    else
-    {
-#ifndef LEGACY_BACKEND
-        tcbReg = genGetTempReg(RBM_ALLINT, callTree);
-#else // LEGACY_BACKEND
-        tcbReg = regSet.rsGrabReg(RBM_ALLINT);
-#endif // LEGACY_BACKEND
-
-        /* mov reg, dword ptr [tcb address]    */
-
-        getEmitter()->emitIns_R_S  (ins_Load(TYP_I_IMPL),
-                                  EA_PTRSIZE,
-                                  tcbReg,
-                                  (unsigned)(frameListRoot - compiler->lvaTable),
-                                  0);
-        regTracker.rsTrackRegTrash(tcbReg);
-    }
-
-#ifdef _TARGET_X86_
-    /* mov   dword ptr [frame.callSiteTracker], esp */
-
-    getEmitter()->emitIns_S_R  (ins_Store(TYP_I_IMPL),
-                              EA_PTRSIZE,
-                              REG_SPBASE,
-                              compiler->lvaInlinedPInvokeFrameVar,
-                              pInfo->inlinedCallFrameInfo.offsetOfCallSiteSP);
-#endif // _TARGET_X86_
-
-    /* mov   dword ptr [frame.callSiteReturnAddress], label */
-    
-#if CPU_LOAD_STORE_ARCH
-#ifndef LEGACY_BACKEND
-    regNumber tmpReg = genGetTempReg(RBM_ALLINT & ~genRegMask(tcbReg), callTree, false);
-#else // LEGACY_BACKEND
-    regNumber tmpReg = regSet.rsGrabReg(RBM_ALLINT & ~genRegMask(tcbReg));
-#endif // LEGACY_BACKEND
-    getEmitter()->emitIns_J_R (INS_adr,
-                             EA_PTRSIZE,
-                             returnLabel,
-                             tmpReg);
-    regTracker.rsTrackRegTrash(tmpReg);
-    getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
-                             EA_PTRSIZE,
-                             tmpReg,
-                             compiler->lvaInlinedPInvokeFrameVar,
-                             pInfo->inlinedCallFrameInfo.offsetOfReturnAddress);
-#else // !CPU_LOAD_STORE_ARCH
-    // TODO-AMD64-CQ: Consider changing to a rip relative sequence on x64.
-    getEmitter()->emitIns_J_S (ins_Store(TYP_I_IMPL),
-                             EA_PTRSIZE,
-                             returnLabel,
-                             compiler->lvaInlinedPInvokeFrameVar,
-                             pInfo->inlinedCallFrameInfo.offsetOfReturnAddress);
-#endif // !CPU_LOAD_STORE_ARCH
-
-#if CPU_LOAD_STORE_ARCH
-    instGen_Set_Reg_To_Zero(EA_1BYTE, tmpReg);
-
-    noway_assert(tmpReg != tcbReg);
-
-    getEmitter()->emitIns_AR_R(ins_Store(TYP_BYTE),
-                             EA_1BYTE,
-                             tmpReg,
-                             tcbReg,
-                             pInfo->offsetOfGCState);
-#else // !CPU_LOAD_STORE_ARCH
-    /* mov   byte  ptr [tcbReg+offsetOfGcState], 0 */
-
-    getEmitter()->emitIns_I_AR (ins_Store(TYP_BYTE),
-                              EA_1BYTE,
-                              0,
-                              tcbReg,
-                              pInfo->offsetOfGCState);
-#endif // !CPU_LOAD_STORE_ARCH
-
-    return tcbReg;
-}
-
-/*****************************************************************************
- *
-   First we have to mark in the hoisted NDirect stub that we are back
-   in managed code. Then we have to check (a global flag) whether GC is
-   pending or not. If so, we just call into a jit-helper.
-   Right now we have this call always inlined, i.e. we always skip around
-   the jit-helper call.
-   Note:
-   The tcb address is a regular local (initialized in the prolog), so it is either
-   enregistered or in the frame:
-
-        tcb_reg = [tcb_address is enregistered] OR [mov ecx, tcb_address]
-        mov  byte ptr[tcb_reg+offsetOfGcState], 1
-        cmp  'global GC pending flag', 0
-        je   @f
-        [mov  ECX, tcb_reg]  OR [ecx was setup above]     ; we pass the tcb value to callGC
-        [mov  [EBP+spill_area+0], eax]                    ; spill the int  return value if any
-        [mov  [EBP+spill_area+4], edx]                    ; spill the long return value if any
-        call @callGC
-        [mov  eax, [EBP+spill_area+0] ]                   ; reload the int  return value if any
-        [mov  edx, [EBP+spill_area+4] ]                   ; reload the long return value if any
-    @f:
- */
-
-void                CodeGen::genPInvokeCallEpilog(LclVarDsc *  frameListRoot,
-                                                  regMaskTP    retVal)
-{
-    BasicBlock  *       clab_nostop;
-    CORINFO_EE_INFO *   pInfo = compiler->eeGetEEInfo();
-    regNumber           reg2;
-    regNumber           reg3;
-#ifdef _TARGET_ARM_
-        reg3 = REG_R3;
-#else
-        reg3 = REG_EDX;
-#endif
-#ifdef _TARGET_AMD64_
-    TempDsc * retTmp = NULL;
-#endif
-
-    getEmitter()->emitDisableRandomNops();
-
-    if (frameListRoot->lvRegister)
-    {
-        /* make sure that register is live across the call */
-
-        reg2 = frameListRoot->lvRegNum;
-        noway_assert(genRegMask(reg2) & RBM_INT_CALLEE_SAVED);
-    }
-    else
-    {
-        /* mov   reg2, dword ptr [tcb address]    */
-#ifdef _TARGET_ARM_
-        reg2 = REG_R2;
-#else
-        reg2 = REG_ECX;
-#endif
-
-        getEmitter()->emitIns_R_S  (ins_Load(TYP_I_IMPL),
-                                  EA_PTRSIZE,
-                                  reg2,
-                                  (unsigned)(frameListRoot - compiler->lvaTable),
-                                  0);
-        regTracker.rsTrackRegTrash(reg2);
-    }
-
-
-#ifdef _TARGET_ARM_
-    /* mov   r3, 1 */
-    /* strb  [r2+offsetOfGcState], r3 */
-    instGen_Set_Reg_To_Imm(EA_PTRSIZE, reg3, 1);
-    getEmitter()->emitIns_AR_R (ins_Store(TYP_BYTE),
-                              EA_1BYTE,
-                              reg3,
-                              reg2,
-                              pInfo->offsetOfGCState);
-#else
-    /* mov   byte ptr [tcb+offsetOfGcState], 1 */
-    getEmitter()->emitIns_I_AR (ins_Store(TYP_BYTE),
-                              EA_1BYTE,
-                              1,
-                              reg2,
-                              pInfo->offsetOfGCState);
-#endif
-
-    /* test global flag (we return to managed code) */
-
-    LONG * addrOfCaptureThreadGlobal, **pAddrOfCaptureThreadGlobal;
-
-    addrOfCaptureThreadGlobal = compiler->info.compCompHnd->getAddrOfCaptureThreadGlobal((void**) &pAddrOfCaptureThreadGlobal);
-    noway_assert((!addrOfCaptureThreadGlobal) != (!pAddrOfCaptureThreadGlobal));
-
-    // Can we directly use addrOfCaptureThreadGlobal?
-
-    if (addrOfCaptureThreadGlobal)
-    {
-#ifdef _TARGET_ARM_
-        instGen_Set_Reg_To_Imm (EA_HANDLE_CNS_RELOC,
-                                reg3,
-                                (ssize_t)addrOfCaptureThreadGlobal);
-        getEmitter()->emitIns_R_R_I (ins_Load(TYP_INT),
-                                   EA_4BYTE,
-                                   reg3,
-                                   reg3,
-                                   0);
-        regTracker.rsTrackRegTrash(reg3);
-        getEmitter()->emitIns_R_I (INS_cmp,
-                                 EA_4BYTE,
-                                 reg3,
-                                 0);
-#elif defined(_TARGET_AMD64_)
-
-        if (IMAGE_REL_BASED_REL32 != compiler->eeGetRelocTypeHint(addrOfCaptureThreadGlobal))
-        {
-            instGen_Set_Reg_To_Imm(EA_HANDLE_CNS_RELOC, reg3, (ssize_t)addrOfCaptureThreadGlobal);
-
-            getEmitter()->emitIns_I_AR(INS_cmp, EA_4BYTE, 0, reg3, 0);
-        }
-        else
-        {
-            getEmitter()->emitIns_I_AI(INS_cmp, EA_4BYTE_DSP_RELOC, 0, (ssize_t)addrOfCaptureThreadGlobal);
-        }
-
-#else
-        getEmitter()->emitIns_C_I  (INS_cmp,
-                                  EA_PTR_DSP_RELOC,
-                                  FLD_GLOBAL_DS,
-                                  (ssize_t) addrOfCaptureThreadGlobal,
-                                  0);
-#endif
-    }
-    else
-    {
-#ifdef _TARGET_ARM_
-        instGen_Set_Reg_To_Imm (EA_HANDLE_CNS_RELOC,
-                                reg3,
-                                (ssize_t)pAddrOfCaptureThreadGlobal);
-        getEmitter()->emitIns_R_R_I (ins_Load(TYP_INT),
-                                   EA_4BYTE,
-                                   reg3,
-                                   reg3,
-                                   0);
-        regTracker.rsTrackRegTrash(reg3);
-        getEmitter()->emitIns_R_R_I (ins_Load(TYP_INT),
-                                   EA_4BYTE,
-                                   reg3,
-                                   reg3,
-                                   0);
-        getEmitter()->emitIns_R_I (INS_cmp,
-                                 EA_4BYTE,
-                                 reg3,
-                                 0);
-#else // !_TARGET_ARM_
-
-#ifdef _TARGET_AMD64_
-        if (IMAGE_REL_BASED_REL32 != compiler->eeGetRelocTypeHint(pAddrOfCaptureThreadGlobal))
-        {
-            instGen_Set_Reg_To_Imm(EA_PTR_DSP_RELOC, REG_ECX, (ssize_t)pAddrOfCaptureThreadGlobal);
-            getEmitter()->emitIns_R_AR(ins_Load(TYP_I_IMPL), EA_PTRSIZE, REG_ECX, REG_ECX, 0);
-            regTracker.rsTrackRegTrash(REG_ECX);
-        }
-        else
-#endif // _TARGET_AMD64_
-        {
-            getEmitter()->emitIns_R_AI(ins_Load(TYP_I_IMPL), EA_PTR_DSP_RELOC, REG_ECX,
-                                     (ssize_t)pAddrOfCaptureThreadGlobal);
-            regTracker.rsTrackRegTrash(REG_ECX);
-        }
-
-        getEmitter()->emitIns_I_AR(INS_cmp, EA_4BYTE, 0, REG_ECX, 0);
-#endif // !_TARGET_ARM_
-    }
-
-    /* */
-    clab_nostop = genCreateTempLabel();
-
-    /* Generate the conditional jump */
-    emitJumpKind jmpEqual = genJumpKindForOper(GT_EQ, CK_SIGNED);
-    inst_JMP(jmpEqual, clab_nostop);
-
-#ifdef _TARGET_ARM_
-    // The helper preserves the return value on ARM
-#else
-    /* save return value (if necessary) */
-    if  (retVal != RBM_NONE)
-    {
-        if (retVal == RBM_INTRET || retVal == RBM_LNGRET)
-        {
-#ifdef _TARGET_AMD64_
-            retTmp = compiler->tmpGetTemp(TYP_LONG);
-            inst_ST_RV(INS_mov, retTmp, 0, REG_INTRET, TYP_LONG);
-#elif defined(_TARGET_X86_)
-            /* push eax */
-
-            inst_RV(INS_push, REG_INTRET, TYP_INT);
-
-            if (retVal == RBM_LNGRET)
-            {
-                /* push edx */
-
-                inst_RV(INS_push, REG_EDX, TYP_INT);
-            }
-#endif // _TARGET_AMD64_
-        }
-    }
-#endif
-
-    /* emit the call to the EE-helper that stops for GC (or other reasons) */
-
-    genEmitHelperCall(CORINFO_HELP_STOP_FOR_GC,
-                      0,             /* argSize */
-                      EA_UNKNOWN);   /* retSize */
-
-#ifdef _TARGET_ARM_
-    // The helper preserves the return value on ARM
-#else
-    /* restore return value (if necessary) */
-
-    if  (retVal != RBM_NONE)
-    {
-        if (retVal == RBM_INTRET || retVal == RBM_LNGRET)
-        {
-#ifdef _TARGET_AMD64_
-
-            assert(retTmp != NULL);
-            inst_RV_ST(INS_mov, REG_INTRET, retTmp, 0, TYP_LONG);
-            regTracker.rsTrackRegTrash(REG_INTRET);
-            compiler->tmpRlsTemp(retTmp);
-
-#elif defined(_TARGET_X86_)
-            if (retVal == RBM_LNGRET)
-            {
-                /* pop edx */
-
-                inst_RV(INS_pop, REG_EDX, TYP_INT);
-                regTracker.rsTrackRegTrash(REG_EDX);
-            }
-
-            /* pop eax */
-
-            inst_RV(INS_pop, REG_INTRET, TYP_INT);
-            regTracker.rsTrackRegTrash(REG_INTRET);
-#endif // _TARGET_AMD64_
-        }
-    }
-#endif
-
-    /* genCondJump() closes the current emitter block */
-
-    genDefineTempLabel(clab_nostop);
-
-    // This marks the InlinedCallFrame as "inactive".  In fully interruptible code, this is not atomic with
-    // the above code.  So the process is:
-    // 1) Return to cooperative mode
-    // 2) Check to see if we need to stop for GC
-    // 3) Return from the p/invoke (as far as the stack walker is concerned).
-
-    /* mov  dword ptr [frame.callSiteTracker], 0 */
-
-    instGen_Store_Imm_Into_Lcl(TYP_I_IMPL, EA_PTRSIZE, 0,
-                              compiler->lvaInlinedPInvokeFrameVar,
-                              pInfo->inlinedCallFrameInfo.offsetOfReturnAddress);
-
-    getEmitter()->emitEnableRandomNops();
-}
-
-#endif // LEGACY_BACKEND
-
-/*****************************************************************************/
-#endif // INLINE_NDIRECT
-
 #if STACK_PROBES
 void CodeGen::genGenerateStackProbe()
 {
@@ -11532,6 +10510,72 @@ instruction CodeGen::genMapShiftInsToShiftByConstantIns(instruction ins, int shi
 
 #endif // _TARGET_XARCH_
 
+#if !defined(LEGACY_BACKEND) && (defined(_TARGET_XARCH_) || defined(_TARGET_ARM64_))
+
+//------------------------------------------------------------------------------------------------ //
+// getFirstArgWithStackSlot - returns the first argument with stack slot on the caller's frame.
+//
+// Return value:
+//    The number of the first argument with stack slot on the caller's frame.
+//
+// Note:
+//    On x64 Windows the caller always creates slots (homing space) in its frame for the
+//    first 4 arguments of a callee (register passed args). So, the the variable number
+//    (lclNum) for the first argument with a stack slot is always 0.
+//    For System V systems or arm64, there is no such calling convention requirement, and the code needs to find
+//    the first stack passed argument from the caller. This is done by iterating over
+//    all the lvParam variables and finding the first with lvArgReg equals to REG_STK.
+//
+unsigned
+CodeGen::getFirstArgWithStackSlot()
+{
+#if defined(FEATURE_UNIX_AMD64_STRUCT_PASSING) || defined(_TARGET_ARM64_)
+    unsigned baseVarNum = 0;
+#if defined(FEATURE_UNIX_AMR64_STRUCT_PASSING)
+    baseVarNum = compiler->lvaFirstStackIncomingArgNum;
+
+    if (compiler->lvaFirstStackIncomingArgNum != BAD_VAR_NUM)
+    {
+        baseVarNum = compiler->lvaFirstStackIncomingArgNum;
+    }
+    else
+#endif // FEATURE_UNIX_ARM64_STRUCT_PASSING
+    {
+        // Iterate over all the local variables in the Lcl var table.
+        // They contain all the implicit arguments - thisPtr, retBuf,
+        // generic context, PInvoke cookie, var arg cookie,no-standard args, etc.
+        LclVarDsc* varDsc = nullptr;
+        for (unsigned i = 0; i < compiler->info.compArgsCount; i++)
+        {
+            varDsc = &(compiler->lvaTable[i]);
+
+            // We are iterating over the arguments only.
+            assert(varDsc->lvIsParam);
+
+            if (varDsc->lvArgReg == REG_STK)
+            {
+                baseVarNum = i;
+#if defined(FEATURE_UNIX_AMR64_STRUCT_PASSING)
+                compiler->lvaFirstStackIncomingArgNum = baseVarNum;
+#endif // FEATURE_UNIX_ARM64_STRUCT_PASSING
+                break;
+            }
+        }
+        assert(varDsc != nullptr);
+    }
+
+    return baseVarNum;
+#elif defined(_TARGET_AMD64_)
+    return 0;
+#else
+    // Not implemented for x86.
+    NYI_X86("getFirstArgWithStackSlot not yet implemented for x86.");
+    return BAD_VAR_NUM;
+#endif // FEATURE_UNIX_AMD64_STRUCT_PASSING || _TARGET_ARM64_
+}
+
+#endif // !LEGACY_BACKEND && (_TARGET_XARCH_ || _TARGET_ARM64_)
+
 /*****************************************************************************/
 #ifdef DEBUGGING_SUPPORT
 
index 2b34af8..93a1956 100644 (file)
@@ -5341,8 +5341,6 @@ void                CodeGen::genCodeForTreeLeaf_GT_JMP(GenTreePtr tree)
     }
 #endif // PROFILING_SUPPORTED
 
-#if INLINE_NDIRECT
-
     /* This code is cloned from the regular processing of GT_RETURN values.  We have to remember to
      * call genPInvokeMethodEpilog anywhere that we have a method return.  We should really
      * generate trees for the PInvoke prolog and epilog so we can remove these special cases.
@@ -5353,8 +5351,6 @@ void                CodeGen::genCodeForTreeLeaf_GT_JMP(GenTreePtr tree)
         genPInvokeMethodEpilog();
     }
 
-#endif
-
     // Make sure register arguments are in their initial registers
     // and stack arguments are put back as well.
     //
@@ -7170,7 +7166,7 @@ DONE_LEA_ADD:
         {
             /* Get the temp we spilled into. */
 
-            TempDsc * temp = regSet.rsUnspillInPlace(op1);
+            TempDsc * temp = regSet.rsUnspillInPlace(op1, op1->gtRegNum);
 
             /* For 8bit operations, we need to make sure that op2 is
                in a byte-addressable registers */
@@ -9800,8 +9796,6 @@ void                CodeGen::genCodeForTreeSmpOp(GenTreePtr tree,
 
         case GT_RETURN:
 
-#if INLINE_NDIRECT
-
             // TODO: this should be done AFTER we called exit mon so that
             //       we are sure that we don't have to keep 'this' alive
 
@@ -9814,8 +9808,6 @@ void                CodeGen::genCodeForTreeSmpOp(GenTreePtr tree,
                 genPInvokeMethodEpilog();
             }
 
-#endif
-
             /* Is there a return value and/or an exit statement? */
 
             if  (op1)
@@ -12626,15 +12618,13 @@ void                CodeGen::genCodeForBBlist()
         regSet.rsSetRegsModified(RBM_INT_CALLEE_SAVED & ~RBM_FPBASE);
     }
 
-#if INLINE_NDIRECT
     /* If we have any pinvoke calls, we might potentially trash everything */
 
-    if  (compiler->info.compCallUnmanaged)
+    if (compiler->info.compCallUnmanaged)
     {
         noway_assert(isFramePointerUsed());  // Setup of Pinvoke frame currently requires an EBP style frame
         regSet.rsSetRegsModified(RBM_INT_CALLEE_SAVED & ~RBM_FPBASE);
     }
-#endif // INLINE_NDIRECT
 
     /* Initialize the pointer tracking code */
 
@@ -15361,7 +15351,6 @@ USE_SAR_FOR_CAST:
 
         case GT_RETURN:
 
-#if INLINE_NDIRECT
             /* TODO: 
              * This code is cloned from the regular processing of GT_RETURN values.  We have to remember to
              * call genPInvokeMethodEpilog anywhere that we have a GT_RETURN statement.  We should really
@@ -15380,8 +15369,6 @@ USE_SAR_FOR_CAST:
                 genPInvokeMethodEpilog();
             }
 
-#endif
-
 #if CPU_LONG_USES_REGPAIR
             /* There must be a long return value */
 
@@ -15787,7 +15774,6 @@ void                CodeGen::genCodeForTreeFlt(GenTreePtr tree,
     if (tree->OperGet() == GT_RETURN)
     {
         //Make sure to get ALL THE EPILOG CODE
-#if INLINE_NDIRECT
 
         // TODO: this should be done AFTER we called exit mon so that
         //       we are sure that we don't have to keep 'this' alive
@@ -15801,8 +15787,6 @@ void                CodeGen::genCodeForTreeFlt(GenTreePtr tree,
             genPInvokeMethodEpilog();
         }
 
-#endif
-
         //The profiling hook does not trash registers, so it's safe to call after we emit the code for
         //the GT_RETURN tree.
 #ifdef PROFILING_SUPPORTED
@@ -18958,9 +18942,7 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
 
     unsigned        saveStackLvl;
 
-#if     INLINE_NDIRECT
     BasicBlock  *   returnLabel = DUMMY_INIT(NULL);
-#endif
     LclVarDsc   *   frameListRoot = NULL;
 
     unsigned        savCurIntArgReg;
@@ -19039,8 +19021,6 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
 
     argSize = 0;
 
-#if INLINE_NDIRECT
-
     /* We need to get a label for the return address with the proper stack depth. */
     /* For the callee pops case (the default) that is before the args are pushed. */
 
@@ -19049,8 +19029,6 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
     {
        returnLabel = genCreateTempLabel();
     }
-#endif
-
 
     /*
         Make sure to save the current argument register status
@@ -19070,8 +19048,6 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
         argSize += genPushArgList(call);
     }
 
-#if INLINE_NDIRECT
-
     /* We need to get a label for the return address with the proper stack depth. */
     /* For the caller pops case (cdecl) that is after the args are pushed. */
 
@@ -19083,7 +19059,6 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
         /* Make sure that we now have a label */
         noway_assert(returnLabel != DUMMY_INIT(NULL));
     }
-#endif
 
     if (callType == CT_INDIRECT)
     {
@@ -19139,14 +19114,11 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
 
     regMaskTP       spillRegs = calleeTrashedRegs & regSet.rsMaskUsed;
 
-#if     INLINE_NDIRECT
-
     /* We need to save all GC registers to the InlinedCallFrame.
        Instead, just spill them to temps. */
 
     if (call->gtFlags & GTF_CALL_UNMANAGED)
         spillRegs |= (gcInfo.gcRegGCrefSetCur|gcInfo.gcRegByrefSetCur) & regSet.rsMaskUsed;
-#endif
 
     // Ignore fptrRegs as it is needed only to perform the indirect call
 
@@ -19756,7 +19728,6 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
 #endif
             }
 
-#if INLINE_NDIRECT
             if (call->gtFlags & GTF_CALL_UNMANAGED)
             {
                 //------------------------------------------------------
@@ -19905,7 +19876,6 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
                 // Done with PInvoke calls
                 break;
             }
-#endif // INLINE_NDIRECT
 
             if  (callType == CT_INDIRECT)
             {
@@ -20542,8 +20512,6 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
     }
 #endif // _TARGET_X86_
 
-#if     INLINE_NDIRECT
-
     if (call->gtFlags & GTF_CALL_UNMANAGED)
     {
         genDefineTempLabel(returnLabel);
@@ -20593,11 +20561,10 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
             genDefineTempLabel(esp_check);
         }
     }
-#endif
 
     /* Are we supposed to pop the arguments? */
 
-#if defined(_TARGET_X86_) && defined(INLINE_NDIRECT)
+#if defined(_TARGET_X86_)
     if (call->gtFlags & GTF_CALL_UNMANAGED)
     {
         if ((compiler->opts.eeFlags & CORJIT_FLG_PINVOKE_RESTORE_ESP) ||
@@ -20637,7 +20604,7 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
             }
         }
     }
-#endif // _TARGET_X86_ && INLINE_NDIRECT
+#endif // _TARGET_X86_
 
     if  (call->gtFlags & GTF_CALL_POP_ARGS)
     {
@@ -20714,7 +20681,6 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
         noway_assert(!"unexpected/unhandled fn return type");
     }
 
-#if INLINE_NDIRECT
     // We now have to generate the "call epilog" (if it was a call to unmanaged code).
     /* if it is a call to unmanaged code, frameListRoot must be set */
 
@@ -20733,8 +20699,6 @@ regMaskTP           CodeGen::genCodeForCall(GenTreePtr  call,
         }
     }
 
-#endif  //INLINE_NDIRECT
-
 #ifdef DEBUG
     if (compiler->opts.compStackCheckOnCall
 #if defined(USE_TRANSITION_THUNKS) || defined(USE_DYNAMIC_STACK_ALIGN)
@@ -21743,8 +21707,6 @@ GenTreePtr Compiler::fgLegacyPerStatementLocalVarLiveness(GenTreePtr startNode,
                 }
             }
 
-#if INLINE_NDIRECT
-
             // If this is a p/invoke unmanaged call or if this is a tail-call
             // and we have an unmanaged p/invoke call in the method,
             // then we're going to run the p/invoke epilog.
@@ -21769,8 +21731,6 @@ GenTreePtr Compiler::fgLegacyPerStatementLocalVarLiveness(GenTreePtr startNode,
                 }
             }
 
-#endif // INLINE_NDIRECT
-
             break;
 
         default:
@@ -21808,4 +21768,999 @@ GenTreePtr Compiler::fgLegacyPerStatementLocalVarLiveness(GenTreePtr startNode,
 _return:
     return tree;
 }
+
+/*****************************************************************************/
+
+/*****************************************************************************
+ * Initialize the TCB local and the NDirect stub, afterwards "push"
+ * the hoisted NDirect stub.
+ *
+ * 'initRegs' is the set of registers which will be zeroed out by the prolog
+ *             typically initRegs is zero
+ *
+ * The layout of the NDirect Inlined Call Frame is as follows:
+ * (see VM/frames.h and VM/JITInterface.cpp for more information)
+ *
+ *   offset     field name                        when set
+ *  --------------------------------------------------------------
+ *    +00h      vptr for class InlinedCallFrame   method prolog
+ *    +04h      m_Next                            method prolog
+ *    +08h      m_Datum                           call site
+ *    +0ch      m_pCallSiteTracker (callsite ESP) call site and zeroed in method prolog
+ *    +10h      m_pCallerReturnAddress            call site
+ *    +14h      m_pCalleeSavedRegisters           not set by JIT
+ *    +18h      JIT retval spill area (int)       before call_gc
+ *    +1ch      JIT retval spill area (long)      before call_gc
+ *    +20h      Saved value of EBP                method prolog
+ */
+
+regMaskTP           CodeGen::genPInvokeMethodProlog(regMaskTP initRegs)
+{
+    assert(compiler->compGeneratingProlog);
+    noway_assert(!compiler->opts.ShouldUsePInvokeHelpers());
+    noway_assert(compiler->info.compCallUnmanaged);
+
+    CORINFO_EE_INFO * pInfo = compiler->eeGetEEInfo();
+    noway_assert(compiler->lvaInlinedPInvokeFrameVar != BAD_VAR_NUM);
+
+    /* let's find out if compLvFrameListRoot is enregistered */
+
+    LclVarDsc *     varDsc = &compiler->lvaTable[compiler->info.compLvFrameListRoot];
+
+    noway_assert(!varDsc->lvIsParam);
+    noway_assert(varDsc->lvType == TYP_I_IMPL);
+
+    DWORD threadTlsIndex, *pThreadTlsIndex;
+
+    threadTlsIndex = compiler->info.compCompHnd->getThreadTLSIndex((void**) &pThreadTlsIndex);
+#if defined(_TARGET_X86_)
+    if (threadTlsIndex == (DWORD)-1 || pInfo->osType != CORINFO_WINNT)
+#else
+    if (true)
+#endif
+    {
+        // Instead of calling GetThread(), and getting GS cookie and
+        // InlinedCallFrame vptr through indirections, we'll call only one helper.
+        // The helper takes frame address in REG_PINVOKE_FRAME, returns TCB in REG_PINVOKE_TCB
+        // and uses REG_PINVOKE_SCRATCH as scratch register.
+        getEmitter()->emitIns_R_S (INS_lea,
+                                 EA_PTRSIZE,
+                                 REG_PINVOKE_FRAME,
+                                 compiler->lvaInlinedPInvokeFrameVar,
+                                 pInfo->inlinedCallFrameInfo.offsetOfFrameVptr);
+        regTracker.rsTrackRegTrash(REG_PINVOKE_FRAME);
+
+        // We're about to trask REG_PINVOKE_TCB, it better not be in use!
+        assert((regSet.rsMaskUsed & RBM_PINVOKE_TCB) == 0);
+
+        // Don't use the argument registers (including the special argument in
+        // REG_PINVOKE_FRAME) for computing the target address.
+        regSet.rsLockReg(RBM_ARG_REGS|RBM_PINVOKE_FRAME);
+
+        genEmitHelperCall(CORINFO_HELP_INIT_PINVOKE_FRAME, 0, EA_UNKNOWN);
+
+        regSet.rsUnlockReg(RBM_ARG_REGS|RBM_PINVOKE_FRAME);
+
+        if (varDsc->lvRegister)
+        {
+            regNumber regTgt = varDsc->lvRegNum;
+
+            // we are about to initialize it. So turn the bit off in initRegs to prevent
+            // the prolog reinitializing it.
+            initRegs &= ~genRegMask(regTgt);
+
+            if (regTgt != REG_PINVOKE_TCB)
+            {
+                // move TCB to the its register if necessary
+                getEmitter()->emitIns_R_R(INS_mov, EA_PTRSIZE, regTgt, REG_PINVOKE_TCB);
+                regTracker.rsTrackRegTrash(regTgt);
+            }
+        }
+        else
+        {
+            // move TCB to its stack location
+            getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
+                                     EA_PTRSIZE,
+                                     REG_PINVOKE_TCB,
+                                     compiler->info.compLvFrameListRoot,
+                                     0);
+        }
+
+        // We are done, the rest of this function deals with the inlined case.
+        return initRegs;
+    }
+
+    regNumber      regTCB;
+
+    if (varDsc->lvRegister)
+    {
+        regTCB = varDsc->lvRegNum;
+
+        // we are about to initialize it. So turn the bit off in initRegs to prevent
+        // the prolog reinitializing it.
+        initRegs &= ~genRegMask(regTCB);
+    }
+    else // varDsc is allocated on the Stack
+    {
+        regTCB = REG_PINVOKE_TCB;
+    }
+
+    /* get TCB,  mov reg, FS:[compiler->info.compEEInfo.threadTlsIndex] */
+
+    // TODO-ARM-CQ: should we inline TlsGetValue here?
+#if !defined(_TARGET_ARM_) && !defined(_TARGET_AMD64_)
+#define WIN_NT_TLS_OFFSET (0xE10)
+#define WIN_NT5_TLS_HIGHOFFSET (0xf94)
+
+    if (threadTlsIndex < 64)
+    {
+        //  mov  reg, FS:[0xE10+threadTlsIndex*4]
+        getEmitter()->emitIns_R_C (ins_Load(TYP_I_IMPL),
+                                 EA_PTRSIZE,
+                                 regTCB,
+                                 FLD_GLOBAL_FS,
+                                 WIN_NT_TLS_OFFSET + threadTlsIndex * sizeof(int));
+        regTracker.rsTrackRegTrash(regTCB);
+    }
+    else
+    {
+        noway_assert(pInfo->osMajor >= 5);
+
+        DWORD basePtr   = WIN_NT5_TLS_HIGHOFFSET;
+        threadTlsIndex -= 64;
+
+        // mov reg, FS:[0x2c] or mov reg, fs:[0xf94]
+        // mov reg, [reg+threadTlsIndex*4]
+
+        getEmitter()->emitIns_R_C (ins_Load(TYP_I_IMPL),
+                                 EA_PTRSIZE,
+                                 regTCB,
+                                 FLD_GLOBAL_FS,
+                                 basePtr);
+        getEmitter()->emitIns_R_AR(ins_Load(TYP_I_IMPL),
+                                 EA_PTRSIZE,
+                                 regTCB,
+                                 regTCB,
+                                 threadTlsIndex*sizeof(int));
+        regTracker.rsTrackRegTrash(regTCB);
+    }
+#endif
+
+    /* save TCB in local var if not enregistered */
+
+    if (!varDsc->lvRegister)
+    {
+        getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
+                                 EA_PTRSIZE,
+                                 regTCB,
+                                 compiler->info.compLvFrameListRoot,
+                                 0);
+    }
+
+    /* set frame's vptr */
+
+    const void * inlinedCallFrameVptr, **pInlinedCallFrameVptr;
+    inlinedCallFrameVptr = compiler->info.compCompHnd->getInlinedCallFrameVptr((void**) &pInlinedCallFrameVptr);
+    noway_assert(inlinedCallFrameVptr != NULL); // if we have the TLS index, vptr must also be known
+
+    instGen_Store_Imm_Into_Lcl(TYP_I_IMPL, EA_HANDLE_CNS_RELOC, (ssize_t) inlinedCallFrameVptr,
+                               compiler->lvaInlinedPInvokeFrameVar, 
+                               pInfo->inlinedCallFrameInfo.offsetOfFrameVptr,
+                               REG_PINVOKE_SCRATCH);
+
+    // Set the GSCookie
+    GSCookie gsCookie, * pGSCookie;
+    compiler->info.compCompHnd->getGSCookie(&gsCookie, &pGSCookie);
+    noway_assert(gsCookie != 0); // if we have the TLS index, GS cookie must also be known
+
+    instGen_Store_Imm_Into_Lcl(TYP_I_IMPL, EA_PTRSIZE, (ssize_t) gsCookie,
+                               compiler->lvaInlinedPInvokeFrameVar,
+                               pInfo->inlinedCallFrameInfo.offsetOfGSCookie,
+                               REG_PINVOKE_SCRATCH);
+
+    /* Get current frame root (mov reg2, [reg+offsetOfThreadFrame]) and
+       set next field in frame */
+
+    getEmitter()->emitIns_R_AR (ins_Load(TYP_I_IMPL),
+                              EA_PTRSIZE,
+                              REG_PINVOKE_SCRATCH,
+                              regTCB,
+                              pInfo->offsetOfThreadFrame);
+    regTracker.rsTrackRegTrash(REG_PINVOKE_SCRATCH);
+
+    getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
+                             EA_PTRSIZE,
+                             REG_PINVOKE_SCRATCH,
+                             compiler->lvaInlinedPInvokeFrameVar,
+                             pInfo->inlinedCallFrameInfo.offsetOfFrameLink);
+
+    noway_assert(isFramePointerUsed());  // Setup of Pinvoke frame currently requires an EBP style frame
+
+    /* set EBP value in frame */
+    getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
+                             EA_PTRSIZE,
+                             genFramePointerReg(),
+                             compiler->lvaInlinedPInvokeFrameVar,
+                             pInfo->inlinedCallFrameInfo.offsetOfCalleeSavedFP);
+
+    /* reset track field in frame */
+    instGen_Store_Imm_Into_Lcl(TYP_I_IMPL, EA_PTRSIZE, 0,
+                               compiler->lvaInlinedPInvokeFrameVar,
+                               pInfo->inlinedCallFrameInfo.offsetOfReturnAddress,
+                               REG_PINVOKE_SCRATCH);
+
+    /* get address of our frame */
+
+    getEmitter()->emitIns_R_S (INS_lea,
+                             EA_PTRSIZE,
+                             REG_PINVOKE_SCRATCH,
+                             compiler->lvaInlinedPInvokeFrameVar,
+                             pInfo->inlinedCallFrameInfo.offsetOfFrameVptr);
+    regTracker.rsTrackRegTrash(REG_PINVOKE_SCRATCH);
+
+    /* now "push" our N/direct frame */
+
+    getEmitter()->emitIns_AR_R (ins_Store(TYP_I_IMPL),
+                              EA_PTRSIZE,
+                              REG_PINVOKE_SCRATCH,
+                              regTCB,
+                              pInfo->offsetOfThreadFrame);
+
+    return initRegs;
+}
+
+
+/*****************************************************************************
+ *  Unchain the InlinedCallFrame.
+ *  Technically, this is not part of the epilog; it is called when we are generating code for a GT_RETURN node
+ *  or tail call.
+ */
+void                CodeGen::genPInvokeMethodEpilog()
+{
+    noway_assert(compiler->info.compCallUnmanaged);
+    noway_assert(!compiler->opts.ShouldUsePInvokeHelpers());
+    noway_assert(compiler->compCurBB == compiler->genReturnBB ||
+                 (compiler->compTailCallUsed && (compiler->compCurBB->bbJumpKind == BBJ_THROW)) ||
+                 (compiler->compJmpOpUsed && (compiler->compCurBB->bbFlags & BBF_HAS_JMP)));
+
+    CORINFO_EE_INFO *   pInfo = compiler->eeGetEEInfo();
+    noway_assert(compiler->lvaInlinedPInvokeFrameVar != BAD_VAR_NUM);
+
+    getEmitter()->emitDisableRandomNops();
+    //debug check to make sure that we're not using ESI and/or EDI across this call, except for
+    //compLvFrameListRoot.
+    unsigned regTrashCheck = 0;
+
+    /* XXX Tue 5/29/2007
+     * We explicitly add interference for these in CodeGen::rgPredictRegUse.  If you change the code
+     * sequence or registers used, make sure to update the interference for compiler->genReturnLocal.
+     */
+    LclVarDsc   *       varDsc = &compiler->lvaTable[compiler->info.compLvFrameListRoot];
+    regNumber           reg;
+    regNumber           reg2 = REG_PINVOKE_FRAME;
+
+
+    //
+    // Two cases for epilog invocation:
+    //
+    // 1. Return
+    //    We can trash the ESI/EDI registers.
+    //
+    // 2. Tail call
+    //    When tail called, we'd like to preserve enregistered args,
+    //    in ESI/EDI so we can pass it to the callee.
+    //
+    // For ARM, don't modify SP for storing and restoring the TCB/frame registers.
+    // Instead use the reserved local variable slot.
+    //
+    if (compiler->compCurBB->bbFlags & BBF_HAS_JMP)
+    {
+        if (compiler->rpMaskPInvokeEpilogIntf & RBM_PINVOKE_TCB)
+        {
+#if FEATURE_FIXED_OUT_ARGS
+            // Save the register in the reserved local var slot.
+            getEmitter()->emitIns_S_R(ins_Store(TYP_I_IMPL), EA_PTRSIZE, REG_PINVOKE_TCB, compiler->lvaPInvokeFrameRegSaveVar, 0);
+#else
+            inst_RV(INS_push, REG_PINVOKE_TCB, TYP_I_IMPL);
+#endif
+        }
+        if (compiler->rpMaskPInvokeEpilogIntf & RBM_PINVOKE_FRAME)
+        {
+#if FEATURE_FIXED_OUT_ARGS
+            // Save the register in the reserved local var slot.
+            getEmitter()->emitIns_S_R(ins_Store(TYP_I_IMPL), EA_PTRSIZE, REG_PINVOKE_FRAME, compiler->lvaPInvokeFrameRegSaveVar, REGSIZE_BYTES);
+#else
+            inst_RV(INS_push, REG_PINVOKE_FRAME, TYP_I_IMPL);
+#endif
+        }
+    }
+
+    if (varDsc->lvRegister)
+    {
+        reg = varDsc->lvRegNum;
+        if (reg == reg2)
+            reg2 = REG_PINVOKE_TCB;
+
+        regTrashCheck |= genRegMask(reg2);
+    }
+    else
+    {
+        /* mov esi, [tcb address]    */
+
+        getEmitter()->emitIns_R_S (ins_Load(TYP_I_IMPL),
+                                 EA_PTRSIZE,
+                                 REG_PINVOKE_TCB,
+                                 compiler->info.compLvFrameListRoot,
+                                 0);
+        regTracker.rsTrackRegTrash(REG_PINVOKE_TCB);
+        reg = REG_PINVOKE_TCB;
+
+        regTrashCheck = RBM_PINVOKE_TCB | RBM_PINVOKE_FRAME;
+    }
+
+    /* mov edi, [ebp-frame.next] */
+
+    getEmitter()->emitIns_R_S  (ins_Load(TYP_I_IMPL),
+                              EA_PTRSIZE,
+                              reg2,
+                              compiler->lvaInlinedPInvokeFrameVar,
+                              pInfo->inlinedCallFrameInfo.offsetOfFrameLink);
+    regTracker.rsTrackRegTrash(reg2);
+
+    /* mov [esi+offsetOfThreadFrame], edi */
+
+    getEmitter()->emitIns_AR_R (ins_Store(TYP_I_IMPL),
+                              EA_PTRSIZE,
+                              reg2,
+                              reg,
+                              pInfo->offsetOfThreadFrame);
+
+    noway_assert(!(regSet.rsMaskUsed & regTrashCheck));
+
+    if (compiler->genReturnLocal != BAD_VAR_NUM &&
+        compiler->lvaTable[compiler->genReturnLocal].lvTracked &&
+        compiler->lvaTable[compiler->genReturnLocal].lvRegister)
+    {
+        //really make sure we're not clobbering compiler->genReturnLocal.
+        noway_assert(!(genRegMask(compiler->lvaTable[compiler->genReturnLocal].lvRegNum)
+                       & ( (varDsc->lvRegister ? genRegMask(varDsc->lvRegNum) : 0)
+                           | RBM_PINVOKE_TCB | RBM_PINVOKE_FRAME)));
+    }
+
+    (void)regTrashCheck;
+
+    // Restore the registers ESI and EDI.
+    if (compiler->compCurBB->bbFlags & BBF_HAS_JMP)
+    {
+        if (compiler->rpMaskPInvokeEpilogIntf & RBM_PINVOKE_FRAME)
+        {
+#if FEATURE_FIXED_OUT_ARGS
+            // Restore the register from the reserved local var slot.
+            getEmitter()->emitIns_R_S(ins_Load(TYP_I_IMPL), EA_PTRSIZE, REG_PINVOKE_FRAME, compiler->lvaPInvokeFrameRegSaveVar, REGSIZE_BYTES);
+#else
+            inst_RV(INS_pop, REG_PINVOKE_FRAME, TYP_I_IMPL);
+#endif
+            regTracker.rsTrackRegTrash(REG_PINVOKE_FRAME);
+        }
+        if (compiler->rpMaskPInvokeEpilogIntf & RBM_PINVOKE_TCB)
+        {
+#if FEATURE_FIXED_OUT_ARGS
+            // Restore the register from the reserved local var slot.
+            getEmitter()->emitIns_R_S(ins_Load(TYP_I_IMPL), EA_PTRSIZE, REG_PINVOKE_TCB, compiler->lvaPInvokeFrameRegSaveVar, 0);
+#else
+            inst_RV(INS_pop, REG_PINVOKE_TCB, TYP_I_IMPL);
+#endif
+            regTracker.rsTrackRegTrash(REG_PINVOKE_TCB);
+        }
+    }
+    getEmitter()->emitEnableRandomNops();
+}
+
+
+/*****************************************************************************
+    This function emits the call-site prolog for direct calls to unmanaged code.
+    It does all the necessary setup of the InlinedCallFrame.
+    frameListRoot specifies the local containing the thread control block.
+    argSize or methodToken is the value to be copied into the m_datum
+            field of the frame (methodToken may be indirected & have a reloc)
+    The function returns  the register now containing the thread control block,
+    (it could be either enregistered or loaded into one of the scratch registers)
+*/
+
+regNumber          CodeGen::genPInvokeCallProlog(LclVarDsc*            frameListRoot,
+                                                  int                   argSize,
+                                                  CORINFO_METHOD_HANDLE methodToken,
+                                                  BasicBlock*           returnLabel)
+{
+    // Some stack locals might be 'cached' in registers, we need to trash them
+    // from the regTracker *and* also ensure the gc tracker does not consider
+    // them live (see the next assert).  However, they might be live reg vars
+    // that are non-pointers CSE'd from pointers.
+    // That means the register will be live in rsMaskVars, so we can't just
+    // call gcMarkSetNpt().
+    {
+        regMaskTP deadRegs = regTracker.rsTrashRegsForGCInterruptability() & ~RBM_ARG_REGS;
+        gcInfo.gcRegGCrefSetCur &= ~deadRegs;
+        gcInfo.gcRegByrefSetCur &= ~deadRegs;
+
+#ifdef DEBUG
+        deadRegs &= regSet.rsMaskVars;
+        if (deadRegs)
+        {
+            for (LclVarDsc * varDsc = compiler->lvaTable;
+                 ((varDsc < (compiler->lvaTable + compiler->lvaCount)) && deadRegs);
+                 varDsc++ )
+            {
+                if (!varDsc->lvTracked || !varDsc->lvRegister)
+                    continue;
+
+                if (!VarSetOps::IsMember(compiler, compiler->compCurLife, varDsc->lvVarIndex))
+                    continue;
+
+                regMaskTP varRegMask = genRegMask(varDsc->lvRegNum);
+                if (isRegPairType(varDsc->lvType) && varDsc->lvOtherReg != REG_STK)
+                    varRegMask |= genRegMask(varDsc->lvOtherReg);
+
+                if (varRegMask & deadRegs)
+                {
+                    // We found the enregistered var that should not be live if it
+                    // was a GC pointer.
+                    noway_assert(!varTypeIsGC(varDsc));
+                    deadRegs &= ~varRegMask;
+                }
+            }
+        }
+#endif // DEBUG
+    }
+
+    /* Since we are using the InlinedCallFrame, we should have spilled all
+       GC pointers to it - even from callee-saved registers */
+
+    noway_assert(((gcInfo.gcRegGCrefSetCur|gcInfo.gcRegByrefSetCur) & ~RBM_ARG_REGS) == 0);
+
+    /* must specify only one of these parameters */
+    noway_assert((argSize == 0) || (methodToken == NULL));
+
+    /* We are about to call unmanaged code directly.
+       Before we can do that we have to emit the following sequence:
+
+       mov  dword ptr [frame.callTarget], MethodToken
+       mov  dword ptr [frame.callSiteTracker], esp
+       mov  reg, dword ptr [tcb_address]
+       mov  byte  ptr [tcb+offsetOfGcState], 0
+
+     */
+
+    CORINFO_EE_INFO * pInfo = compiler->eeGetEEInfo();
+
+    noway_assert(compiler->lvaInlinedPInvokeFrameVar != BAD_VAR_NUM);
+    
+    /* mov   dword ptr [frame.callSiteTarget], value */
+
+    if (methodToken == NULL)
+    {
+        /* mov   dword ptr [frame.callSiteTarget], argSize */
+        instGen_Store_Imm_Into_Lcl(TYP_INT, EA_4BYTE, argSize,
+                                   compiler->lvaInlinedPInvokeFrameVar,
+                                   pInfo->inlinedCallFrameInfo.offsetOfCallTarget);
+    }
+    else
+    {
+        void * embedMethHnd, * pEmbedMethHnd;
+
+        embedMethHnd = (void*)compiler->info.compCompHnd->embedMethodHandle(
+                                          methodToken,
+                                          &pEmbedMethHnd);
+
+        noway_assert((!embedMethHnd) != (!pEmbedMethHnd));
+
+        if (embedMethHnd != NULL)
+        {
+            /* mov   dword ptr [frame.callSiteTarget], "MethodDesc" */
+
+            instGen_Store_Imm_Into_Lcl(TYP_I_IMPL, EA_HANDLE_CNS_RELOC, (ssize_t) embedMethHnd,
+                                      compiler->lvaInlinedPInvokeFrameVar,
+                                      pInfo->inlinedCallFrameInfo.offsetOfCallTarget);
+        }
+        else
+        {
+            /* mov   reg, dword ptr [MethodDescIndir]
+               mov   dword ptr [frame.callSiteTarget], reg */
+
+            regNumber reg = regSet.rsPickFreeReg();
+
+#if CPU_LOAD_STORE_ARCH
+            instGen_Set_Reg_To_Imm (EA_HANDLE_CNS_RELOC,
+                                    reg,
+                                    (ssize_t) pEmbedMethHnd);
+            getEmitter()->emitIns_R_AR(ins_Load(TYP_I_IMPL), EA_PTRSIZE, reg, reg, 0);
+#else // !CPU_LOAD_STORE_ARCH
+#ifdef _TARGET_AMD64_
+            if (reg != REG_RAX)
+            {
+                instGen_Set_Reg_To_Imm (EA_HANDLE_CNS_RELOC,
+                                        reg,
+                                        (ssize_t) pEmbedMethHnd);
+                getEmitter()->emitIns_R_AR(ins_Load(TYP_I_IMPL), EA_PTRSIZE, reg, reg, 0);
+            }
+            else
+#endif // _TARGET_AMD64_
+            {
+                getEmitter()->emitIns_R_AI(ins_Load(TYP_I_IMPL), EA_PTR_DSP_RELOC,
+                                         reg, (ssize_t) pEmbedMethHnd);
+            }
+#endif // !CPU_LOAD_STORE_ARCH
+            regTracker.rsTrackRegTrash(reg);
+            getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
+                                     EA_PTRSIZE,
+                                     reg,
+                                     compiler->lvaInlinedPInvokeFrameVar,
+                                     pInfo->inlinedCallFrameInfo.offsetOfCallTarget);
+        }
+    }
+
+    regNumber tcbReg = REG_NA;
+
+    if (frameListRoot->lvRegister)
+    {
+        tcbReg = frameListRoot->lvRegNum;
+    }
+    else
+    {
+        tcbReg = regSet.rsGrabReg(RBM_ALLINT);
+
+        /* mov reg, dword ptr [tcb address]    */
+
+        getEmitter()->emitIns_R_S  (ins_Load(TYP_I_IMPL),
+                                  EA_PTRSIZE,
+                                  tcbReg,
+                                  (unsigned)(frameListRoot - compiler->lvaTable),
+                                  0);
+        regTracker.rsTrackRegTrash(tcbReg);
+    }
+
+#ifdef _TARGET_X86_
+    /* mov   dword ptr [frame.callSiteTracker], esp */
+
+    getEmitter()->emitIns_S_R  (ins_Store(TYP_I_IMPL),
+                              EA_PTRSIZE,
+                              REG_SPBASE,
+                              compiler->lvaInlinedPInvokeFrameVar,
+                              pInfo->inlinedCallFrameInfo.offsetOfCallSiteSP);
+#endif // _TARGET_X86_
+
+    /* mov   dword ptr [frame.callSiteReturnAddress], label */
+    
+#if CPU_LOAD_STORE_ARCH
+    regNumber tmpReg = regSet.rsGrabReg(RBM_ALLINT & ~genRegMask(tcbReg));
+    getEmitter()->emitIns_J_R (INS_adr,
+                             EA_PTRSIZE,
+                             returnLabel,
+                             tmpReg);
+    regTracker.rsTrackRegTrash(tmpReg);
+    getEmitter()->emitIns_S_R (ins_Store(TYP_I_IMPL),
+                             EA_PTRSIZE,
+                             tmpReg,
+                             compiler->lvaInlinedPInvokeFrameVar,
+                             pInfo->inlinedCallFrameInfo.offsetOfReturnAddress);
+#else // !CPU_LOAD_STORE_ARCH
+    // TODO-AMD64-CQ: Consider changing to a rip relative sequence on x64.
+    getEmitter()->emitIns_J_S (ins_Store(TYP_I_IMPL),
+                             EA_PTRSIZE,
+                             returnLabel,
+                             compiler->lvaInlinedPInvokeFrameVar,
+                             pInfo->inlinedCallFrameInfo.offsetOfReturnAddress);
+#endif // !CPU_LOAD_STORE_ARCH
+
+#if CPU_LOAD_STORE_ARCH
+    instGen_Set_Reg_To_Zero(EA_1BYTE, tmpReg);
+
+    noway_assert(tmpReg != tcbReg);
+
+    getEmitter()->emitIns_AR_R(ins_Store(TYP_BYTE),
+                             EA_1BYTE,
+                             tmpReg,
+                             tcbReg,
+                             pInfo->offsetOfGCState);
+#else // !CPU_LOAD_STORE_ARCH
+    /* mov   byte  ptr [tcbReg+offsetOfGcState], 0 */
+
+    getEmitter()->emitIns_I_AR (ins_Store(TYP_BYTE),
+                              EA_1BYTE,
+                              0,
+                              tcbReg,
+                              pInfo->offsetOfGCState);
+#endif // !CPU_LOAD_STORE_ARCH
+
+    return tcbReg;
+}
+
+/*****************************************************************************
+ *
+   First we have to mark in the hoisted NDirect stub that we are back
+   in managed code. Then we have to check (a global flag) whether GC is
+   pending or not. If so, we just call into a jit-helper.
+   Right now we have this call always inlined, i.e. we always skip around
+   the jit-helper call.
+   Note:
+   The tcb address is a regular local (initialized in the prolog), so it is either
+   enregistered or in the frame:
+
+        tcb_reg = [tcb_address is enregistered] OR [mov ecx, tcb_address]
+        mov  byte ptr[tcb_reg+offsetOfGcState], 1
+        cmp  'global GC pending flag', 0
+        je   @f
+        [mov  ECX, tcb_reg]  OR [ecx was setup above]     ; we pass the tcb value to callGC
+        [mov  [EBP+spill_area+0], eax]                    ; spill the int  return value if any
+        [mov  [EBP+spill_area+4], edx]                    ; spill the long return value if any
+        call @callGC
+        [mov  eax, [EBP+spill_area+0] ]                   ; reload the int  return value if any
+        [mov  edx, [EBP+spill_area+4] ]                   ; reload the long return value if any
+    @f:
+ */
+
+void                CodeGen::genPInvokeCallEpilog(LclVarDsc *  frameListRoot,
+                                                  regMaskTP    retVal)
+{
+    BasicBlock  *       clab_nostop;
+    CORINFO_EE_INFO *   pInfo = compiler->eeGetEEInfo();
+    regNumber           reg2;
+    regNumber           reg3;
+#ifdef _TARGET_ARM_
+        reg3 = REG_R3;
+#else
+        reg3 = REG_EDX;
+#endif
+#ifdef _TARGET_AMD64_
+    TempDsc * retTmp = NULL;
+#endif
+
+    getEmitter()->emitDisableRandomNops();
+
+    if (frameListRoot->lvRegister)
+    {
+        /* make sure that register is live across the call */
+
+        reg2 = frameListRoot->lvRegNum;
+        noway_assert(genRegMask(reg2) & RBM_INT_CALLEE_SAVED);
+    }
+    else
+    {
+        /* mov   reg2, dword ptr [tcb address]    */
+#ifdef _TARGET_ARM_
+        reg2 = REG_R2;
+#else
+        reg2 = REG_ECX;
+#endif
+
+        getEmitter()->emitIns_R_S  (ins_Load(TYP_I_IMPL),
+                                  EA_PTRSIZE,
+                                  reg2,
+                                  (unsigned)(frameListRoot - compiler->lvaTable),
+                                  0);
+        regTracker.rsTrackRegTrash(reg2);
+    }
+
+
+#ifdef _TARGET_ARM_
+    /* mov   r3, 1 */
+    /* strb  [r2+offsetOfGcState], r3 */
+    instGen_Set_Reg_To_Imm(EA_PTRSIZE, reg3, 1);
+    getEmitter()->emitIns_AR_R (ins_Store(TYP_BYTE),
+                              EA_1BYTE,
+                              reg3,
+                              reg2,
+                              pInfo->offsetOfGCState);
+#else
+    /* mov   byte ptr [tcb+offsetOfGcState], 1 */
+    getEmitter()->emitIns_I_AR (ins_Store(TYP_BYTE),
+                              EA_1BYTE,
+                              1,
+                              reg2,
+                              pInfo->offsetOfGCState);
+#endif
+
+    /* test global flag (we return to managed code) */
+
+    LONG * addrOfCaptureThreadGlobal, **pAddrOfCaptureThreadGlobal;
+
+    addrOfCaptureThreadGlobal = compiler->info.compCompHnd->getAddrOfCaptureThreadGlobal((void**) &pAddrOfCaptureThreadGlobal);
+    noway_assert((!addrOfCaptureThreadGlobal) != (!pAddrOfCaptureThreadGlobal));
+
+    // Can we directly use addrOfCaptureThreadGlobal?
+
+    if (addrOfCaptureThreadGlobal)
+    {
+#ifdef _TARGET_ARM_
+        instGen_Set_Reg_To_Imm (EA_HANDLE_CNS_RELOC,
+                                reg3,
+                                (ssize_t)addrOfCaptureThreadGlobal);
+        getEmitter()->emitIns_R_R_I (ins_Load(TYP_INT),
+                                   EA_4BYTE,
+                                   reg3,
+                                   reg3,
+                                   0);
+        regTracker.rsTrackRegTrash(reg3);
+        getEmitter()->emitIns_R_I (INS_cmp,
+                                 EA_4BYTE,
+                                 reg3,
+                                 0);
+#elif defined(_TARGET_AMD64_)
+
+        if (IMAGE_REL_BASED_REL32 != compiler->eeGetRelocTypeHint(addrOfCaptureThreadGlobal))
+        {
+            instGen_Set_Reg_To_Imm(EA_HANDLE_CNS_RELOC, reg3, (ssize_t)addrOfCaptureThreadGlobal);
+
+            getEmitter()->emitIns_I_AR(INS_cmp, EA_4BYTE, 0, reg3, 0);
+        }
+        else
+        {
+            getEmitter()->emitIns_I_AI(INS_cmp, EA_4BYTE_DSP_RELOC, 0, (ssize_t)addrOfCaptureThreadGlobal);
+        }
+
+#else
+        getEmitter()->emitIns_C_I  (INS_cmp,
+                                  EA_PTR_DSP_RELOC,
+                                  FLD_GLOBAL_DS,
+                                  (ssize_t) addrOfCaptureThreadGlobal,
+                                  0);
+#endif
+    }
+    else
+    {
+#ifdef _TARGET_ARM_
+        instGen_Set_Reg_To_Imm (EA_HANDLE_CNS_RELOC,
+                                reg3,
+                                (ssize_t)pAddrOfCaptureThreadGlobal);
+        getEmitter()->emitIns_R_R_I (ins_Load(TYP_INT),
+                                   EA_4BYTE,
+                                   reg3,
+                                   reg3,
+                                   0);
+        regTracker.rsTrackRegTrash(reg3);
+        getEmitter()->emitIns_R_R_I (ins_Load(TYP_INT),
+                                   EA_4BYTE,
+                                   reg3,
+                                   reg3,
+                                   0);
+        getEmitter()->emitIns_R_I (INS_cmp,
+                                 EA_4BYTE,
+                                 reg3,
+                                 0);
+#else // !_TARGET_ARM_
+
+#ifdef _TARGET_AMD64_
+        if (IMAGE_REL_BASED_REL32 != compiler->eeGetRelocTypeHint(pAddrOfCaptureThreadGlobal))
+        {
+            instGen_Set_Reg_To_Imm(EA_PTR_DSP_RELOC, REG_ECX, (ssize_t)pAddrOfCaptureThreadGlobal);
+            getEmitter()->emitIns_R_AR(ins_Load(TYP_I_IMPL), EA_PTRSIZE, REG_ECX, REG_ECX, 0);
+            regTracker.rsTrackRegTrash(REG_ECX);
+        }
+        else
+#endif // _TARGET_AMD64_
+        {
+            getEmitter()->emitIns_R_AI(ins_Load(TYP_I_IMPL), EA_PTR_DSP_RELOC, REG_ECX,
+                                     (ssize_t)pAddrOfCaptureThreadGlobal);
+            regTracker.rsTrackRegTrash(REG_ECX);
+        }
+
+        getEmitter()->emitIns_I_AR(INS_cmp, EA_4BYTE, 0, REG_ECX, 0);
+#endif // !_TARGET_ARM_
+    }
+
+    /* */
+    clab_nostop = genCreateTempLabel();
+
+    /* Generate the conditional jump */
+    emitJumpKind jmpEqual = genJumpKindForOper(GT_EQ, CK_SIGNED);
+    inst_JMP(jmpEqual, clab_nostop);
+
+#ifdef _TARGET_ARM_
+    // The helper preserves the return value on ARM
+#else
+    /* save return value (if necessary) */
+    if  (retVal != RBM_NONE)
+    {
+        if (retVal == RBM_INTRET || retVal == RBM_LNGRET)
+        {
+#ifdef _TARGET_AMD64_
+            retTmp = compiler->tmpGetTemp(TYP_LONG);
+            inst_ST_RV(INS_mov, retTmp, 0, REG_INTRET, TYP_LONG);
+#elif defined(_TARGET_X86_)
+            /* push eax */
+
+            inst_RV(INS_push, REG_INTRET, TYP_INT);
+
+            if (retVal == RBM_LNGRET)
+            {
+                /* push edx */
+
+                inst_RV(INS_push, REG_EDX, TYP_INT);
+            }
+#endif // _TARGET_AMD64_
+        }
+    }
+#endif
+
+    /* emit the call to the EE-helper that stops for GC (or other reasons) */
+
+    genEmitHelperCall(CORINFO_HELP_STOP_FOR_GC,
+                      0,             /* argSize */
+                      EA_UNKNOWN);   /* retSize */
+
+#ifdef _TARGET_ARM_
+    // The helper preserves the return value on ARM
+#else
+    /* restore return value (if necessary) */
+
+    if  (retVal != RBM_NONE)
+    {
+        if (retVal == RBM_INTRET || retVal == RBM_LNGRET)
+        {
+#ifdef _TARGET_AMD64_
+
+            assert(retTmp != NULL);
+            inst_RV_ST(INS_mov, REG_INTRET, retTmp, 0, TYP_LONG);
+            regTracker.rsTrackRegTrash(REG_INTRET);
+            compiler->tmpRlsTemp(retTmp);
+
+#elif defined(_TARGET_X86_)
+            if (retVal == RBM_LNGRET)
+            {
+                /* pop edx */
+
+                inst_RV(INS_pop, REG_EDX, TYP_INT);
+                regTracker.rsTrackRegTrash(REG_EDX);
+            }
+
+            /* pop eax */
+
+            inst_RV(INS_pop, REG_INTRET, TYP_INT);
+            regTracker.rsTrackRegTrash(REG_INTRET);
+#endif // _TARGET_AMD64_
+        }
+    }
+#endif
+
+    /* genCondJump() closes the current emitter block */
+
+    genDefineTempLabel(clab_nostop);
+
+    // This marks the InlinedCallFrame as "inactive".  In fully interruptible code, this is not atomic with
+    // the above code.  So the process is:
+    // 1) Return to cooperative mode
+    // 2) Check to see if we need to stop for GC
+    // 3) Return from the p/invoke (as far as the stack walker is concerned).
+
+    /* mov  dword ptr [frame.callSiteTracker], 0 */
+
+    instGen_Store_Imm_Into_Lcl(TYP_I_IMPL, EA_PTRSIZE, 0,
+                              compiler->lvaInlinedPInvokeFrameVar,
+                              pInfo->inlinedCallFrameInfo.offsetOfReturnAddress);
+
+    getEmitter()->emitEnableRandomNops();
+}
+
+/*****************************************************************************/
+
+/*****************************************************************************
+*           TRACKING OF FLAGS
+*****************************************************************************/
+
+void                CodeGen::genFlagsEqualToNone()
+{
+    genFlagsEqReg = REG_NA;
+    genFlagsEqVar = (unsigned)-1;
+    genFlagsEqLoc.Init();
+}
+
+/*****************************************************************************
+ *
+ *  Record the fact that the flags register has a value that reflects the
+ *  contents of the given register.
+ */
+
+void                CodeGen::genFlagsEqualToReg(GenTreePtr tree,
+                                                regNumber  reg)
+{
+    genFlagsEqLoc.CaptureLocation(getEmitter());
+    genFlagsEqReg = reg;
+
+    /* previous setting of flags by a var becomes invalid */
+
+    genFlagsEqVar = 0xFFFFFFFF;
+
+    /* Set appropriate flags on the tree */
+
+    if (tree)
+    {
+        tree->gtFlags |= GTF_ZSF_SET;
+        assert(tree->gtSetFlags());
+    }
+}
+
+/*****************************************************************************
+ *
+ *  Record the fact that the flags register has a value that reflects the
+ *  contents of the given local variable.
+ */
+
+void                CodeGen::genFlagsEqualToVar(GenTreePtr tree,
+                                                unsigned   var)
+{
+    genFlagsEqLoc.CaptureLocation(getEmitter());
+    genFlagsEqVar = var;
+
+    /* previous setting of flags by a register becomes invalid */
+
+    genFlagsEqReg = REG_NA;
+
+    /* Set appropriate flags on the tree */
+
+    if (tree)
+    {
+        tree->gtFlags |= GTF_ZSF_SET;
+        assert(tree->gtSetFlags());
+    }
+}
+
+/*****************************************************************************
+ *
+ *  Return an indication of whether the flags register is set to the current
+ *  value of the given register/variable. The return value is as follows:
+ *
+ *      false  ..  nothing
+ *      true   ..  the zero flag (ZF) and sign flag (SF) is set
+ */
+
+bool                 CodeGen::genFlagsAreReg(regNumber reg)
+{
+    if  ((genFlagsEqReg == reg) && genFlagsEqLoc.IsCurrentLocation(getEmitter()))
+    {
+        return true;
+    }
+
+    return false;
+}
+
+bool                 CodeGen::genFlagsAreVar(unsigned  var)
+{
+    if  ((genFlagsEqVar == var) && genFlagsEqLoc.IsCurrentLocation(getEmitter()))
+    {
+        return true;
+    }
+
+    return false;
+}
+
+/*****************************************************************************
+ * This utility function returns true iff the execution path from "from"
+ * (inclusive) to "to" (exclusive) contains a death of the given var
+ */
+bool
+CodeGen::genContainsVarDeath(GenTreePtr from, GenTreePtr to, unsigned varNum)
+{
+    GenTreePtr tree;
+    for (tree = from; tree != NULL && tree != to; tree = tree->gtNext)
+    {
+        if (tree->IsLocal() && (tree->gtFlags & GTF_VAR_DEATH))
+        {
+            unsigned dyingVarNum = tree->gtLclVarCommon.gtLclNum;
+            if (dyingVarNum == varNum) return true;
+            LclVarDsc * varDsc = &(compiler->lvaTable[varNum]);
+            if (varDsc->lvPromoted)
+            {
+                assert(varDsc->lvType == TYP_STRUCT);
+                unsigned firstFieldNum = varDsc->lvFieldLclStart;
+                if (varNum >= firstFieldNum && varNum < firstFieldNum + varDsc->lvFieldCnt)
+                {
+                    return true;
+                }
+            }
+        }
+    }
+    assert(tree != NULL);
+    return false;
+}
+
 #endif // LEGACY_BACKEND
index b72fbc3..6ffccbf 100644 (file)
@@ -20,8 +20,6 @@
 
     void                genCodeForMulHi(GenTreeOp* treeNode);
 
-    void                genCodeForPow2Div(GenTreeOp* treeNode);
-
     void                genLeaInstruction(GenTreeAddrMode *lea);
 
     void                genSetRegToCond(regNumber dstReg, GenTreePtr tree);
@@ -41,9 +39,9 @@
     void                genPutArgStk(GenTreePtr treeNode);
     unsigned            getBaseVarForPutArgStk(GenTreePtr treeNode);
 
-#ifdef _TARGET_XARCH_
+#if defined(_TARGET_XARCH_) || defined(_TARGET_ARM64_)
     unsigned            getFirstArgWithStackSlot();
-#endif // !_TARGET_XARCH_
+#endif // _TARGET_XARCH_ || _TARGET_ARM64_
 
     void                genCompareFloat(GenTreePtr treeNode);
 
index edd485b..506e1e6 100644 (file)
@@ -185,16 +185,18 @@ void                CodeGen::genEmitGSCookieCheck(bool pushReg)
         // Handle multi-reg return type values
         if (compiler->compMethodReturnsMultiRegRetType())
         {
-#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
             ReturnTypeDesc retTypeDesc;
             retTypeDesc.Initialize(compiler, compiler->info.compMethodInfo->args.retTypeClass);
+            unsigned regCount = retTypeDesc.GetReturnRegCount();
 
-            assert(retTypeDesc.GetReturnRegCount() == CLR_SYSTEMV_MAX_EIGHTBYTES_COUNT_TO_RETURN_IN_REGISTERS);
+            // Only x86 and x64 Unix ABI allows multi-reg return and
+            // number of result regs should be equal to MAX_RET_REG_COUNT.
+            assert(regCount == MAX_RET_REG_COUNT);
 
-            // Set the GC-ness of the struct return registers.
-            gcInfo.gcMarkRegPtrVal(REG_INTRET, retTypeDesc.GetReturnRegType(0));
-            gcInfo.gcMarkRegPtrVal(REG_INTRET_1, retTypeDesc.GetReturnRegType(1));
-#endif 
+            for (unsigned i = 0; i < regCount; ++i)
+            {
+                gcInfo.gcMarkRegPtrVal(retTypeDesc.GetABIReturnReg(i), retTypeDesc.GetReturnRegType(i));
+            }
         }
         else if (compiler->compMethodReturnsRetBufAddr())
         {
@@ -209,15 +211,15 @@ void                CodeGen::genEmitGSCookieCheck(bool pushReg)
         // ... all other cases.
         else
         {
-#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
-            // For System V structs that are not returned in registers are always 
+#ifdef _TARGET_AMD64_
+            // For x64, structs that are not returned in registers are always 
             // returned in implicit RetBuf. If we reached here, we should not have
             // a RetBuf and the return type should not be a struct.
             assert(compiler->info.compRetBuffArg == BAD_VAR_NUM);
             assert(!varTypeIsStruct(compiler->info.compRetNativeType));
-#endif // FEATURE_UNIX_AMD64_STRUCT_PASSING
+#endif // _TARGET_AMD64_
 
-            // For Windows we can't make such assertions since we generate code for returning of 
+            // For x86 Windows we can't make such assertions since we generate code for returning of 
             // the RetBuf in REG_INTRET only when the ProfilerHook is enabled. Otherwise
             // compRetNativeType could be TYP_STRUCT.
             gcInfo.gcMarkRegPtrVal(REG_INTRET, compiler->info.compRetNativeType);
@@ -1282,42 +1284,31 @@ void CodeGen::genCodeForDivMod(GenTreeOp* treeNode)
             gcInfo.gcMarkRegSetNpt(RBM_RDX);
         }
 
-        if (divisor->isContainedIntOrIImmed())
-        {
-            GenTreeIntConCommon* divImm = divisor->AsIntConCommon();
-            assert(divImm->IsIntCnsFitsInI32());
-            ssize_t imm = divImm->IconValue();
-            assert(isPow2(abs(imm)));
-            genCodeForPow2Div(treeNode->AsOp());
-        }
+        // Perform the 'targetType' (64-bit or 32-bit) divide instruction
+        instruction ins;
+        if (oper == GT_UMOD || oper == GT_UDIV)
+            ins = INS_div;
         else
-        {
-            // Perform the 'targetType' (64-bit or 32-bit) divide instruction
-            instruction ins;
-            if (oper == GT_UMOD || oper == GT_UDIV)
-                ins = INS_div;
-            else
-                ins = INS_idiv;
+            ins = INS_idiv;
             
-            emit->emitInsBinary(ins, size, treeNode, divisor);
+        emit->emitInsBinary(ins, size, treeNode, divisor);
             
-            // Signed divide RDX:RAX by r/m64, with result
-            //    stored in RAX := Quotient, RDX := Remainder.
-            // Move the result to the desired register, if necessary
-            if (oper == GT_DIV || oper == GT_UDIV)
+        // Signed divide RDX:RAX by r/m64, with result
+        //    stored in RAX := Quotient, RDX := Remainder.
+        // Move the result to the desired register, if necessary
+        if (oper == GT_DIV || oper == GT_UDIV)
+        {
+            if (targetReg != REG_RAX)
             {
-                if (targetReg != REG_RAX)
-                {
-                    inst_RV_RV(INS_mov, targetReg, REG_RAX, targetType);
-                }
+                inst_RV_RV(INS_mov, targetReg, REG_RAX, targetType);
             }
-            else
+        }
+        else
+        {
+            assert((oper == GT_MOD) || (oper == GT_UMOD));
+            if (targetReg != REG_RDX)
             {
-                assert((oper == GT_MOD) || (oper == GT_UMOD));
-                if (targetReg != REG_RDX)
-                {
-                    inst_RV_RV(INS_mov, targetReg, REG_RDX, targetType);
-                }
+                inst_RV_RV(INS_mov, targetReg, REG_RDX, targetType);
             }
         }
     }
@@ -1515,52 +1506,175 @@ CodeGen::isStructReturn(GenTreePtr treeNode)
 // Return Value:
 //    None
 //
+// Assumption:
+//    op1 of GT_RETURN node is either GT_LCL_VAR or multi-reg GT_CALL
 void
 CodeGen::genStructReturn(GenTreePtr treeNode)
 {
     assert(treeNode->OperGet() == GT_RETURN);
     GenTreePtr op1 = treeNode->gtGetOp1();
-    var_types targetType = treeNode->TypeGet();
 
 #ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
-    noway_assert((op1->OperGet() == GT_LCL_VAR) ||
-                 (op1->OperGet() == GT_CALL));
-
     if (op1->OperGet() == GT_LCL_VAR)
     {
-        assert(op1->isContained());
-
         GenTreeLclVarCommon* lclVar = op1->AsLclVarCommon();
         LclVarDsc* varDsc = &(compiler->lvaTable[lclVar->gtLclNum]);
         assert(varDsc->lvIsMultiRegArgOrRet);
 
         ReturnTypeDesc retTypeDesc;
         retTypeDesc.Initialize(compiler, varDsc->lvVerTypeInfo.GetClassHandle());
-        assert(retTypeDesc.GetReturnRegCount() == CLR_SYSTEMV_MAX_EIGHTBYTES_COUNT_TO_RETURN_IN_REGISTERS);
+        unsigned regCount = retTypeDesc.GetReturnRegCount();
+        assert(regCount == MAX_RET_REG_COUNT);
+
+        if (varTypeIsEnregisterableStruct(op1))
+        {
+            // Right now the only enregistrable structs supported are SIMD vector types.
+            assert(varTypeIsSIMD(op1));
+            assert(!op1->isContained());
 
-        var_types type0 = retTypeDesc.GetReturnRegType(0);
-        var_types type1 = retTypeDesc.GetReturnRegType(1);
+            // This is a case of operand is in a single reg and needs to be
+            // returned in multiple ABI return registers.
+            regNumber opReg = genConsumeReg(op1);
+            regNumber reg0 = retTypeDesc.GetABIReturnReg(0);
+            regNumber reg1 = retTypeDesc.GetABIReturnReg(1);
 
-        regNumber reg0 = retTypeDesc.GetABIReturnReg(0);
-        regNumber reg1 = retTypeDesc.GetABIReturnReg(1);
-        assert(reg0 != REG_NA && reg1 != REG_NA);
+            if (opReg != reg0 && opReg != reg1)
+            {
+                // Operand reg is different from return regs.
+                // Copy opReg to reg0 and let it to be handled by one of the
+                // two cases below.
+                inst_RV_RV(ins_Copy(TYP_DOUBLE), reg0, opReg, TYP_DOUBLE);
+                opReg = reg0;
+            }
+
+            if (opReg == reg0)
+            {
+                assert(opReg != reg1);
+
+                // reg0 - already has required 8-byte in bit position [63:0].
+                // reg1 = opReg.
+                // swap upper and lower 8-bytes of reg1 so that desired 8-byte is in bit position [63:0].
+                inst_RV_RV(ins_Copy(TYP_DOUBLE), reg1, opReg, TYP_DOUBLE);
+            }
+            else
+            {
+                assert(opReg == reg1);
+
+                // reg0 = opReg.
+                // swap upper and lower 8-bytes of reg1 so that desired 8-byte is in bit position [63:0].
+                inst_RV_RV(ins_Copy(TYP_DOUBLE), reg0, opReg, TYP_DOUBLE);                
+            }
+            inst_RV_RV_IV(INS_shufpd, EA_16BYTE, reg1, reg1, 0x01);
+        }
+        else
+        {
+            assert(op1->isContained());
 
-        // Move the values into the return registers     
-        getEmitter()->emitIns_R_S(ins_Load(type0), emitTypeSize(type0), reg0, lclVar->gtLclNum, 0);
-        getEmitter()->emitIns_R_S(ins_Load(type1), emitTypeSize(type1), reg1, lclVar->gtLclNum, 8);
+            // Copy var on stack into ABI return registers     
+            int offset = 0;
+            for (unsigned i = 0; i < regCount; ++i)
+            {
+                var_types type = retTypeDesc.GetReturnRegType(i);
+                regNumber reg = retTypeDesc.GetABIReturnReg(i);
+                getEmitter()->emitIns_R_S(ins_Load(type), emitTypeSize(type), reg, lclVar->gtLclNum, offset);
+                offset += genTypeSize(type);
+            }
+        }
     }
     else
     {
-        // Assumption: multi-reg return value of a GT_CALL node is never spilled.
-        // TODO-BUG: support for multi-reg call nodes.
+        assert(op1->IsMultiRegCall() || op1->IsCopyOrReloadOfMultiRegCall());
 
-        assert(op1->OperGet() == GT_CALL);
-        assert((op1->gtFlags & GTF_SPILLED) == 0);
-    }
+        genConsumeRegs(op1);
+
+        GenTree* actualOp1 = op1->gtSkipReloadOrCopy();
+        GenTreeCall* call = actualOp1->AsCall();
+        ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
+        unsigned regCount = retTypeDesc->GetReturnRegCount();
+        assert(regCount == MAX_RET_REG_COUNT);
 
+        // Handle circular dependency between call allocated regs and ABI return regs.
+        //
+        // It is possible under LSRA stress that originally allocated regs of call node,
+        // say rax and rdx, are spilled and reloaded to rdx and rax respectively.  But
+        // GT_RETURN needs to  move values as follows: rdx->rax, rax->rdx. Similar kind
+        // kind of circular dependency could arise between xmm0 and xmm1 return regs.
+        // Codegen is expected to handle such circular dependency.
+        //
+        var_types regType0 = retTypeDesc->GetReturnRegType(0);
+        regNumber returnReg0 = retTypeDesc->GetABIReturnReg(0);
+        regNumber allocatedReg0 = call->GetRegNumByIdx(0);
 
+        var_types regType1 = retTypeDesc->GetReturnRegType(1);
+        regNumber returnReg1 = retTypeDesc->GetABIReturnReg(1);
+        regNumber allocatedReg1 = call->GetRegNumByIdx(1);
+        
+        if (op1->IsCopyOrReload())
+        {
+            // GT_COPY/GT_RELOAD will have valid reg for those positions
+            // that need to be copied or reloaded.
+            regNumber reloadReg = op1->AsCopyOrReload()->GetRegNumByIdx(0);
+            if (reloadReg != REG_NA)
+            {
+                allocatedReg0 = reloadReg;
+            }
+
+            reloadReg = op1->AsCopyOrReload()->GetRegNumByIdx(1);
+            if (reloadReg != REG_NA)
+            {
+                allocatedReg1 = reloadReg;
+            }
+        }
+
+        if (allocatedReg0 == returnReg1 &&
+            allocatedReg1 == returnReg0)
+        {
+            // Circular dependency - swap allocatedReg0 and allocatedReg1
+            if (varTypeIsFloating(regType0))
+            {
+                assert(varTypeIsFloating(regType1));
+
+                // The fastest way to swap two XMM regs is using PXOR
+                inst_RV_RV(INS_pxor, allocatedReg0, allocatedReg1, TYP_DOUBLE);
+                inst_RV_RV(INS_pxor, allocatedReg1, allocatedReg0, TYP_DOUBLE);
+                inst_RV_RV(INS_pxor, allocatedReg0, allocatedReg1, TYP_DOUBLE);
+            }
+            else
+            {
+                assert(varTypeIsIntegral(regType0));
+                assert(varTypeIsIntegral(regType1));
+                inst_RV_RV(INS_xchg, allocatedReg1, allocatedReg0, TYP_I_IMPL);
+            }
+        }
+        else if (allocatedReg1 == returnReg0)
+        {
+            // Change the order of moves to correctly handle dependency.
+            if (allocatedReg1 != returnReg1)
+            {
+                inst_RV_RV(ins_Copy(regType1), returnReg1, allocatedReg1, regType1);
+            }
+
+            if (allocatedReg0 != returnReg0)
+            {
+                inst_RV_RV(ins_Copy(regType0), returnReg0, allocatedReg0, regType0);
+            }
+        }
+        else
+        {
+            // No circular dependency case.
+            if (allocatedReg0 != returnReg0)
+            {
+                inst_RV_RV(ins_Copy(regType0), returnReg0, allocatedReg0, regType0);
+            }
+
+            if (allocatedReg1 != returnReg1)
+            {
+                inst_RV_RV(ins_Copy(regType1), returnReg1, allocatedReg1, regType1);
+            }
+        }
+    }
 #else
-    assert("!unreached");
+    unreached();
 #endif   
 }
 
@@ -1655,7 +1769,7 @@ CodeGen::genReturn(GenTreePtr treeNode)
                     op1->gtFlags |= GTF_SPILLED;
                     op1->gtFlags &= ~GTF_SPILL;
 
-                    TempDsc* t = regSet.rsUnspillInPlace(op1);
+                    TempDsc* t = regSet.rsUnspillInPlace(op1, op1->gtRegNum);
                     inst_FS_ST(INS_fld, emitActualTypeSize(op1->gtType), t, 0);
                     op1->gtFlags &= ~GTF_SPILLED;
                     compiler->tmpRlsTemp(t);
@@ -1723,8 +1837,6 @@ CodeGen::genCodeForTreeNode(GenTreePtr treeNode)
     {
         // All long enregistered nodes will have been decomposed into their
         // constituent lo and hi nodes.
-        regPairNo targetPair = treeNode->gtRegPair;
-        noway_assert(targetPair == REG_PAIR_NONE);
         targetReg = REG_NA;
     }
     else
@@ -1965,9 +2077,11 @@ CodeGen::genCodeForTreeNode(GenTreePtr treeNode)
 
     case GT_STORE_LCL_VAR:
         {  
+            GenTreePtr op1 = treeNode->gtGetOp1();
+
             // var = call, where call returns a multi-reg return value
             // case is handled separately.
-            if (treeNode->IsMultiRegCallStoreToLocal())
+            if (op1->gtSkipReloadOrCopy()->IsMultiRegCall())
             {
                 genMultiRegCallStoreToLocal(treeNode);
             }
@@ -1989,8 +2103,7 @@ CodeGen::genCodeForTreeNode(GenTreePtr treeNode)
                     break;
                 }
 #endif // !defined(_TARGET_64BIT_)
-
-                GenTreePtr op1 = treeNode->gtGetOp1();
+                
                 genConsumeRegs(op1);
 
                 if (treeNode->gtRegNum == REG_NA)
@@ -2031,11 +2144,11 @@ CodeGen::genCodeForTreeNode(GenTreePtr treeNode)
                         emit->emitInsBinary(ins_Move_Extend(targetType, true), emitTypeSize(treeNode), treeNode, op1);
                     }
                 }
+            }
 
-                if (treeNode->gtRegNum != REG_NA)
-                {
-                    genProduceReg(treeNode);
-                }
+            if (treeNode->gtRegNum != REG_NA)
+            {
+                genProduceReg(treeNode);
             }
         }
         break;
@@ -2640,169 +2753,130 @@ CodeGen::genCodeForTreeNode(GenTreePtr treeNode)
 //    None
 //
 // Assumption:
-//    The child of store is a GT_CALL node.
+//    The child of store is a multi-reg call node.
+//    genProduceReg() on treeNode is made by caller of this routine.
 //
 void
 CodeGen::genMultiRegCallStoreToLocal(GenTreePtr treeNode)
 {
-    assert(treeNode->IsMultiRegCallStoreToLocal());
+    assert(treeNode->OperGet() == GT_STORE_LCL_VAR);
 
 #ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
     // Structs of size >=9 and <=16 are returned in two return registers on x64 Unix.
     assert(varTypeIsStruct(treeNode));
 
-    // Assumption: struct local var needs to be in memory
-    noway_assert(!treeNode->InReg());
-
-    GenTree* op1 = treeNode->gtGetOp1();
-    GenTreeCall* actualOp1 = op1->gtSkipReloadOrCopy()->AsCall();
-    assert(actualOp1->HasMultiRegRetVal());
-
-    genConsumeRegs(op1);
-
-    ReturnTypeDesc* retTypeDesc = actualOp1->GetReturnTypeDesc();
-    assert(retTypeDesc->GetReturnRegCount() == CLR_SYSTEMV_MAX_EIGHTBYTES_COUNT_TO_RETURN_IN_REGISTERS); 
-
-    var_types type0 = retTypeDesc->GetReturnRegType(0);
-    var_types type1 = retTypeDesc->GetReturnRegType(1);
-
-    regNumber reg0 = retTypeDesc->GetABIReturnReg(0);
-    regNumber reg1 = retTypeDesc->GetABIReturnReg(1);
-
-    assert(reg0 != REG_NA && reg1 != REG_NA);
-
-    // Assumption: multi-reg return value of a GT_CALL node never gets spilled.
-    // TODO-BUG: support for multi-reg GT_CALL nodes.
-
-    unsigned lclNum = treeNode->AsLclVarCommon()->gtLclNum;
-    LclVarDsc* varDsc = &(compiler->lvaTable[lclNum]);
-
     // Assumption: current x64 Unix implementation requires that a multi-reg struct
     // var in 'var = call' is flagged as lvIsMultiRegArgOrRet to prevent it from
-    // being struct poromoted.  
-    //
-
+    // being struct promoted.  
+    unsigned lclNum = treeNode->AsLclVarCommon()->gtLclNum;
+    LclVarDsc* varDsc = &(compiler->lvaTable[lclNum]);
     noway_assert(varDsc->lvIsMultiRegArgOrRet);
 
-    getEmitter()->emitIns_S_R(ins_Store(type0), emitTypeSize(type0), reg0, lclNum, 0);
-    getEmitter()->emitIns_S_R(ins_Store(type1), emitTypeSize(type1), reg1, lclNum, 8);
-#else // !FEATURE_UNIX_AMD64_STRUCT_PASSING
-    assert(!"Unreached");
-#endif // !FEATURE_UNIX_AMD64_STRUCT_PASSING
-}
+    GenTree* op1 = treeNode->gtGetOp1();
+    GenTree* actualOp1 = op1->gtSkipReloadOrCopy();
+    GenTreeCall* call = actualOp1->AsCall();
+    assert(call->HasMultiRegRetVal());
 
-// Generate code for division (or mod) by power of two
-// or negative powers of two.  (meaning -1 * a power of two, not 2^(-1))
-// Op2 must be a contained integer constant.
-void
-CodeGen::genCodeForPow2Div(GenTreeOp* tree)
-{
-    GenTree *dividend = tree->gtOp.gtOp1;
-    GenTree *divisor  = tree->gtOp.gtOp2;
-    genTreeOps  oper  = tree->OperGet();
-    emitAttr    size  = emitTypeSize(tree);
-    emitter    *emit  = getEmitter();
-    regNumber targetReg  = tree->gtRegNum;
-    var_types targetType = tree->TypeGet();
+    genConsumeRegs(op1);
 
-    bool isSigned = oper == GT_MOD || oper == GT_DIV;
+    ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
+    assert(retTypeDesc->GetReturnRegCount() == MAX_RET_REG_COUNT);
+    unsigned regCount = retTypeDesc->GetReturnRegCount();
 
-    // precondition: extended dividend is in RDX:RAX
-    // which means it is either all zeros or all ones
+    if (treeNode->gtRegNum != REG_NA)
+    {        
+        // Right now the only enregistrable structs supported are SIMD types.
+        assert(varTypeIsSIMD(treeNode));
+        assert(varTypeIsFloating(retTypeDesc->GetReturnRegType(0)));
+        assert(varTypeIsFloating(retTypeDesc->GetReturnRegType(1)));
 
-    noway_assert(divisor->isContained());
-    GenTreeIntConCommon* divImm = divisor->AsIntConCommon();
-    ssize_t imm = divImm->IconValue();
-    ssize_t abs_imm = abs(imm);
-    noway_assert(isPow2(abs_imm));
-    
+        // This is a case of two 8-bytes that comprise the operand is in
+        // two different xmm registers and needs to assembled into a single
+        // xmm register.
+        regNumber targetReg = treeNode->gtRegNum;
+        regNumber reg0 = call->GetRegNumByIdx(0);
+        regNumber reg1 = call->GetRegNumByIdx(1);
 
-    if (isSigned)
-    {
-        if (imm == 1)
+        if (op1->IsCopyOrReload())
         {
-            if (oper == GT_DIV)
-            {
-                if (targetReg != REG_RAX)
-                    inst_RV_RV(INS_mov, targetReg, REG_RAX, targetType);
-            }
-            else
+            // GT_COPY/GT_RELOAD will have valid reg for those positions
+            // that need to be copied or reloaded.
+            regNumber reloadReg = op1->AsCopyOrReload()->GetRegNumByIdx(0);
+            if (reloadReg != REG_NA)
             {
-                assert(oper == GT_MOD);
-                instGen_Set_Reg_To_Zero(size, targetReg);
+                reg0 = reloadReg;
             }
 
-            return;
-        }
-
-        if (abs_imm == 2)
-        {
-            if (oper == GT_MOD)
-            {
-                emit->emitIns_R_I(INS_and, size, REG_RAX, 1); // result is 0 or 1
-                // xor with rdx will flip all bits if negative
-                emit->emitIns_R_R(INS_xor, size, REG_RAX, REG_RDX); // 111.11110 or 0
-            }
-            else
+            reloadReg = op1->AsCopyOrReload()->GetRegNumByIdx(1);
+            if (reloadReg != REG_NA)
             {
-                assert(oper == GT_DIV);
-                // add 1 if it's negative
-                emit->emitIns_R_R(INS_sub, size, REG_RAX, REG_RDX);
+                reg1 = reloadReg;
             }
         }
-        else
+
+        if (targetReg != reg0 && targetReg != reg1)
         {
-            // add imm-1 if negative
-            emit->emitIns_R_I(INS_and, size, REG_RDX, abs_imm - 1);
-            emit->emitIns_R_R(INS_add, size, REG_RAX, REG_RDX);
+            // Copy reg0 into targetReg and let it to be handled by one
+            // of the cases below.
+            inst_RV_RV(ins_Copy(TYP_DOUBLE), targetReg, reg0, TYP_DOUBLE);
+            targetReg = reg0;
         }
 
-        if (oper == GT_DIV)
+        if (targetReg == reg0)
         {
-            unsigned shiftAmount = genLog2(unsigned(abs_imm));
-            inst_RV_SH(INS_sar, size, REG_RAX, shiftAmount);
-
-            if (imm < 0)
-            {
-                emit->emitIns_R(INS_neg, size, REG_RAX);
-            }
+            // targeReg[63:0] = targetReg[63:0]
+            // targetReg[127:64] = reg1[127:64]
+            inst_RV_RV_IV(INS_shufpd, EA_16BYTE, targetReg, reg1, 0x00);
         }
-        else
+        else 
         {
-            assert(oper == GT_MOD);
-            if (abs_imm > 2)
-            {
-                emit->emitIns_R_I(INS_and, size, REG_RAX, abs_imm - 1);
-            }
-            // RDX contains 'imm-1' if negative
-            emit->emitIns_R_R(INS_sub, size, REG_RAX, REG_RDX);
-        }
+            assert(targetReg == reg1);
 
-        if (targetReg != REG_RAX)
-        {
-            inst_RV_RV(INS_mov, targetReg, REG_RAX, targetType);
+            // We need two shuffles to achieve this
+            // First:
+            // targeReg[63:0] = targetReg[63:0]
+            // targetReg[127:64] = reg0[63:0]
+            //
+            // Second:
+            // targeReg[63:0] = targetReg[127:64]
+            // targetReg[127:64] = targetReg[63:0]
+            //
+            // Essentially copy low 8-bytes from reg0 to high 8-bytes of targetReg
+            // and next swap low and high 8-bytes of targetReg to have them
+            // rearranged in the right order.
+            inst_RV_RV_IV(INS_shufpd, EA_16BYTE, targetReg, reg0, 0x00);
+            inst_RV_RV_IV(INS_shufpd, EA_16BYTE, targetReg, targetReg, 0x01);
         }
     }
     else
     {
-        assert (imm > 0);
-
-        if (targetReg != dividend->gtRegNum)
+        // Stack store
+        int offset = 0;
+        for (unsigned i = 0; i < regCount; ++i)
         {
-            inst_RV_RV(INS_mov, targetReg, dividend->gtRegNum, targetType);
-        }
+            var_types type = retTypeDesc->GetReturnRegType(i);
+            regNumber reg = call->GetRegNumByIdx(i);
+            if (op1->IsCopyOrReload())
+            {
+                // GT_COPY/GT_RELOAD will have valid reg for those positions
+                // that need to be copied or reloaded.
+                regNumber reloadReg = op1->AsCopyOrReload()->GetRegNumByIdx(i);
+                if (reloadReg != REG_NA)
+                {
+                    reg = reloadReg;
+                }
+            }
 
-        if (oper == GT_UDIV)
-        {
-            inst_RV_SH(INS_shr, size, targetReg, genLog2(unsigned(imm)));
+            assert(reg != REG_NA);
+            getEmitter()->emitIns_S_R(ins_Store(type), emitTypeSize(type), reg, lclNum, offset);
+            offset += genTypeSize(type);
         }
-        else 
-        {
-            assert(oper == GT_UMOD);
 
-            emit->emitIns_R_I(INS_and, size, targetReg, imm -1);
-        }
+        varDsc->lvRegNum = REG_STK;
     }
+#else // !FEATURE_UNIX_AMD64_STRUCT_PASSING
+    assert(!"Unreached");
+#endif // !FEATURE_UNIX_AMD64_STRUCT_PASSING
 }
 
 
@@ -4360,13 +4434,14 @@ void CodeGen::genCodeForShiftRMW(GenTreeStoreInd* storeInd)
 void CodeGen::genUnspillRegIfNeeded(GenTree *tree)
 {
     regNumber dstReg = tree->gtRegNum;
-
     GenTree* unspillTree = tree;
+
     if (tree->gtOper == GT_RELOAD)
     {
         unspillTree = tree->gtOp.gtOp1;
     }
-    if (unspillTree->gtFlags & GTF_SPILLED)
+
+    if ((unspillTree->gtFlags & GTF_SPILLED) != 0)
     {
         if (genIsRegCandidateLocal(unspillTree))
         {
@@ -4444,22 +4519,72 @@ void CodeGen::genUnspillRegIfNeeded(GenTree *tree)
 
                 regSet.AddMaskVars(genGetRegMask(varDsc));
             }
+
+            gcInfo.gcMarkRegPtrVal(dstReg, unspillTree->TypeGet());
+        }
+        else if (unspillTree->IsMultiRegCall())
+        {
+            GenTreeCall* call = unspillTree->AsCall();
+            ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
+            unsigned regCount = retTypeDesc->GetReturnRegCount();
+            GenTreeCopyOrReload* reloadTree = nullptr;
+            if (tree->OperGet() == GT_RELOAD)
+            {
+                reloadTree = tree->AsCopyOrReload();
+            }
+
+            // In case of multi-reg call node, GTF_SPILLED flag on it indicates that
+            // one or more of its result regs are spilled.  Call node needs to be 
+            // queried to know which specific result regs to be unspilled.
+            for (unsigned i = 0; i < regCount; ++i)
+            {
+                unsigned flags = call->GetRegSpillFlagByIdx(i);
+                if ((flags & GTF_SPILLED) != 0)
+                {
+                    var_types dstType = retTypeDesc->GetReturnRegType(i);
+                    regNumber unspillTreeReg = call->GetRegNumByIdx(i);
+
+                    if (reloadTree != nullptr)
+                    {                        
+                        dstReg = reloadTree->GetRegNumByIdx(i);
+                        if (dstReg == REG_NA)
+                        {
+                            dstReg = unspillTreeReg;
+                        }
+                    }
+                    else
+                    {
+                        dstReg = unspillTreeReg;
+                    }
+
+                    TempDsc* t = regSet.rsUnspillInPlace(call, unspillTreeReg, i);
+                    getEmitter()->emitIns_R_S(ins_Load(dstType),
+                                              emitActualTypeSize(dstType),
+                                              dstReg,
+                                              t->tdTempNum(),
+                                              0);
+                    compiler->tmpRlsTemp(t);
+                    gcInfo.gcMarkRegPtrVal(dstReg, dstType);                   
+                }
+            }
+
+            unspillTree->gtFlags &= ~GTF_SPILLED;
+            unspillTree->SetInReg();
         }
         else
         {
-            TempDsc* t = regSet.rsUnspillInPlace(unspillTree);
+            TempDsc* t = regSet.rsUnspillInPlace(unspillTree, unspillTree->gtRegNum);
             getEmitter()->emitIns_R_S(ins_Load(unspillTree->gtType),
-                            emitActualTypeSize(unspillTree->gtType),
-                            dstReg,
-                            t->tdTempNum(),
-                            0);
+                                      emitActualTypeSize(unspillTree->TypeGet()),
+                                      dstReg,
+                                      t->tdTempNum(),
+                                      0);
             compiler->tmpRlsTemp(t);
 
             unspillTree->gtFlags &= ~GTF_SPILLED;
             unspillTree->SetInReg();
-        }
-
-        gcInfo.gcMarkRegPtrVal(dstReg, unspillTree->TypeGet());
+            gcInfo.gcMarkRegPtrVal(dstReg, unspillTree->TypeGet());
+        }        
     }
 }
 
@@ -4482,78 +4607,107 @@ void CodeGen::genConsumeRegAndCopy(GenTree *tree, regNumber needReg)
 void CodeGen::genRegCopy(GenTree* treeNode)
 {
     assert(treeNode->OperGet() == GT_COPY);
-    var_types targetType = treeNode->TypeGet();
-    regNumber targetReg = treeNode->gtRegNum;
-    assert(targetReg != REG_NA);
+    GenTree* op1 = treeNode->gtOp.gtOp1;  
 
-    GenTree* op1 = treeNode->gtOp.gtOp1;
+    if (op1->IsMultiRegCall())
+    {
+        genConsumeReg(op1);
 
-    // Check whether this node and the node from which we're copying the value have the same
-    // register type.
-    // This can happen if (currently iff) we have a SIMD vector type that fits in an integer
-    // register, in which case it is passed as an argument, or returned from a call,
-    // in an integer register and must be copied if it's in an xmm register.
+        GenTreeCopyOrReload* copyTree = treeNode->AsCopyOrReload();
+        GenTreeCall* call = op1->AsCall();
+        ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
+        unsigned regCount = retTypeDesc->GetReturnRegCount();
 
-    bool srcFltReg = (varTypeIsFloating(op1)      || varTypeIsSIMD(op1));
-    bool tgtFltReg = (varTypeIsFloating(treeNode) || varTypeIsSIMD(treeNode));
-    if (srcFltReg != tgtFltReg)
-    {
-        instruction ins;
-        regNumber fpReg;
-        regNumber intReg;
-        if (tgtFltReg)
+        for (unsigned i = 0; i < regCount; ++i)
         {
-            ins = ins_CopyIntToFloat(op1->TypeGet(), treeNode->TypeGet());
-            fpReg = targetReg;
-            intReg = op1->gtRegNum;
-        }
-        else
-        {
-            ins = ins_CopyFloatToInt(op1->TypeGet(), treeNode->TypeGet());
-            intReg = targetReg;
-            fpReg = op1->gtRegNum;
+            var_types type = retTypeDesc->GetReturnRegType(i);
+            regNumber fromReg = call->GetRegNumByIdx(i);
+            regNumber toReg = copyTree->GetRegNumByIdx(i);
+            
+            // A Multi-reg GT_COPY node will have valid reg only for those
+            // positions that corresponding result reg of call node needs
+            // to be copied.
+            if (toReg != REG_NA)
+            {
+                assert(toReg != fromReg);
+                inst_RV_RV(ins_Copy(type), toReg, fromReg, type);
+            }
         }
-        inst_RV_RV(ins, fpReg, intReg, targetType);
     }
     else
     {
-        inst_RV_RV(ins_Copy(targetType), targetReg, genConsumeReg(op1), targetType);
-    }
+        var_types targetType = treeNode->TypeGet();
+        regNumber targetReg = treeNode->gtRegNum;
+        assert(targetReg != REG_NA);
 
-    if (op1->IsLocal())
-    {
-        // The lclVar will never be a def.
-        // If it is a last use, the lclVar will be killed by genConsumeReg(), as usual, and genProduceReg will
-        // appropriately set the gcInfo for the copied value.
-        // If not, there are two cases we need to handle:
-        // - If this is a TEMPORARY copy (indicated by the GTF_VAR_DEATH flag) the variable
-        //   will remain live in its original register.
-        //   genProduceReg() will appropriately set the gcInfo for the copied value,
-        //   and genConsumeReg will reset it.
-        // - Otherwise, we need to update register info for the lclVar.
+        // Check whether this node and the node from which we're copying the value have
+        // different register types. This can happen if (currently iff) we have a SIMD
+        // vector type that fits in an integer register, in which case it is passed as
+        // an argument, or returned from a call, in an integer register and must be
+        // copied if it's in an xmm register.
 
-        GenTreeLclVarCommon* lcl = op1->AsLclVarCommon();
-        assert((lcl->gtFlags & GTF_VAR_DEF) == 0);
+        bool srcFltReg = (varTypeIsFloating(op1) || varTypeIsSIMD(op1));
+        bool tgtFltReg = (varTypeIsFloating(treeNode) || varTypeIsSIMD(treeNode));
+        if (srcFltReg != tgtFltReg)
+        {
+            instruction ins;
+            regNumber fpReg;
+            regNumber intReg;
+            if (tgtFltReg)
+            {
+                ins = ins_CopyIntToFloat(op1->TypeGet(), treeNode->TypeGet());
+                fpReg = targetReg;
+                intReg = op1->gtRegNum;
+            }
+            else
+            {
+                ins = ins_CopyFloatToInt(op1->TypeGet(), treeNode->TypeGet());
+                intReg = targetReg;
+                fpReg = op1->gtRegNum;
+            }
+            inst_RV_RV(ins, fpReg, intReg, targetType);
+        }
+        else
+        {
+            inst_RV_RV(ins_Copy(targetType), targetReg, genConsumeReg(op1), targetType);
+        }
 
-        if ((lcl->gtFlags & GTF_VAR_DEATH) == 0 && (treeNode->gtFlags & GTF_VAR_DEATH) == 0)
+        if (op1->IsLocal())
         {
-            LclVarDsc* varDsc = &compiler->lvaTable[lcl->gtLclNum];
+            // The lclVar will never be a def.
+            // If it is a last use, the lclVar will be killed by genConsumeReg(), as usual, and genProduceReg will
+            // appropriately set the gcInfo for the copied value.
+            // If not, there are two cases we need to handle:
+            // - If this is a TEMPORARY copy (indicated by the GTF_VAR_DEATH flag) the variable
+            //   will remain live in its original register.
+            //   genProduceReg() will appropriately set the gcInfo for the copied value,
+            //   and genConsumeReg will reset it.
+            // - Otherwise, we need to update register info for the lclVar.
 
-            // If we didn't just spill it (in genConsumeReg, above), then update the register info
-            if (varDsc->lvRegNum != REG_STK)
+            GenTreeLclVarCommon* lcl = op1->AsLclVarCommon();
+            assert((lcl->gtFlags & GTF_VAR_DEF) == 0);
+
+            if ((lcl->gtFlags & GTF_VAR_DEATH) == 0 && (treeNode->gtFlags & GTF_VAR_DEATH) == 0)
             {
-                // The old location is dying
-                genUpdateRegLife(varDsc, /*isBorn*/ false, /*isDying*/ true DEBUGARG(op1));
+                LclVarDsc* varDsc = &compiler->lvaTable[lcl->gtLclNum];
+
+                // If we didn't just spill it (in genConsumeReg, above), then update the register info
+                if (varDsc->lvRegNum != REG_STK)
+                {
+                    // The old location is dying
+                    genUpdateRegLife(varDsc, /*isBorn*/ false, /*isDying*/ true DEBUGARG(op1));
 
-                gcInfo.gcMarkRegSetNpt(genRegMask(op1->gtRegNum));
+                    gcInfo.gcMarkRegSetNpt(genRegMask(op1->gtRegNum));
 
-                genUpdateVarReg(varDsc, treeNode);
+                    genUpdateVarReg(varDsc, treeNode);
 
-                // The new location is going live
-                genUpdateRegLife(varDsc, /*isBorn*/ true, /*isDying*/ false DEBUGARG(treeNode));
+                    // The new location is going live
+                    genUpdateRegLife(varDsc, /*isBorn*/ true, /*isDying*/ false DEBUGARG(treeNode));
+                }
             }
         }
     }
+
     genProduceReg(treeNode);
 }
 
@@ -4590,13 +4744,24 @@ void CodeGen::genCheckConsumeNode(GenTree* treeNode)
 }
 #endif // DEBUG
 
-// Do liveness update for a subnode that is being consumed by codegen.
-regNumber CodeGen::genConsumeReg(GenTree *tree)
+//--------------------------------------------------------------------
+// genConsumeReg: Do liveness update for a subnode that is being
+// consumed by codegen.
+//
+// Arguments:
+//    tree - GenTree node
+//
+// Return Value:
+//    Returns the reg number of tree.
+//    In case of multi-reg call node returns the first reg number
+//    of the multi-reg return.
+regNumber CodeGen::genConsumeReg(GenTree* tree)
 {
     if (tree->OperGet() == GT_COPY)
     {
         genRegCopy(tree);
     }
+
     // Handle the case where we have a lclVar that needs to be copied before use (i.e. because it
     // interferes with one of the other sources (or the target, if it's a "delayed use" register)). 
     // TODO-Cleanup: This is a special copyReg case in LSRA - consider eliminating these and
@@ -4609,7 +4774,7 @@ regNumber CodeGen::genConsumeReg(GenTree *tree)
     // because if it's on the stack it will always get reloaded into tree->gtRegNum).
     if (genIsRegCandidateLocal(tree))
     {
-        GenTreeLclVarCommon *lcl = tree->AsLclVarCommon();
+        GenTreeLclVarCommonlcl = tree->AsLclVarCommon();
         LclVarDsc* varDsc = &compiler->lvaTable[lcl->GetLclNum()];
         if (varDsc->lvRegNum != REG_STK && varDsc->lvRegNum != tree->gtRegNum)
         {
@@ -4622,7 +4787,7 @@ regNumber CodeGen::genConsumeReg(GenTree *tree)
     // genUpdateLife() will also spill local var if marked as GTF_SPILL by calling CodeGen::genSpillVar
     genUpdateLife(tree);
 
-    assert(tree->gtRegNum != REG_NA);
+    assert(tree->gtHasReg());
 
     // there are three cases where consuming a reg means clearing the bit in the live mask
     // 1. it was not produced by a local
@@ -4647,7 +4812,7 @@ regNumber CodeGen::genConsumeReg(GenTree *tree)
     }
     else
     {
-        gcInfo.gcMarkRegSetNpt(genRegMask(tree->gtRegNum));
+        gcInfo.gcMarkRegSetNpt(tree->gtGetRegMask());
     }
 
     genCheckConsumeNode(tree);
@@ -4911,11 +5076,27 @@ void CodeGen::genConsumeBlockOp(GenTreeBlkOp* blkNode, regNumber dstReg, regNumb
     }
 }
 
-// do liveness update for register produced by the current node in codegen
-void CodeGen::genProduceReg(GenTree *tree)
+//-------------------------------------------------------------------------
+// genProduceReg: do liveness update for register produced by the current
+// node in codegen.
+//
+// Arguments:
+//     tree   -  Gentree node
+//
+// Return Value:
+//     None.
+void CodeGen::genProduceReg(GenTree* tree)
 {
     if (tree->gtFlags & GTF_SPILL)
     {
+        // Code for GT_COPY node gets generated as part of consuming regs by its parent.
+        // A GT_COPY node in turn produces reg result and it should never be marked to
+        // spill.
+        //
+        // Similarly GT_RELOAD node gets generated as part of consuming regs by its
+        // parent and should never be marked for spilling.
+        noway_assert(!tree->IsCopyOrReload());
+
         if (genIsRegCandidateLocal(tree))
         {
             // Store local variable to its home location.
@@ -4927,11 +5108,38 @@ void CodeGen::genProduceReg(GenTree *tree)
         }
         else
         {
-            tree->SetInReg();
-            regSet.rsSpillTree(tree->gtRegNum, tree);
+            // In case of multi-reg call node, spill flag on call node
+            // indicates that one or more of its allocated regs need to
+            // be spilled.  Call node needs to be further queried to 
+            // know which of its result regs needs to be spilled.
+            if (tree->IsMultiRegCall())
+            {
+                GenTreeCall* call = tree->AsCall();
+                ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
+                unsigned regCount = retTypeDesc->GetReturnRegCount();
+
+                for (unsigned i = 0; i < regCount; ++i)
+                {
+                    unsigned flags = call->GetRegSpillFlagByIdx(i);
+                    if ((flags & GTF_SPILL) != 0)
+                    {
+                        regNumber reg = call->GetRegNumByIdx(i);
+                        call->SetInReg();
+                        regSet.rsSpillTree(reg, call, i);
+                        gcInfo.gcMarkRegSetNpt(genRegMask(reg));                      
+                    }
+                }
+            }
+            else
+            {
+                tree->SetInReg();
+                regSet.rsSpillTree(tree->gtRegNum, tree);
+                gcInfo.gcMarkRegSetNpt(genRegMask(tree->gtRegNum));
+            }
+
             tree->gtFlags |= GTF_SPILLED;
             tree->gtFlags &= ~GTF_SPILL;
-            gcInfo.gcMarkRegSetNpt(genRegMask(tree->gtRegNum));
+
             return;
         }
     }
@@ -4950,8 +5158,51 @@ void CodeGen::genProduceReg(GenTree *tree)
         //    the register as live, with a GC pointer, if the variable is dead.
         if (!genIsRegCandidateLocal(tree) ||
             ((tree->gtFlags & GTF_VAR_DEATH) == 0))
-        {
-            gcInfo.gcMarkRegPtrVal(tree->gtRegNum, tree->TypeGet());
+        {            
+            // Multi-reg call node will produce more than one register result.
+            // Mark all the regs produced by call node.
+            if (tree->IsMultiRegCall())
+            {
+                GenTreeCall* call = tree->AsCall();
+                ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
+                unsigned regCount = retTypeDesc->GetReturnRegCount();
+
+                for (unsigned i = 0; i < regCount; ++i)
+                {
+                    regNumber reg = call->GetRegNumByIdx(i);
+                    var_types type = retTypeDesc->GetReturnRegType(i);
+                    gcInfo.gcMarkRegPtrVal(reg, type);
+                }
+            }
+            else if (tree->IsCopyOrReloadOfMultiRegCall())
+            {
+                // we should never see reload of multi-reg call here
+                // because GT_RELOAD gets generated in reg consuming path.
+                noway_assert(tree->OperGet() == GT_COPY);
+
+                // A multi-reg GT_COPY node produces those regs to which
+                // copy has taken place.
+                GenTreeCopyOrReload* copy = tree->AsCopyOrReload();
+                GenTreeCall* call = copy->gtGetOp1()->AsCall();
+                ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
+                unsigned regCount = retTypeDesc->GetReturnRegCount();
+
+                for (unsigned i = 0; i < regCount; ++i)
+                {
+                    var_types type = retTypeDesc->GetReturnRegType(i);
+                    regNumber fromReg = call->GetRegNumByIdx(i);
+                    regNumber toReg = copy->GetRegNumByIdx(i);
+
+                    if (toReg != REG_NA)
+                    {
+                        gcInfo.gcMarkRegPtrVal(toReg, type);
+                    }
+                }
+            }
+            else
+            {
+                gcInfo.gcMarkRegPtrVal(tree->gtRegNum, tree->TypeGet());
+            }
         }
     }
     tree->SetInReg();
@@ -5482,20 +5733,19 @@ void CodeGen::genCallInstruction(GenTreePtr node)
     }
 
     // Determine return value size(s).
+    ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
     emitAttr retSize = EA_PTRSIZE;
-
-#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
     emitAttr secondRetSize = EA_UNKNOWN;
-    if (varTypeIsStruct(call->gtType))
+
+    if (call->HasMultiRegRetVal())
     {
-        assert(call->HasMultiRegRetVal());
-        ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
         retSize = emitTypeSize(retTypeDesc->GetReturnRegType(0));
         secondRetSize = emitTypeSize(retTypeDesc->GetReturnRegType(1));
     }
     else
-#endif // FEATURE_UNIX_AMD64_STRUCT_PASSING  
     {
+        assert(!varTypeIsStruct(call));
+
         if (call->gtType == TYP_REF ||
             call->gtType == TYP_ARRAY)
         {
@@ -5623,21 +5873,7 @@ void CodeGen::genCallInstruction(GenTreePtr node)
         else
         {
             // Direct call to a non-virtual user function.
-            CORINFO_ACCESS_FLAGS  aflags = CORINFO_ACCESS_ANY;
-            if (call->IsSameThis())
-            {
-                aflags = (CORINFO_ACCESS_FLAGS)(aflags | CORINFO_ACCESS_THIS);
-            }
-
-            if ((call->NeedsNullCheck()) == 0)
-            {
-                aflags = (CORINFO_ACCESS_FLAGS)(aflags | CORINFO_ACCESS_NONNULL);
-            }
-
-            CORINFO_CONST_LOOKUP addrInfo;
-            compiler->info.compCompHnd->getFunctionEntryPoint(methHnd, &addrInfo, aflags);
-
-            addr = addrInfo.addr;
+            addr = call->gtDirectCallAddress;
         }
 
         // Non-virtual direct calls to known addresses
@@ -5693,25 +5929,43 @@ void CodeGen::genCallInstruction(GenTreePtr node)
 #endif // _TARGET_X86_
         {
             regNumber returnReg;
-            // TODO-Cleanup: For UNIX AMD64, we should not be allocating a return register for struct
-            // returns that are on stack.
-            // For the SIMD case, however, we do want a "return register", as the consumer of the call
-            // will want the value in a register. In future we should flexibly allocate this return
-            // register, but that should be done with a general cleanup of the allocation of return
-            // registers for structs.
-            if (varTypeIsFloating(returnType)
-                FEATURE_UNIX_AMD64_STRUCT_PASSING_ONLY( || varTypeIsSIMD(returnType)))
+
+            if (call->HasMultiRegRetVal())
             {
-                returnReg = REG_FLOATRET;
+                assert(retTypeDesc != nullptr);
+                unsigned regCount = retTypeDesc->GetReturnRegCount();
+
+                // If regs allocated to call node are different from ABI return
+                // regs in which the call has returned its result, move the result
+                // to regs allocated to call node.
+                for (unsigned i = 0; i < regCount; ++i)
+                {
+                    var_types regType = retTypeDesc->GetReturnRegType(i);
+                    returnReg = retTypeDesc->GetABIReturnReg(i);
+                    regNumber allocatedReg = call->GetRegNumByIdx(i);
+                    if (returnReg != allocatedReg)
+                    {
+                        inst_RV_RV(ins_Copy(regType), allocatedReg, returnReg, regType);
+                    }
+                }
             }
             else
-            {
-                returnReg = REG_INTRET;
-            }
-            if (call->gtRegNum != returnReg)
-            {
-                inst_RV_RV(ins_Copy(returnType), call->gtRegNum, returnReg, returnType);
+            {                
+                if (varTypeIsFloating(returnType))
+                {
+                    returnReg = REG_FLOATRET;
+                }
+                else
+                {
+                    returnReg = REG_INTRET;
+                }
+
+                if (call->gtRegNum != returnReg)
+                {
+                    inst_RV_RV(ins_Copy(returnType), call->gtRegNum, returnReg, returnType);
+                }                
             }
+
             genProduceReg(call);
         }
     }
@@ -7728,62 +7982,6 @@ CodeGen::genIntrinsic(GenTreePtr treeNode)
     genProduceReg(treeNode);
 }
 
-//------------------------------------------------------------------------------------------------ //
-// getFirstArgWithStackSlot - returns the first argument with stack slot on the caller's frame.
-//
-// Return value:
-//    The number of the first argument with stack slot on the caller's frame.
-//
-// Note:
-//    On Windows the caller always creates slots (homing space) in its frame for the 
-//    first 4 arguments of a calee (register passed args). So, the the variable number
-//    (lclNum) for the first argument with a stack slot is always 0.
-//    For System V systems there is no such calling convention requirement, and the code needs to find
-//    the first stack passed argument from the caller. This is done by iterating over 
-//    all the lvParam variables and finding the first with lvArgReg equals to REG_STK.
-//    
-unsigned
-CodeGen::getFirstArgWithStackSlot()
-{
-#if defined(FEATURE_UNIX_AMD64_STRUCT_PASSING)
-    unsigned baseVarNum = compiler->lvaFirstStackIncomingArgNum;
-
-    if (compiler->lvaFirstStackIncomingArgNum != BAD_VAR_NUM)
-    {
-        baseVarNum = compiler->lvaFirstStackIncomingArgNum;
-    }
-    else
-    {
-        // Iterate over all the local variables in the lclvartable. 
-        // They contain all the implicit argumets - thisPtr, retBuf, 
-        // generic context, PInvoke cookie, var arg cookie,no-standard args, etc.
-        LclVarDsc* varDsc = nullptr;
-        for (unsigned i = 0; i < compiler->lvaCount; i++)
-        {
-            varDsc = &(compiler->lvaTable[i]);
-
-            // We are iterating over the arguments only.
-            assert(varDsc->lvIsParam);
-
-            if (varDsc->lvArgReg == REG_STK)
-            {
-                baseVarNum = compiler->lvaFirstStackIncomingArgNum = i;
-                break;
-            }
-        }
-        assert(varDsc != nullptr);
-    }
-
-    return baseVarNum;
-#elif defined(_TARGET_AMD64_)
-    return 0;
-#else
-    // Not implemented for x86.
-    NYI_X86("getFirstArgWithStackSlot not yet implemented for x86.");
-    return BAD_VAR_NUM;
-#endif // !FEATURE_UNIX_AMD64_STRUCT_PASSING
-}
-
 //-------------------------------------------------------------------------- //
 // getBaseVarForPutArgStk - returns the baseVarNum for passing a stack arg.
 //
index 1c2c11e..f2d4dff 100644 (file)
@@ -73,14 +73,12 @@ void Compiler::JitLogEE(unsigned level, const char* fmt, ...)
 {
     va_list args;
 
-#ifndef CROSSGEN_COMPILE
     if (verbose)
     {
         va_start(args, fmt);
-        logf_stdout(fmt, args);
+        vflogf(jitstdout, fmt, args);
         va_end(args);
     }
-#endif
 
     va_start(args, fmt);
     vlogf(level, fmt, args);
@@ -657,7 +655,7 @@ void                Compiler::compStartup()
     // Static vars of ValueNumStore
     ValueNumStore::InitValueNumStoreStatics();
 
-    compDisplayStaticSizes(stdout);
+    compDisplayStaticSizes(jitstdout);
 }
 
 /*****************************************************************************
@@ -683,7 +681,7 @@ void                Compiler::compShutdown()
     emitter::emitDone();
 
 #if defined(DEBUG) || defined(INLINE_DATA)
-    // Finish off any in-progress inline xml
+    // Finish reading and/or writing inline xml
     InlineStrategy::FinalizeXml();
 #endif // defined(DEBUG) || defined(INLINE_DATA)
 
@@ -695,7 +693,7 @@ void                Compiler::compShutdown()
 #endif
 
     // Where should we write our statistics output?
-    FILE* fout = stdout;
+    FILE* fout = jitstdout;
 
 #ifdef FEATURE_JIT_METHOD_PERF
     if (compJitTimeLogFilename != NULL)
@@ -926,10 +924,10 @@ void                Compiler::compShutdown()
 #endif
     {
         fprintf(fout, "\nAll allocations:\n");
-        s_aggMemStats.Print(stdout);
+        s_aggMemStats.Print(jitstdout);
 
         fprintf(fout, "\nLargest method:\n");
-        s_maxCompMemStats.Print(stdout);
+        s_maxCompMemStats.Print(jitstdout);
     }
 
 #endif // MEASURE_MEM_ALLOC
@@ -939,7 +937,7 @@ void                Compiler::compShutdown()
     if (JitConfig.DisplayLoopHoistStats() != 0)
 #endif // DEBUG
     {
-        PrintAggregateLoopHoistStats(stdout);
+        PrintAggregateLoopHoistStats(jitstdout);
     }
 #endif // LOOP_HOIST_STATS
 
@@ -1871,7 +1869,6 @@ unsigned ReinterpretHexAsDecimal(unsigned in)
     return result;
 }
 
-inline
 void                Compiler::compInitOptions(CORJIT_FLAGS* jitFlags)
 {
 #ifdef UNIX_AMD64_ABI
@@ -2465,7 +2462,7 @@ void                Compiler::compInitOptions(CORJIT_FLAGS* jitFlags)
     opts.disAsm2        = false;
     opts.dspUnwind      = false;
     s_dspMemStats       = false;
-    opts.compLargeBranches = false;
+    opts.compLongAddress = false;
     opts.compJitELTHookEnabled = false;
 
 #ifdef LATE_DISASM
@@ -2534,8 +2531,8 @@ void                Compiler::compInitOptions(CORJIT_FLAGS* jitFlags)
         if (JitConfig.DisplayMemStats() != 0)
             s_dspMemStats = true;
 
-        if (JitConfig.JitLargeBranches() != 0)
-            opts.compLargeBranches = true;
+        if (JitConfig.JitLongAddress() != 0)
+            opts.compLongAddress = true;
     }
 
     if (verboseDump)
@@ -2826,7 +2823,7 @@ void JitDump(const char* pcFormat, ...)
 {
     va_list lst;    
     va_start(lst, pcFormat);
-    logf_stdout(pcFormat, lst);
+    vflogf(jitstdout, pcFormat, lst);
     va_end(lst);
 }
 
@@ -3412,6 +3409,53 @@ bool  Compiler::compRsvdRegCheck(FrameLayoutState curState)
 }
 #endif // _TARGET_ARMARCH_
 
+void                Compiler::compFunctionTraceStart()
+{
+#ifdef DEBUG
+    if (compIsForInlining())
+        return;
+
+    if ((JitConfig.JitFunctionTrace() != 0) && !opts.disDiffable)
+    {
+        LONG newJitNestingLevel = InterlockedIncrement(&Compiler::jitNestingLevel);
+        if (newJitNestingLevel <= 0)
+        {
+            printf("{ Illegal nesting level %d }\n", newJitNestingLevel);
+        }
+
+        for (LONG i = 0; i < newJitNestingLevel - 1; i++)
+            printf("  ");
+        printf("{ Start Jitting %s\n", info.compFullName); /* } editor brace matching workaround for this printf */
+    }
+#endif // DEBUG
+}
+
+void                Compiler::compFunctionTraceEnd(void* methodCodePtr, ULONG methodCodeSize, bool isNYI)
+{
+#ifdef DEBUG
+    assert(!compIsForInlining());
+
+    if ((JitConfig.JitFunctionTrace() != 0) && !opts.disDiffable)
+    {
+        LONG newJitNestingLevel = InterlockedDecrement(&Compiler::jitNestingLevel);
+        if (newJitNestingLevel < 0)
+        {
+            printf("{ Illegal nesting level %d }\n", newJitNestingLevel);
+        }
+
+        for (LONG i = 0; i < newJitNestingLevel; i++)
+            printf("  ");
+        /* { editor brace-matching workaround for following printf */
+        printf("} Jitted Entry %03x at" FMT_ADDR "method %s size %08x%s\n", 
+            Compiler::jitTotalMethodCompiled,
+            DBG_ADDR(methodCodePtr),
+            info.compFullName,
+            methodCodeSize,
+            isNYI ? " NYI" : (compIsForImportOnly() ? " import only" : ""));
+    }
+#endif // DEBUG 
+}
+
 //*********************************************************************************************
 // #Phases
 // 
@@ -3441,21 +3485,7 @@ void                 Compiler::compCompile(void * * methodCodePtr,
 
     EndPhase(PHASE_PRE_IMPORT);
 
-#ifdef DEBUG
-    bool funcTrace = JitConfig.JitFunctionTrace() != 0;
-
-    if (!compIsForInlining())
-    {
-        LONG newJitNestingLevel = InterlockedIncrement(&Compiler::jitNestingLevel);
-        assert(newJitNestingLevel > 0);
-        if (funcTrace && !opts.disDiffable)
-        {
-            for (LONG i = 0; i < newJitNestingLevel - 1; i++)
-                printf("  ");
-            printf("{ Start Jitting %s\n", info.compFullName); /* } editor brace matching workaround for this printf */
-        }
-    }
-#endif // DEBUG
+    compFunctionTraceStart();
 
     /* Convert the instrs in each basic block to a tree based intermediate representation */
 
@@ -3489,7 +3519,10 @@ void                 Compiler::compCompile(void * * methodCodePtr,
 
     // Maybe the caller was not interested in generating code
     if (compIsForImportOnly())
+    {
+        compFunctionTraceEnd(nullptr, 0, false);
         return;
+    }
 
 #if !FEATURE_EH
     // If we aren't yet supporting EH in a compiler bring-up, remove as many EH handlers as possible, so
@@ -3889,28 +3922,17 @@ void                 Compiler::compCompile(void * * methodCodePtr,
     ++Compiler::jitTotalMethodCompiled;
 #endif // defined(DEBUG)
 
-#ifdef DEBUG
-    LONG newJitNestingLevel = InterlockedDecrement(&Compiler::jitNestingLevel);
-    assert(newJitNestingLevel >= 0);
-
-    if (funcTrace && !opts.disDiffable)
-    {
-        for (LONG i = 0; i < newJitNestingLevel; i++)
-            printf("  ");
-        /* { editor brace-matching workaround for following printf */
-        printf("} Jitted Entry %03x at" FMT_ADDR "method %s size %08x\n", 
-               Compiler::jitTotalMethodCompiled, DBG_ADDR(*methodCodePtr),
-               info.compFullName, *methodCodeSize);
-    }
+    compFunctionTraceEnd(*methodCodePtr, *methodCodeSize, false);
 
 #if FUNC_INFO_LOGGING
+#ifdef DEBUG // We only have access to info.compFullName in DEBUG builds.
     if (compJitFuncInfoFile != NULL)
     {
         assert(!compIsForInlining());
         fprintf(compJitFuncInfoFile, "%s\n", info.compFullName);
     }
+#endif // DEBUG
 #endif // FUNC_INFO_LOGGING
-#endif // DEBUG 
 }
 
 /*****************************************************************************/
@@ -4110,7 +4132,7 @@ int           Compiler::compCompile(CORINFO_METHOD_HANDLE methodHnd,
     }
 #endif // FUNC_INFO_LOGGING
 
-//  if (s_compMethodsCount==0) setvbuf(stdout, NULL, _IONBF, 0);
+//  if (s_compMethodsCount==0) setvbuf(jitstdout, NULL, _IONBF, 0);
 
     info.compCompHnd     = compHnd;
     info.compMethodHnd   = methodHnd;
@@ -4338,7 +4360,7 @@ void Compiler::compCompileFinish()
     {
         printf("\nAllocations for %s (MethodHash=%08x)\n",
                info.compFullName, info.compMethodHash());
-        genMemStats.Print(stdout);
+        genMemStats.Print(jitstdout);
     }
 #endif // DEBUG
 #endif // MEASURE_MEM_ALLOC
@@ -4731,10 +4753,8 @@ int           Compiler::compCompileHelper (CORINFO_MODULE_HANDLE            clas
         }
         info.compRetNativeType = info.compRetType         = JITtype2varType(methodInfo->args.retType);
 
-#if INLINE_NDIRECT
         info.compCallUnmanaged   = 0;
         info.compLvFrameListRoot = BAD_VAR_NUM;
-#endif
 
 #if FEATURE_FIXED_OUT_ARGS
         lvaOutgoingArgSpaceSize  = 0;
index 818408a..4c3c548 100644 (file)
@@ -2218,12 +2218,11 @@ public :
     unsigned            lvaVarargsBaseOfStkArgs;    // Pointer (computed based on incoming varargs handle) to the start of the stack arguments
 #endif // _TARGET_X86_
 
-#if INLINE_NDIRECT
     unsigned            lvaInlinedPInvokeFrameVar;  // variable representing the InlinedCallFrame
+    unsigned            lvaReversePInvokeFrameVar;  // variable representing the reverse PInvoke frame
 #if FEATURE_FIXED_OUT_ARGS
     unsigned            lvaPInvokeFrameRegSaveVar;  // variable representing the RegSave for PInvoke inlining.
 #endif
-#endif
     unsigned            lvaMonAcquired; // boolean variable introduced into in synchronized methods 
                                         // that tracks whether the lock has been taken
 
@@ -2656,10 +2655,8 @@ protected :
                                                 unsigned mflags);
     GenTreePtr          impImportIndirectCall(CORINFO_SIG_INFO * sig,
                                               IL_OFFSETX ilOffset = BAD_IL_OFFSET);
-#ifdef INLINE_NDIRECT
     void                impPopArgsForUnmanagedCall(GenTreePtr call,
                                                    CORINFO_SIG_INFO * sig);
-#endif // INLINE_NDIRECT
 
     void                impInsertHelperCall(CORINFO_HELPER_DESC * helperCall);
     void                impHandleAccessAllowed(CorInfoIsAccessAllowedResult result,
@@ -2818,12 +2815,13 @@ public:
         return impTokenToHandle(pResolvedToken, pRuntimeLookup, mustRestoreHandle, TRUE);
     }
 
-    GenTreePtr          impLookupToTree(CORINFO_LOOKUP *pLookup,
+    GenTreePtr          impLookupToTree(CORINFO_RESOLVED_TOKEN *pResolvedToken, 
+                                        CORINFO_LOOKUP *pLookup,
                                         unsigned flags,
                                         void *compileTimeHandle);
 
-    GenTreePtr          impRuntimeLookupToTree(CORINFO_RUNTIME_LOOKUP_KIND kind,
-                                               CORINFO_RUNTIME_LOOKUP *pLookup,
+    GenTreePtr          impRuntimeLookupToTree(CORINFO_RESOLVED_TOKEN *pResolvedToken, 
+                                               CORINFO_LOOKUP *pLookup,
                                                void * compileTimeHandle);
 
     GenTreePtr          impReadyToRunLookupToTree(CORINFO_CONST_LOOKUP *pLookup,
@@ -2833,7 +2831,8 @@ public:
     GenTreePtr          impReadyToRunHelperToTree(CORINFO_RESOLVED_TOKEN * pResolvedToken,
                                         CorInfoHelpFunc helper,
                                         var_types type,
-                                        GenTreePtr arg = NULL);
+                                        GenTreeArgList* arg = NULL,
+                                        CORINFO_LOOKUP_KIND * pGenericLookupKind = NULL);
 
     GenTreePtr          impCastClassOrIsInstToTree(GenTreePtr op1, 
                                         GenTreePtr op2,
@@ -3138,9 +3137,11 @@ private:
                                                 GenTreePtr additionalTreesToBeEvaluatedBefore,
                                                 GenTreePtr variableBeingDereferenced,
                                                 InlArgInfo * inlArgInfo);
-    void                impMarkInlineCandidate(GenTreePtr call, CORINFO_CONTEXT_HANDLE exactContextHnd);
 
-    
+    void                impMarkInlineCandidate(GenTreePtr call,
+                                               CORINFO_CONTEXT_HANDLE exactContextHnd,
+                                               CORINFO_CALL_INFO* callInfo);
+
     bool                impTailCallRetTypeCompatible(var_types callerRetType, 
                                                      CORINFO_CLASS_HANDLE callerRetTypeClass,
                                                      var_types calleeRetType,
@@ -3409,6 +3410,8 @@ public :
 
 #endif // !_TARGET_X86_
 
+    void                fgAddReversePInvokeEnterExit();
+
     bool                fgMoreThanOneReturnBlock();
 
     // The number of separate return points in the method.
@@ -7458,6 +7461,17 @@ public :
 #endif
         }
 
+        // true if we should use insert the REVERSE_PINVOKE_{ENTER,EXIT} helpers in the method
+        // prolog/epilog
+        inline bool         IsReversePInvoke()
+        {
+#if COR_JIT_EE_VERSION > 460
+            return (jitFlags->corJitFlags2 & CORJIT_FLG2_REVERSE_PINVOKE) != 0;
+#else
+            return false;
+#endif
+        }
+
         // true if we must generate compatible code with Jit64 quirks
         inline bool         IsJit64Compat()
         {
@@ -7552,7 +7566,7 @@ public :
         bool                dspOrder;       // Display names of each of the methods that we ngen/jit
         bool                dspUnwind;      // Display the unwind info output
         bool                dspDiffable;    // Makes the Jit Dump 'diff-able' (currently uses same COMPlus_* flag as disDiffable)
-        bool                compLargeBranches; // Force using large conditional branches
+        bool                compLongAddress;// Force using large pseudo instructions for long address (IF_LARGEJMP/IF_LARGEADR/IF_LARGLDC)
         bool                dspGCtbls;      // Display the GC tables
 #endif
 
@@ -7801,10 +7815,8 @@ public :
         UNATIVE_OFFSET  compTotalHotCodeSize;       // Total number of bytes of Hot Code in the method
         UNATIVE_OFFSET  compTotalColdCodeSize;      // Total number of bytes of Cold Code in the method
 
-#if INLINE_NDIRECT
         unsigned        compCallUnmanaged;          // count of unmanaged calls
         unsigned        compLvFrameListRoot;        // lclNum for the Frame root
-#endif
         unsigned        compXcptnsCount;            // Number of exception-handling clauses read in the method's IL.
                                                     // You should generally use compHndBBtabCount instead: it is the
                                                     // current number of EH clauses (after additions like synchronized
@@ -7869,11 +7881,14 @@ public :
         // 2. As per the System V ABI, the address of RetBuf needs to be returned by  
         //    methods with hidden RetBufArg in RAX. In such case GT_RETURN is of TYP_BYREF,  
         //    returning the address of RetBuf.  
-#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        //
+        // 3. Windows 64-bit native calling convention also requires the address of RetBuff
+        //    to be returned in RAX.
+#ifdef _TARGET_AMD64_
         return (info.compRetBuffArg != BAD_VAR_NUM);
-#else // FEATURE_UNIX_AMD64_STRUCT_PASSING  
+#else // !_TARGET_AMD64_  
         return (compIsProfilerHookNeeded()) && (info.compRetBuffArg != BAD_VAR_NUM);
-#endif // !FEATURE_UNIX_AMD64_STRUCT_PASSING  
+#endif // !_TARGET_AMD64_
     }
 
     // Returns true if the method returns a value in more than one return register
@@ -8082,7 +8097,7 @@ public :
             nraTotalSizeUsed  += ms.nraTotalSizeUsed;
         }
 
-        void Print(FILE* f); // Print these stats to stdout.
+        void Print(FILE* f); // Print these stats to jitstdout.
     };
 
     static CritSecObject s_memStatsLock;    // This lock protects the data structures below.
@@ -8238,6 +8253,9 @@ public:
 #endif // DEBUG
 #endif // MEASURE_MEM_ALLOC
 
+    void                compFunctionTraceStart();
+    void                compFunctionTraceEnd(void* methodCodePtr, ULONG methodCodeSize, bool isNYI);
+
 protected:
 
     unsigned            compMaxUncheckedOffsetForNullObject; 
index cfe2064..a9e3693 100644 (file)
@@ -632,7 +632,7 @@ bool                isRegParamType(var_types type)
 #endif // !_TARGET_X86_
 }
 
-#ifdef _TARGET_AMD64_
+#if defined(_TARGET_AMD64_) || defined(_TARGET_ARM64_)
 /*****************************************************************************/
  // Returns true if 'type' is a struct that can be enregistered for call args 
  //                         or can be returned by value in multiple registers.
@@ -680,7 +680,7 @@ bool   Compiler::VarTypeIsMultiByteAndCanEnreg(var_types type,
 
     return result;
 }
-#endif //_TARGET_AMD64_
+#endif //_TARGET_AMD64_ || _TARGET_ARM64_
 
 
 /*****************************************************************************/
index 28c03dc..7d8383f 100644 (file)
@@ -1543,13 +1543,13 @@ void    DisAssembler::disAsmCode(BYTE* hotCodePtr, size_t hotCodeSize, BYTE* col
         }
     }
 #else // !DEBUG
-    // NOTE: non-DEBUG builds always use stdout currently!
-    disAsmFile = stdout;
+    // NOTE: non-DEBUG builds always use jitstdout currently!
+    disAsmFile = jitstdout;
 #endif // !DEBUG
 
     if (disAsmFile == nullptr)
     {
-        disAsmFile = stdout;
+        disAsmFile = jitstdout;
     }
 
     // As this writes to a common file, this is not reentrant.
@@ -1591,7 +1591,7 @@ void    DisAssembler::disAsmCode(BYTE* hotCodePtr, size_t hotCodeSize, BYTE* col
     DisasmBuffer(disAsmFile, /* printIt */ true);
     fprintf(disAsmFile, "\n");
 
-    if (disAsmFile != stdout)
+    if (disAsmFile != jitstdout)
     {
         fclose(disAsmFile);
     }
index 004642e..a41b147 100644 (file)
@@ -20,9 +20,15 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 #include "emit.h"
 #include "corexcep.h"
 
+#if !defined(PLATFORM_UNIX)
+#include <io.h>    // For _dup, _setmode
+#include <fcntl.h> // For _O_TEXT
+#endif
 
 /*****************************************************************************/
 
+FILE* jitstdout = nullptr;
+
 ICorJitHost* g_jitHost = nullptr;
 static CILJit* ILJitter = 0;        // The one and only JITTER I return
 #ifndef FEATURE_MERGE_JIT_AND_ENGINE
@@ -61,6 +67,18 @@ void __stdcall jitStartup(ICorJitHost* jitHost)
         JitConfig.initialize(jitHost);
     }
 
+#if defined(PLATFORM_UNIX)
+    jitstdout = procstdout();
+#else
+    if (jitstdout == nullptr)
+    {
+        int jitstdoutFd = _dup(_fileno(procstdout()));
+        _setmode(jitstdoutFd, _O_TEXT);
+        jitstdout = _fdopen(jitstdoutFd, "w");
+        assert(jitstdout != nullptr);
+    }
+#endif
+
 #ifdef FEATURE_TRACELOGGING
     JitTelemetry::NotifyDllProcessAttach();
 #endif
@@ -70,6 +88,12 @@ void __stdcall jitStartup(ICorJitHost* jitHost)
 void jitShutdown()
 {
     Compiler::compShutdown();
+
+    if (jitstdout != procstdout())
+    {
+        fclose(jitstdout);
+    }
+
 #ifdef FEATURE_TRACELOGGING
     JitTelemetry::NotifyDllProcessDetach();
 #endif
index 8c2c321..b7d0d30 100644 (file)
@@ -2188,7 +2188,7 @@ void                emitter::emitSetFrameRangeGCRs(int offsLo, int offsHi)
             printf("-%04X ... %04X\n", -offsLo, offsHi);
 #else
             printf("-%04X ... -%04X\n", -offsLo, -offsHi);
-            assert(offsHi <  0);
+            assert(offsHi <= 0);
 #endif
           
         }
@@ -3721,6 +3721,8 @@ AGAIN:
         else if (emitIsUncondJump(jmp))
         {
             // Nothing to do; we don't shrink these.
+            assert(jmp->idjShort);
+            ssz = JMP_SIZE_SMALL;
         }
         else if (emitIsCmpJump(jmp))
         {
@@ -3732,6 +3734,12 @@ AGAIN:
             nsd = LBL_DIST_SMALL_MAX_NEG;
             psd = LBL_DIST_SMALL_MAX_POS;
         }
+        else if (emitIsLoadConstant(jmp))
+        {
+            ssz = LDC_SIZE_SMALL;
+            nsd = LDC_DIST_SMALL_MAX_NEG;
+            psd = LDC_DIST_SMALL_MAX_POS;
+        }
         else
         {
             assert(!"Unknown jump instruction");
@@ -3793,6 +3801,41 @@ AGAIN:
 
         // If this is a jump via register, the instruction size does not change, so we are done.
 
+#if defined(_TARGET_ARM64_)
+        // JIT code and data will be allocated together for arm64 so the relative offset to JIT data is known.
+        // In case such offset can be encodeable for `ldr` (+-1MB), shorten it.
+        if (jmp->idAddr()->iiaIsJitDataOffset())
+        {
+            // Reference to JIT data
+            assert(jmp->idIsBound());
+            UNATIVE_OFFSET srcOffs = jmpIG->igOffs + jmp->idjOffs;
+
+            int doff = jmp->idAddr()->iiaGetJitDataOffset();
+            assert(doff >= 0);
+            ssize_t imm = emitGetInsSC(jmp);
+            assert((imm >= 0) && (imm < 0x1000));   // 0x1000 is arbitrary, currently 'imm' is always 0
+
+            unsigned dataOffs = (unsigned)(doff + imm);
+            assert(dataOffs < emitDataSize());
+
+            // Conservately assume JIT data starts after the entire code size.
+            // TODO-ARM64: we might consider only hot code size which will be computed later in emitComputeCodeSizes().
+            assert(emitTotalCodeSize > 0);
+            UNATIVE_OFFSET maxDstOffs = emitTotalCodeSize + dataOffs;
+
+            // Check if the distance is within the encoding length.
+            jmpDist = maxDstOffs - srcOffs;
+            extra = jmpDist - psd;
+            if (extra <= 0)
+            {
+                goto SHORT_JMP;
+            }
+
+            // Keep the large form.
+            continue;
+        }
+#endif
+
         /* Have we bound this jump's target already? */
 
         if  (jmp->idIsBound())
@@ -3981,10 +4024,6 @@ AGAIN:
             }
         }
 
-        // TODO-ARM64-NYI: we couldn't shorten the branch/label load into a size that fits a single b.cond or adr instruction. 
-        // We need to implement multiple-instruction sequences to handle large ranges, e.g. b.!cond / b, and adrp/adr.
-        NYI_ARM64("Implement pseudo-instructions for large conditional branch and large load label address");
-
         /* We arrive here if the jump couldn't be made short, at least for now */
 
         /* We had better not have eagerly marked the jump as short
@@ -4109,7 +4148,9 @@ AGAIN:
         //    insSize isz = emitInsSize(jmp->idInsFmt());
         //    jmp->idInsSize(isz);
 #elif defined(_TARGET_ARM64_)
-        // TODO-ARM64-NYI: Support large conditional pseudo-op branches
+        // The size of IF_LARGEJMP/IF_LARGEADR/IF_LARGELDC are 8 or 12.
+        // All other code size is 4.
+        assert((sizeDif == 4) || (sizeDif == 8));
 #else
   #error Unsupported or unset target architecture
 #endif
@@ -4247,6 +4288,14 @@ void                emitter::emitCheckFuncletBranch(instrDesc * jmp, insGroup *
     }
 #endif // _TARGET_ARMARCH_
 
+#ifdef _TARGET_ARM64_
+    // No interest if it's not jmp.
+    if (emitIsLoadLabel(jmp) || emitIsLoadConstant(jmp))
+    {
+        return;
+    }
+#endif // _TARGET_ARM64_
+
     insGroup * tgtIG = jmp->idAddr()->iiaIGlabel;
     assert(tgtIG);
     if (tgtIG->igFuncIdx != jmpIG->igFuncIdx)
@@ -4505,14 +4554,21 @@ unsigned            emitter::emitEndCodeGen(Compiler *comp,
         NYI_ARM64("Need to handle fix-up to data from cold code.");
     }
 
-    emitCmpHandle->allocMem(emitTotalHotCodeSize + emitConsDsc.dsdOffs, emitTotalColdCodeSize,
+    UNATIVE_OFFSET roDataAlignmentDelta = 0;
+    if (emitConsDsc.dsdOffs)
+    {
+        UNATIVE_OFFSET roDataAlignment = sizeof(void*); // 8 Byte align by default.
+        roDataAlignmentDelta = (UNATIVE_OFFSET)ALIGN_UP(emitTotalHotCodeSize, roDataAlignment) - emitTotalHotCodeSize;
+        assert((roDataAlignmentDelta == 0) || (roDataAlignmentDelta == 4));
+    }
+    emitCmpHandle->allocMem(emitTotalHotCodeSize + roDataAlignmentDelta + emitConsDsc.dsdOffs, emitTotalColdCodeSize,
         0,
         xcptnsCount,
         allocMemFlag,
         (void**)&codeBlock, (void**)&coldCodeBlock,
         (void**)&consBlock);
 
-    consBlock = codeBlock + emitTotalHotCodeSize;
+    consBlock = codeBlock + emitTotalHotCodeSize + roDataAlignmentDelta;
 
 #else
     emitCmpHandle->allocMem( emitTotalHotCodeSize, emitTotalColdCodeSize,
@@ -4973,7 +5029,8 @@ unsigned            emitter::emitEndCodeGen(Compiler *comp,
                     // Presumably we could also just call "emitOutputLJ(NULL, adr, jmp)", like for long jumps?
                     *(short int *)adr -= (short)adj;
 #elif defined(_TARGET_ARM64_)
-                    NYI_ARM64("Fill this in for Arm64");
+                    assert(!jmp->idAddr()->iiaHasInstrCount());
+                    emitOutputLJ(NULL, adr, jmp);
 #else
   #error Unsupported or unset target architecture
 #endif
@@ -4983,12 +5040,9 @@ unsigned            emitter::emitEndCodeGen(Compiler *comp,
                     // Patch Forward non-Short Jump
 #if defined(_TARGET_XARCH_)
                     *(int  *)adr -= adj;
-#elif defined(_TARGET_ARM_)
+#elif defined(_TARGET_ARMARCH_)
                     assert(!jmp->idAddr()->iiaHasInstrCount());
-                    // This handles both medium and long jumps
                     emitOutputLJ(NULL, adr, jmp);
-#elif defined(_TARGET_ARM64_)
-                    NYI_ARM64("Fill this in for Arm64");
 #else
   #error Unsupported or unset target architecture
 #endif
index 67adcdf..ea9d19b 100644 (file)
@@ -983,8 +983,32 @@ protected:
         void            idCodeSize(unsigned sz) { _idCodeSize = sz; assert(sz == _idCodeSize);     }
 
 #elif defined(_TARGET_ARM64_)
-
-        unsigned        idCodeSize() const      { return 4; }
+        unsigned        idCodeSize() const      {
+                                                    int size = 4;
+                                                    switch (idInsFmt())
+                                                    {
+                                                        case IF_LARGEADR:
+                                                            // adrp + add
+                                                        case IF_LARGEJMP:
+                                                            // b<cond> + b<uncond>
+                                                            size = 8;
+                                                            break;
+                                                        case IF_LARGELDC:
+                                                            if (isVectorRegister(idReg1()))
+                                                            {
+                                                                // adrp + ldr + fmov
+                                                                size = 12;
+                                                            }
+                                                            else
+                                                            {
+                                                                // adrp + ldr
+                                                                size = 8;
+                                                            }
+                                                            break;
+                                                    }
+
+                                                    return size;
+                                                 }
 
 #elif defined(_TARGET_ARM_)
 
@@ -1797,10 +1821,10 @@ public:
     void            emitSetFrameRangeArgs(int offsLo, int offsHi);
 
     static instruction      emitJumpKindToIns(emitJumpKind jumpKind);
+    static emitJumpKind     emitInsToJumpKind(instruction ins);
     static emitJumpKind     emitReverseJumpKind(emitJumpKind jumpKind);
 
 #ifdef _TARGET_ARM_
-    static emitJumpKind     emitInsToJumpKind(instruction ins);
     static unsigned         emitJumpKindCondCode(emitJumpKind jumpKind);
 #endif
 
index 99049e4..e2daab4 100644 (file)
@@ -10,7 +10,6 @@ XX                                                                           XX
 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 */
-
 #include "jitpch.h"
 #ifdef _MSC_VER
 #pragma hdrstop
@@ -4280,7 +4279,7 @@ void                emitter::emitIns_J(instruction   ins,
         id->idjKeepLong = emitComp->fgInDifferentRegions(emitComp->compCurBB, dst);
 
 #ifdef DEBUG
-        if (emitComp->opts.compLargeBranches)        // Force long branches
+        if (emitComp->opts.compLongAddress)        // Force long branches
             id->idjKeepLong = 1;
 #endif // DEBUG
     }
index 33843d3..c77f9ab 100644 (file)
@@ -56,6 +56,25 @@ const emitJumpKind      emitReverseJumpKinds[] =
 }
 
 /*****************************************************************************
+* Look up the jump kind for an instruction. It better be a conditional
+* branch instruction with a jump kind!
+*/
+
+/*static*/ emitJumpKind     emitter::emitInsToJumpKind(instruction ins)
+{
+    for (unsigned i = 0; i < ArrLen(emitJumpKindInstructions); i++)
+    {
+        if (ins == emitJumpKindInstructions[i])
+        {
+            emitJumpKind ret = (emitJumpKind)i;
+            assert(EJ_NONE < ret && ret < EJ_COUNT);
+            return ret;
+        }
+    }
+    unreached();
+}
+
+/*****************************************************************************
  * Reverse the conditional jump
  */
 
@@ -157,6 +176,11 @@ void                emitter::emitInsSanityCheck(instrDesc *id)
     case IF_BI_0B:    // BI_0B   ......iiiiiiiiii iiiiiiiiiiii....               simm19:00
         break;
 
+    case IF_LARGEJMP:
+    case IF_LARGEADR:
+    case IF_LARGELDC:
+        break;
+
     case IF_BI_0C:    // BI_0C   ......iiiiiiiiii iiiiiiiiiiiiiiii               simm26:00
         break;
 
@@ -5073,7 +5097,7 @@ void                emitter::emitIns_R_R_R(instruction ins,
     case INS_str:
     case INS_strb:
     case INS_strh:
-        emitIns_R_R_R_Ext(ins, attr, reg1, reg2, reg3);
+        emitIns_R_R_R_Ext(ins, attr, reg1, reg2, reg3, opt);
         return;
 
     case INS_ldp:
@@ -5449,6 +5473,7 @@ void                emitter::emitIns_R_R_R_Ext(instruction ins,
             assert(isValidGeneralDatasize(size));
             scale = (size == EA_8BYTE) ? 3 : 2;
         }
+
         break;
 
     default:
@@ -6321,6 +6346,7 @@ void                emitter::emitIns_S_I (instruction ins,
 void                emitter::emitIns_R_C (instruction  ins,
                                           emitAttr     attr,
                                           regNumber    reg,
+                                          regNumber    addrReg,
                                           CORINFO_FIELD_HANDLE fldHnd,
                                           int          offs)
 {
@@ -6332,24 +6358,34 @@ void                emitter::emitIns_R_C (instruction  ins,
     int           disp = 0;
     instrDescJmp* id   = emitNewInstrJmp();
 
-    // TODO-ARM64-CQ: use unscaled loads?
-    /* Figure out the encoding format of the instruction */
     switch (ins)
     {
+    case INS_adr:
+        // This is case to get address to the constant data.
+        fmt = IF_LARGEADR;
+        assert(isGeneralRegister(reg));
+        assert(isValidGeneralDatasize(size));
+        break;
+
     case INS_ldr:
+        fmt = IF_LARGELDC;
         if (isVectorRegister(reg))
         {
             assert(isValidScalarDatasize(size));
+            // For vector (float/double) register, we should have an integer address reg to
+            // compute long address which consists of page address and page offset.
+            // For integer constant, this is not needed since the dest reg can be used to
+            // compute address as well as contain the final contents.
+            assert(isGeneralRegister(reg) || (addrReg != REG_NA));
         }
         else
         {
             assert(isGeneralRegister(reg));
             assert(isValidGeneralDatasize(size));
         }
-        fmt = IF_LS_1A;
         break;
     default:
-        break;
+        unreached();
     }
 
     assert(fmt != IF_NONE);
@@ -6360,9 +6396,39 @@ void                emitter::emitIns_R_C (instruction  ins,
     id->idSmallCns(offs);
     id->idOpSize(size);
     id->idAddr()->iiaFieldHnd = fldHnd;
-    id->idSetIsBound();
+    id->idSetIsBound();    // We won't patch address since we will know the exact distance once JIT code and data are allocated together.
 
-    id->idReg1(reg);
+    id->idReg1(reg);       // destination register that will get the constant value.
+    if (addrReg != REG_NA)
+    {
+        id->idReg2(addrReg);   // integer register to compute long address (used for vector dest when we end up with long address)
+    }
+    id->idjShort = false;  // Assume loading constant from long address
+
+    // Keep it long if it's in cold code.
+    id->idjKeepLong = emitComp->fgIsBlockCold(emitComp->compCurBB);
+
+#ifdef DEBUG
+    if (emitComp->opts.compLongAddress)
+        id->idjKeepLong = 1;
+#endif // DEBUG
+
+    // If it's possible to be shortened, then put it in jump list
+    // to be revisited by emitJumpDistBind.
+    if (!id->idjKeepLong)
+    {
+        /* Record the jump's IG and offset within it */
+        id->idjIG = emitCurIG;
+        id->idjOffs = emitCurIGsize;
+
+        /* Append this jump to this IG's jump list */
+        id->idjNext = emitCurIGjmpList;
+        emitCurIGjmpList = id;
+
+#if EMITTER_STATS
+        emitTotalIGjmps++;
+#endif
+    }
 
     dispIns(id);
     appendToCurIG(id);
@@ -6515,8 +6581,27 @@ void                emitter::emitIns_R_ARX (instruction ins,
  */
 void  emitter::emitSetShortJump(instrDescJmp  * id)
 {
-    // All jumps are the same size.
-    // NYI: support large conditional branches via pseudo-op.
+    if (id->idjKeepLong)
+        return;
+
+    insFormat fmt = IF_NONE;
+    if (emitIsCondJump(id))
+    {
+        fmt = IF_BI_0B;
+    }
+    else if (emitIsLoadLabel(id))
+    {
+        fmt = IF_DI_1E;
+    }
+    else if (emitIsLoadConstant(id))
+    {
+        fmt = IF_LS_1A;
+    }
+    else {
+        unreached();
+    }
+
+    id->idInsFmt(fmt);
     id->idjShort = true;
 }
 
@@ -6534,23 +6619,20 @@ void                emitter::emitIns_R_L  (instruction   ins,
 
     insFormat fmt = IF_NONE;
 
-    instrDescJmp *id;
     switch (ins)
     {
     case INS_adr:
-    case INS_adrp:
-        fmt = IF_DI_1E;
+        fmt = IF_LARGEADR;
         break;
     default:
-        // TODO-Cleanup: add unreached() here
-        break;
+        unreached();
     }
-    assert(fmt == IF_DI_1E);
 
-    id = emitNewInstrJmp();
+    instrDescJmp* id = emitNewInstrJmp();
 
     id->idIns(ins);
     id->idInsFmt(fmt);
+    id->idjShort = false;
     id->idAddr()->iiaBBlabel  = dst;
     id->idReg1(reg);
     id->idOpSize(EA_PTRSIZE);
@@ -6563,11 +6645,13 @@ void                emitter::emitIns_R_L  (instruction   ins,
     }
 #endif // DEBUG
 
-    /* Assume the label reference will be long */
-
-    id->idjShort              = 0;
     id->idjKeepLong           = emitComp->fgInDifferentRegions(emitComp->compCurBB, dst);
-    
+
+#ifdef DEBUG
+    if (emitComp->opts.compLongAddress)
+        id->idjKeepLong = 1;
+#endif // DEBUG
+
     /* Record the jump's IG and offset within it */
 
     id->idjIG                 = emitCurIG;
@@ -6582,13 +6666,6 @@ void                emitter::emitIns_R_L  (instruction   ins,
     emitTotalIGjmps++;
 #endif
 
-    /* Figure out the max. size of the instruction */
-
-    if  (!id->idjKeepLong)
-    {
-        // TODO-ARM64-NYI: handle large labels: larger than adr can do (+/-1MB)
-    }
-
     dispIns(id);
     appendToCurIG(id);
 }
@@ -6631,10 +6708,14 @@ void                emitter::emitIns_J(instruction   ins,
     }
 
     /* Figure out the encoding format of the instruction */
+
+    bool idjShort = false;
     switch (ins)
     {
     case INS_bl_local:
     case INS_b:
+        // Unconditional jump is a single form.
+        idjShort = true;
         fmt = IF_BI_0A;
         break;
 
@@ -6652,20 +6733,20 @@ void                emitter::emitIns_J(instruction   ins,
     case INS_blt:
     case INS_bgt:
     case INS_ble:
-        // TODO-ARM64-CQ: fmt = IF_LARGEJMP;  /* Assume the jump will be long */
-        fmt = IF_BI_0B;
+        // Assume conditional jump is long.
+        fmt = IF_LARGEJMP;
         break;
+
     default:
-        // TODO-Cleanup: add unreached() here
+        unreached();
         break;
     }
-    assert((fmt == IF_BI_0A) ||
-           (fmt == IF_BI_0B));
 
     instrDescJmp* id  = emitNewInstrJmp();
 
     id->idIns(ins);
     id->idInsFmt(fmt);
+    id->idjShort = idjShort;
 
 #ifdef DEBUG
     // Mark the finally call
@@ -6675,19 +6756,22 @@ void                emitter::emitIns_J(instruction   ins,
     }
 #endif // DEBUG
 
-    /* Assume the jump will be long */
-
-    // TODO-ARM64-Cleanup: there is only one size jump on ARM64. Clean this up.
-    id->idjShort = 1;
     if (dst != nullptr)
     {
         id->idAddr()->iiaBBlabel = dst;
-        id->idjKeepLong = emitComp->fgInDifferentRegions(emitComp->compCurBB, dst);
+
+        // Skip unconditional jump that has a single form.
+        // TODO-ARM64-NYI: enable hot/cold splittingNYI.
+        // The target needs to be relocated.
+        if (!idjShort)
+        {
+            id->idjKeepLong = emitComp->fgInDifferentRegions(emitComp->compCurBB, dst);
 
 #ifdef DEBUG
-        if (emitComp->opts.compLargeBranches)        // Force long branches
-            id->idjKeepLong = 1;
+            if (emitComp->opts.compLongAddress)        // Force long branches
+                id->idjKeepLong = 1;
 #endif // DEBUG
+        }
     }
     else
     {
@@ -6712,13 +6796,6 @@ void                emitter::emitIns_J(instruction   ins,
     emitTotalIGjmps++;
 #endif
 
-    /* Figure out the max. size of the jump/call instruction */
-
-    if  (!id->idjKeepLong)
-    {
-        // TODO-ARM64-NYI: handle large conditional branches: larger than b.cond can do (+/-1MB)
-    }
-
     dispIns(id);
     appendToCurIG(id);
 }
@@ -7814,6 +7891,39 @@ void                emitter::emitIns_Call(EmitCallType  callType,
     }
 }
 
+BYTE*               emitter::emitOutputLoadLabel(BYTE* dst, BYTE* srcAddr, BYTE* dstAddr, instrDescJmp *id)
+{
+    instruction  ins = id->idIns();
+    insFormat    fmt = id->idInsFmt();
+    regNumber dstReg = id->idReg1();
+    if (id->idjShort)
+    {
+        // adr x, [rel addr] --  compute address: current addr(ip) + rel addr.
+        assert(ins == INS_adr);
+        assert(fmt == IF_DI_1E);
+        ssize_t distVal = (ssize_t)(dstAddr - srcAddr);
+        dst = emitOutputShortAddress(dst, ins, fmt, distVal, dstReg);
+    }
+    else
+    {
+        // adrp x, [rel page addr] -- compute page address: current page addr + rel page addr
+        assert(fmt == IF_LARGEADR);
+        ssize_t relPageAddr = (((ssize_t)dstAddr & 0xFFFFFFFFFFFFF000LL) - ((ssize_t)srcAddr & 0xFFFFFFFFFFFFF000LL)) >> 12;
+        dst = emitOutputShortAddress(dst, INS_adrp, IF_DI_1E, relPageAddr, dstReg);
+
+        // add x, x, page offs -- compute address = page addr + page offs
+        ssize_t imm12 = (ssize_t)dstAddr & 0xFFF;      // 12 bits
+        assert(isValidUimm12(imm12));
+        code_t code = emitInsCode(INS_add, IF_DI_2A);  // DI_2A  X0010001shiiiiii iiiiiinnnnnddddd   1100 0000   imm(i12, sh)
+        code |= insEncodeDatasize(EA_8BYTE);           // X
+        code |= ((code_t)imm12 << 10);                 // iiiiiiiiiiii
+        code |= insEncodeReg_Rd(dstReg);               // ddddd
+        code |= insEncodeReg_Rn(dstReg);               // nnnnn
+        dst += emitOutput_Instr(dst, code);
+    }
+    return dst;
+}
+
 /*****************************************************************************
  *
  *  Output a local jump or other instruction with a pc-relative immediate.
@@ -7832,12 +7942,13 @@ BYTE*               emitter::emitOutputLJ(insGroup  *ig, BYTE *dst, instrDesc *i
     ssize_t         distVal;
     ssize_t         loBits;
 
+    // Set default ins/fmt from id.
     instruction     ins       = id->idIns();
     insFormat       fmt       = id->idInsFmt();
-    code_t          code      = emitInsCode(ins, fmt);   // Basic instruction encoding
 
     bool            loadLabel = false;
     bool            isJump    = false;
+    bool            loadConstant = false;
 
     switch (ins)
     {
@@ -7854,7 +7965,11 @@ BYTE*               emitter::emitOutputLJ(insGroup  *ig, BYTE *dst, instrDesc *i
 
     case INS_ldr:
     case INS_ldrsw:
+        loadConstant = true;
+        break;
+
     case INS_adr:
+    case INS_adrp:
         loadLabel = true;
         break;
     }
@@ -7864,6 +7979,86 @@ BYTE*               emitter::emitOutputLJ(insGroup  *ig, BYTE *dst, instrDesc *i
     srcOffs = emitCurCodeOffs(dst);
     srcAddr = emitOffsetToPtr(srcOffs);
 
+    if (id->idAddr()->iiaIsJitDataOffset())
+    {
+        assert(loadConstant || loadLabel);
+        int doff = id->idAddr()->iiaGetJitDataOffset();
+        assert(doff >= 0);
+        ssize_t imm = emitGetInsSC(id);
+        assert((imm >= 0) && (imm < 0x1000));   // 0x1000 is arbitrary, currently 'imm' is always 0
+
+        unsigned dataOffs = (unsigned)(doff + imm);
+        assert(dataOffs < emitDataSize());
+        dstAddr = emitDataOffsetToPtr(dataOffs);
+
+        regNumber dstReg = id->idReg1();
+        regNumber addrReg = dstReg; // an integer register to compute long address.
+        emitAttr opSize = id->idOpSize();
+
+        if (loadConstant)
+        {
+            if (id->idjShort)
+            {
+                // ldr x/v, [rel addr] -- load constant from current addr(ip) + rel addr.
+                assert(ins == INS_ldr);
+                assert(fmt == IF_LS_1A);
+                distVal = (ssize_t)(dstAddr - srcAddr);
+                dst = emitOutputShortConstant(dst, ins, fmt, distVal, dstReg, opSize);
+            }
+            else
+            {
+                // adrp x, [rel page addr] -- compute page address: current page addr + rel page addr
+                assert(fmt == IF_LARGELDC);
+                ssize_t relPageAddr = (((ssize_t)dstAddr & 0xFFFFFFFFFFFFF000LL) - ((ssize_t)srcAddr & 0xFFFFFFFFFFFFF000LL)) >> 12;
+                if (isVectorRegister(dstReg))
+                {
+                    // Update addrReg with the reserved integer register
+                    // since we cannot use dstReg (vector) to load constant directly from memory.
+                    addrReg = id->idReg2();
+                    assert(isGeneralRegister(addrReg));
+                }
+                ins = INS_adrp;
+                fmt = IF_DI_1E;
+                dst = emitOutputShortAddress(dst, ins, fmt, relPageAddr, addrReg);
+
+                // ldr x, [x, page offs] -- load constant from page address + page offset into integer register.
+                ssize_t imm12 = (ssize_t)dstAddr & 0xFFF; // 12 bits
+                assert(isValidUimm12(imm12));
+                ins = INS_ldr;
+                fmt = IF_LS_2B;
+                dst = emitOutputShortConstant(dst, ins, fmt, imm12, addrReg, opSize);
+
+                // fmov v, d -- copy constant in integer register to vector register.
+                // This is needed only for vector constant.
+                if (addrReg != dstReg)
+                {
+                    //  fmov    Vd,Rn                DV_2I  X00111100X100111 000000nnnnnddddd   1E27 0000   Vd,Rn    (scalar, from general)
+                    assert(isVectorRegister(dstReg) && isGeneralRegister(addrReg));
+                    ins = INS_fmov;
+                    fmt = IF_DV_2I;
+                    code_t code = emitInsCode(ins, fmt);
+
+                    code |= insEncodeReg_Vd(dstReg);             // ddddd
+                    code |= insEncodeReg_Rn(addrReg);            // nnnnn
+                    if (id->idOpSize() == EA_8BYTE)
+                    {
+                        code |= 0x80400000;                      // X ... X
+                    }
+                    dst += emitOutput_Instr(dst, code);
+                }
+            }
+        }
+        else
+        {
+            assert(loadLabel);
+            dst = emitOutputLoadLabel(dst, srcAddr, dstAddr, id);
+        }
+
+        return dst;
+    }
+
+    assert(loadLabel || isJump);
+
     if (id->idAddr()->iiaHasInstrCount())
     {
         assert(ig != NULL);
@@ -7877,30 +8072,6 @@ BYTE*               emitter::emitOutputLJ(insGroup  *ig, BYTE *dst, instrDesc *i
         dstOffs = ig->igOffs + emitFindOffset(ig, (insNum + 1 + instrCount));
         dstAddr = emitOffsetToPtr(dstOffs);
     }
-    else if (id->idAddr()->iiaIsJitDataOffset())
-    {
-        assert(loadLabel);
-
-        /* This is actually a reference to the JIT data section */
-
-        int doff = id->idAddr()->iiaGetJitDataOffset();
-        assert(doff >= 0);
-        ssize_t imm = emitGetInsSC(id);
-        assert((imm >= 0) && (imm < 0x1000));   // 0x1000 is arbitrary, currently 'imm' is always 0
-
-        unsigned dataOffs = (unsigned) (doff + imm);
-        assert(dataOffs < emitDataSize());
-        dstAddr = emitDataOffsetToPtr(dataOffs);
-        dstOffs = (unsigned) ((ssize_t) (dstAddr - srcAddr) + srcOffs);
-        assert((dstOffs & 3) == 0);
-
-        // Failing the following assertion means the corresponding JIT data is not within +/-1MB range
-        // from the current code reference. This could happen for a large method or extremely large
-        // amount of JIT data for the method, or access it from cold method.
-        // Ideally, we should detect such case earlier to expand the code sequence using a fix-up
-        // similar to emitIns_R_AI.
-        assert(isValidSimm19(dstOffs));
-    }
     else
     {
         dstOffs = id->idAddr()->iiaIGlabel->igOffs;
@@ -7977,120 +8148,253 @@ BYTE*               emitter::emitOutputLJ(insGroup  *ig, BYTE *dst, instrDesc *i
     }
 #endif
 
-    loBits = (distVal & 3);
-    distVal >>= 2; // branch offset encodings are scaled by 4.
-
     /* For forward jumps, record the address of the distance value */
     id->idjTemp.idjAddr = (distVal > 0) ? dst : NULL;
 
-    assert(emitJumpCrossHotColdBoundary(srcOffs, dstOffs) == false);
+    if (emitJumpCrossHotColdBoundary(srcOffs, dstOffs))
+    {
+        assert(!id->idjShort);
+        NYI_ARM64("Relocation Support for long address");
+    }
+
     assert(insOptsNone(id->idInsOpt()));
 
     if (isJump)
     {
-        assert(!id->idjKeepLong);
-
-        // branch offsets must be a multiple of 4
-        noway_assert(loBits == 0);
-
-        if (fmt == IF_BI_0A)
-        {
-            // INS_b or INS_bl_local
-            noway_assert(isValidSimm26(distVal));
-            distVal &= 0x3FFFFFFLL;
-            code |= distVal;
-        }
-        else if (fmt == IF_BI_0B)
+        if (id->idjShort)
         {
-            // INS_beq, INS_bne, etc...
-            noway_assert(isValidSimm19(distVal));
-            distVal &= 0x7FFFFLL;
-            code |= distVal << 5;
+            // Short conditional/unconditional jump
+            assert(!id->idjKeepLong);
+            assert(emitJumpCrossHotColdBoundary(srcOffs, dstOffs) == false);
+            assert((fmt == IF_BI_0A) || (fmt == IF_BI_0B));
         }
-        else if (fmt == IF_BI_1A)  // BI_1A   X.......iiiiiiii iiiiiiiiiiittttt      Rt simm19:00
+        else
         {
-            // INS_cbz or INS_cbnz
-            code |= insEncodeDatasize(id->idOpSize());    // X 
-            code |= insEncodeReg_Rt(id->idReg1());        // ttttt
+            // Long conditional jump
+            assert(fmt == IF_LARGEJMP);
+            // This is a pseudo-instruction format representing a large conditional branch, to allow
+            // us to get a greater branch target range than we can get by using a straightforward conditional
+            // branch. It is encoded as a short conditional branch that branches around a long unconditional
+            // branch.
+            //
+            // Conceptually, we have:
+            //
+            //      b<cond> L_target
+            //
+            // The code we emit is:
+            //
+            //      b<!cond> L_not  // 4 bytes. Note that we reverse the condition.
+            //      b L_target      // 4 bytes
+            //   L_not:
+            //
+            // Note that we don't actually insert any blocks: we simply encode "b <!cond> L_not" as a branch with
+            // the correct offset. Note also that this works for both integer and floating-point conditions, because
+            // the condition inversion takes ordered/unordered into account, preserving NaN behavior. For example,
+            // "GT" (greater than) is inverted to "LE" (less than, equal, or unordered).
+            dst = emitOutputShortBranch(dst,
+                emitJumpKindToIns(emitReverseJumpKind(emitInsToJumpKind(ins))), // reverse the conditional instruction
+                IF_BI_0B,
+                8, /* 8 bytes from start of this large conditional pseudo-instruction to L_not. */
+                nullptr /* only used for tbz/tbnzcbz/cbnz */);
+
+            // Now, pretend we've got a normal unconditional branch, and fall through to the code to emit that.
+            ins = INS_b;
+            fmt = IF_BI_0A;
 
-            noway_assert(isValidSimm19(distVal));
-            distVal &= 0x7FFFFLL;                         // 19 bits 
-            code |= distVal << 5;
+            // The distVal was computed based on the beginning of the pseudo-instruction,
+            // So subtract the size of the conditional branch so that it is relative to the
+            // unconditional branch.
+            distVal -= 4;
         }
-        else if (fmt == IF_BI_1B)  // BI_1B   B.......bbbbbiii iiiiiiiiiiittttt      Rt imm6, simm14:00
-        {
-            // INS_tbz or INS_tbnz
-            ssize_t imm = emitGetInsSC(id);
-            assert(isValidImmShift(imm, id->idOpSize())); 
 
-            if (imm & 0x20)                               // test bit 32-63 ?
-            {
-                code |= 0x80000000;                       // B 
-            }
-            code |= ((imm & 0x1F) << 19);                 // bbbbb
-            code |= insEncodeReg_Rt(id->idReg1());        // ttttt
+        dst = emitOutputShortBranch(dst, ins, fmt, distVal, id);
+    }
+    else if (loadLabel)
+    {
+        dst = emitOutputLoadLabel(dst, srcAddr, dstAddr, id);
+    }
 
-            noway_assert(isValidSimm14(distVal));
-            distVal &= 0x3FFFLL;                          // 14 bits 
-            code |= distVal << 5;
-        }
-        else
+    return  dst;
+}
+
+/*****************************************************************************
+*
+*  Output a short branch instruction.
+*/
+BYTE*               emitter::emitOutputShortBranch(BYTE *dst, instruction ins, insFormat fmt, ssize_t distVal, instrDescJmp* id)
+{
+    code_t code = emitInsCode(ins, fmt);
+
+    ssize_t loBits = (distVal & 3);
+    noway_assert(loBits == 0);
+    distVal >>= 2; // branch offset encodings are scaled by 4.
+
+    if (fmt == IF_BI_0A)
+    {
+        // INS_b or INS_bl_local
+        noway_assert(isValidSimm26(distVal));
+        distVal &= 0x3FFFFFFLL;
+        code |= distVal;
+    }
+    else if (fmt == IF_BI_0B)  // BI_0B   01010100iiiiiiii iiiiiiiiiiiXXXXX      simm19:00
+    {
+        // INS_beq, INS_bne, etc...
+        noway_assert(isValidSimm19(distVal));
+        distVal &= 0x7FFFFLL;
+        code |= distVal << 5;
+    }
+    else if (fmt == IF_BI_1A)  // BI_1A   X.......iiiiiiii iiiiiiiiiiittttt      Rt simm19:00
+    {
+        // INS_cbz or INS_cbnz
+        assert(id != nullptr);
+        code |= insEncodeDatasize(id->idOpSize());    // X
+        code |= insEncodeReg_Rt(id->idReg1());        // ttttt
+
+        noway_assert(isValidSimm19(distVal));
+        distVal &= 0x7FFFFLL;                         // 19 bits
+        code |= distVal << 5;
+    }
+    else if (fmt == IF_BI_1B)  // BI_1B   B.......bbbbbiii iiiiiiiiiiittttt      Rt imm6, simm14:00
+    {
+        // INS_tbz or INS_tbnz
+        assert(id != nullptr);
+        ssize_t imm = emitGetInsSC(id);
+        assert(isValidImmShift(imm, id->idOpSize()));
+
+        if (imm & 0x20)                               // test bit 32-63 ?
         {
-            assert(!"Unknown fmt");
+            code |= 0x80000000;                       // B
         }
+        code |= ((imm & 0x1F) << 19);                 // bbbbb
+        code |= insEncodeReg_Rt(id->idReg1());        // ttttt
+
+        noway_assert(isValidSimm14(distVal));
+        distVal &= 0x3FFFLL;                          // 14 bits
+        code |= distVal << 5;
     }
-    else if (loadLabel)
+    else
     {
-        if (fmt == IF_LS_1A)       // LS_1A   XX...V..iiiiiiii iiiiiiiiiiittttt      Rt simm21
-        {
-            // INS_ldr or INS_ldrsw (PC-Relative)
+        assert(!"Unknown fmt for emitOutputShortBranch");
+    }
 
-            // Is the target a vector register?
-            if (isVectorRegister(id->idReg1()))
-            {
-                code |= insEncodeDatasizeVLS(code, id->idOpSize());  // XX V
-                code |= insEncodeReg_Vt(id->idReg1());               // ttttt
-            }
-            else
-            {
-                assert(isGeneralRegister(id->idReg1()));
-                // insEncodeDatasizeLS is not quite right for this case.
-                // So just specialize it.
-                if ((ins == INS_ldr) && (id->idOpSize() == EA_8BYTE))
-                {
-                    // set the operation size in bit 30
-                    code |= 0x40000000;
-                }
+    dst += emitOutput_Instr(dst, code);
 
-                code |= insEncodeReg_Rt(id->idReg1());               // ttttt
-            }
+    return dst;
+}
+
+/*****************************************************************************
+*
+*  Output a short address instruction.
+*/
+BYTE*               emitter::emitOutputShortAddress(BYTE *dst, instruction ins, insFormat fmt, ssize_t distVal, regNumber reg)
+{
+    ssize_t loBits = (distVal & 3);
+    distVal >>= 2;
 
-            noway_assert(loBits == 0);
-            noway_assert(isValidSimm19(distVal));
-            distVal &= 0x7FFFFLL;                         // 19 bits 
-            code |= distVal <<  5;
+    code_t code = emitInsCode(ins, fmt);
+    if (fmt == IF_DI_1E)  // DI_1E   .ii.....iiiiiiii iiiiiiiiiiiddddd      Rd simm21
+    {
+        // INS_adr or INS_adrp
+        code |= insEncodeReg_Rd(reg);        // ddddd
+
+        noway_assert(isValidSimm19(distVal));
+        distVal &= 0x7FFFFLL;                        // 19 bits
+        code |= distVal << 5;
+        code |= loBits << 29;                        //  2 bits
+    }
+    else
+    {
+        assert(!"Unknown fmt for emitOutputShortAddress");
+    }
+
+    dst += emitOutput_Instr(dst, code);
+
+    return dst;
+}
+
+/*****************************************************************************
+*
+*  Output a short constant instruction.
+*/
+BYTE*               emitter::emitOutputShortConstant(BYTE *dst, instruction ins, insFormat fmt, ssize_t imm, regNumber reg, emitAttr opSize)
+{
+    code_t code = emitInsCode(ins, fmt);
+
+    if (fmt == IF_LS_1A)
+    {
+        // LS_1A   XX...V..iiiiiiii iiiiiiiiiiittttt      Rt simm21
+        // INS_ldr or INS_ldrsw (PC-Relative)
+
+        ssize_t loBits = (imm & 3);
+        noway_assert(loBits == 0);
+        ssize_t distVal = imm >>= 2; // load offset encodings are scaled by 4.
+
+        noway_assert(isValidSimm19(distVal));
+
+        // Is the target a vector register?
+        if (isVectorRegister(reg))
+        {
+            code |= insEncodeDatasizeVLS(code, opSize);  // XX V
+            code |= insEncodeReg_Vt(reg);                // ttttt
         }
-        else if (fmt == IF_DI_1E)  // DI_1E   .ii.....iiiiiiii iiiiiiiiiiiddddd      Rd simm21
+        else
         {
-            // INS_adr or INS_adrp
-            code |= insEncodeReg_Rd(id->idReg1());        // ddddd
+            assert(isGeneralRegister(reg));
+            // insEncodeDatasizeLS is not quite right for this case.
+            // So just specialize it.
+            if ((ins == INS_ldr) && (opSize == EA_8BYTE))
+            {
+                // set the operation size in bit 30
+                code |= 0x40000000;
+            }
 
-            noway_assert(isValidSimm19(distVal));
-            distVal &= 0x7FFFFLL;                         // 19 bits 
-            code |= distVal <<  5;
-            code |= loBits  << 29;                        //  2 bits
+            code |= insEncodeReg_Rt(reg);                // ttttt
+        }
+
+        distVal &= 0x7FFFFLL;                            // 19 bits
+        code |= distVal << 5;
+    }
+    else if (fmt == IF_LS_2B)
+    {
+        //  ldr     Rt,[Xn+pimm12]       LS_2B  1X11100101iiiiii iiiiiinnnnnttttt   B940 0000   imm(0-4095<<{2,3})
+        // INS_ldr or INS_ldrsw (PC-Relative)
+        noway_assert(isValidUimm12(imm));
+        assert(isGeneralRegister(reg));
+
+        if (opSize == EA_8BYTE)
+        {
+            // insEncodeDatasizeLS is not quite right for this case.
+            // So just specialize it.
+            if (ins == INS_ldr)
+            {
+                // set the operation size in bit 30
+                code |= 0x40000000;
+            }
+            // Low 3 bits should be 0 -- 8 byte JIT data should be aligned on 8 byte.
+            assert((imm & 7) == 0);
+            imm >>= 3;
         }
         else
         {
-            assert(!"Unknown fmt");
+            assert(opSize == EA_4BYTE);
+            // Low 2 bits should be 0 -- 4 byte aligned data.
+            assert((imm & 3) == 0);
+            imm >>= 2;
         }
+
+        code |= insEncodeReg_Rt(reg);               // ttttt
+        code |= insEncodeReg_Rn(reg);               // nnnnn
+        code |= imm << 10;
+    }
+    else
+    {
+        assert(!"Unknown fmt for emitOutputShortConstant");
     }
 
-    dst  += emitOutput_Instr(dst, code);
+    dst += emitOutput_Instr(dst, code);
 
-    return  dst;
+    return dst;
 }
-
 /*****************************************************************************
  *
  *  Output a call instruction.
@@ -8243,6 +8547,7 @@ size_t              emitter::emitOutputInstr(insGroup  *ig,
 
     case IF_BI_0A:    // BI_0A   ......iiiiiiiiii iiiiiiiiiiiiiiii               simm26:00
     case IF_BI_0B:    // BI_0B   ......iiiiiiiiii iiiiiiiiiii.....               simm19:00
+    case IF_LARGEJMP:
         assert(id->idGCref() == GCT_NONE);
         assert(id->idIsBound());
         dst = emitOutputLJ(ig, dst, id);
@@ -8293,6 +8598,7 @@ size_t              emitter::emitOutputInstr(insGroup  *ig,
         break;
 
     case IF_LS_1A:    // LS_1A   XX...V..iiiiiiii iiiiiiiiiiittttt      Rt    PC imm(1MB)
+    case IF_LARGELDC:
         assert(insOptsNone(id->idInsOpt()));
         assert(id->idIsBound());
 
@@ -8484,6 +8790,7 @@ size_t              emitter::emitOutputInstr(insGroup  *ig,
         break;
 
     case IF_DI_1E:    // DI_1E   .ii.....iiiiiiii iiiiiiiiiiiddddd      Rd       simm21
+    case IF_LARGEADR:
         assert(insOptsNone(id->idInsOpt()));
         if (id->idIsReloc())
         {
@@ -9821,6 +10128,10 @@ void                emitter::emitDispInsHex(BYTE *  code, size_t sz)
         {
             printf("  %08X    ", (*((code_t *) code)));
         }
+        else
+        {
+            printf("              ");
+        }
     }
 }
 
@@ -9904,7 +10215,12 @@ void                emitter::emitDispIns(instrDesc *  id,
 
     case IF_BI_0A:    // BI_0A   ......iiiiiiiiii iiiiiiiiiiiiiiii               simm26:00
     case IF_BI_0B:    // BI_0B   ......iiiiiiiiii iiiiiiiiiii.....               simm19:00
+    case IF_LARGEJMP:
         {
+            if (fmt == IF_LARGEJMP)
+            {
+                printf("(LARGEJMP)");
+            }
             if (id->idAddr()->iiaHasInstrCount())
             {
                 int instrCount = id->idAddr()->iiaGetInstrCount();
@@ -9995,30 +10311,46 @@ void                emitter::emitDispIns(instrDesc *  id,
         break;
 
     case IF_LS_1A:    // LS_1A   XX...V..iiiiiiii iiiiiiiiiiittttt      Rt    PC imm(1MB)
+    case IF_DI_1E:    // DI_1E   .ii.....iiiiiiii iiiiiiiiiiiddddd      Rd       simm21
+    case IF_LARGELDC:
+    case IF_LARGEADR:
         assert(insOptsNone(id->idInsOpt()));
         emitDispReg(id->idReg1(), size, true);
         imm = emitGetInsSC(id);
 
         /* Is this actually a reference to a data section? */
-        doffs = Compiler::eeGetJitDataOffs(id->idAddr()->iiaFieldHnd);
+        if (fmt == IF_LARGEADR)
+        {
+            printf("(LARGEADR)");
+        }
+        else if (fmt == IF_LARGELDC)
+        {
+            printf("(LARGELDC)");
+        }
 
         printf("[");
-        if  (doffs >= 0)
+        if (id->idAddr()->iiaIsJitDataOffset())
         {
+            doffs = Compiler::eeGetJitDataOffs(id->idAddr()->iiaFieldHnd);
             /* Display a data section reference */
 
-            if  (doffs & 1)
-                printf("@CNS%02u", doffs-1);
+            if (doffs & 1)
+                printf("@CNS%02u", doffs - 1);
             else
                 printf("@RWD%02u", doffs);
 
-            if  (imm != 0)
+            if (imm != 0)
                 printf("%+Id", imm);
         }
         else
         {
             assert(imm == 0);
-            if (id->idIsBound())
+            if (id->idIsReloc())
+            {
+                printf("RELOC ");
+                emitDispImm((ssize_t)id->idAddr()->iiaAddr, false);
+            }
+            else if (id->idIsBound())
             {
                 printf("G_M%03u_IG%02u", Compiler::s_compMethodsCount, id->idAddr()->iiaIGlabel->igNum);
             }
@@ -10119,19 +10451,6 @@ void                emitter::emitDispIns(instrDesc *  id,
         emitDispImm(emitDecodeBitMaskImm(bmi, size), false);
         break;
 
-    case IF_DI_1E:    // DI_1E   .ii.....iiiiiiii iiiiiiiiiiiddddd      Rd       simm21
-        assert(insOptsNone(id->idInsOpt()));
-        emitDispReg(id->idReg1(), size, true);
-        if (id->idIsBound())
-        {
-            printf("G_M%03u_IG%02u", Compiler::s_compMethodsCount, id->idAddr()->iiaIGlabel->igNum);
-        }
-        else
-        {
-            printf("L_M%03u_BB%02u", Compiler::s_compMethodsCount, id->idAddr()->iiaBBlabel->bbNum);
-        }
-        break;
-
     case IF_DI_2A:    // DI_2A   X.......shiiiiii iiiiiinnnnnddddd      Rd Rn    imm(i12,sh)
         if ((ins == INS_add) || (ins == INS_sub))
         {
index f7549fa..6538146 100644 (file)
@@ -775,6 +775,7 @@ public:
     void            emitIns_R_C    (instruction  ins,
                                     emitAttr     attr,
                                     regNumber    reg,
+                                    regNumber    tmpReg,
                                     CORINFO_FIELD_HANDLE fldHnd,
                                     int          offs);
 
@@ -899,6 +900,10 @@ public:
 
     BYTE*           emitOutputLJ  (insGroup  *ig, BYTE *dst, instrDesc *i);
     unsigned        emitOutputCall(insGroup  *ig, BYTE *dst, instrDesc *i, code_t code);
+    BYTE*           emitOutputLoadLabel(BYTE* dst, BYTE* srcAddr, BYTE* dstAddr, instrDescJmp* id);
+    BYTE*           emitOutputShortBranch(BYTE *dst, instruction ins, insFormat fmt, ssize_t distVal, instrDescJmp* id);
+    BYTE*           emitOutputShortAddress(BYTE *dst, instruction ins, insFormat fmt, ssize_t distVal, regNumber reg);
+    BYTE*           emitOutputShortConstant(BYTE *dst, instruction ins, insFormat fmt, ssize_t distVal, regNumber reg, emitAttr opSize);
 
 /*****************************************************************************
  *
@@ -907,7 +912,8 @@ public:
 
 inline bool        emitIsCondJump(instrDesc *jmp)
 {
-    return (jmp->idInsFmt() == IF_BI_0B);
+    return ((jmp->idInsFmt() == IF_BI_0B) ||
+            (jmp->idInsFmt() == IF_LARGEJMP));
 }
 
 
@@ -949,7 +955,19 @@ inline bool        emitIsDirectCall(instrDesc *call)
 
 inline bool        emitIsLoadLabel(instrDesc *jmp)
 {
-    return (jmp->idInsFmt() == IF_DI_1E); // adr or adrp
+    return ((jmp->idInsFmt() == IF_DI_1E) || // adr or arp
+            (jmp->idInsFmt() == IF_LARGEADR));
+}
+
+/*****************************************************************************
+*
+*  Given a instrDesc, return true if it's a load constant instruction.
+*/
+
+inline bool        emitIsLoadConstant(instrDesc *jmp)
+{
+    return ((jmp->idInsFmt() == IF_LS_1A) || // ldr
+            (jmp->idInsFmt() == IF_LARGELDC));
 }
 
 #endif // _TARGET_ARM64_
index 06cde03..294bb38 100644 (file)
@@ -40,7 +40,9 @@ enum    ID_OPS
 IF_DEF(NONE,        IS_NONE,               NONE)     //
 
 IF_DEF(LABEL,       IS_NONE,               JMP )     // label
-IF_DEF(LARGEJMP,    IS_NONE,               JMP)      // large conditional branch pseudo-op
+IF_DEF(LARGEJMP,    IS_NONE,               JMP)      // large conditional branch pseudo-op (cond branch + uncond branch)
+IF_DEF(LARGEADR,    IS_NONE,               JMP)      // large address pseudo-op (adrp + add)
+IF_DEF(LARGELDC,    IS_NONE,               JMP)      // large constant pseudo-op (adrp + ldr)
 
 /////////////////////////////////////////////////////////////////////////////////////////////////////////
 
index a52f9e5..3d50f67 100644 (file)
@@ -170,6 +170,15 @@ void notYetImplemented(const char * msg, const char * filename, unsigned line)
 #endif // !DEBUG
 #endif // FUNC_INFO_LOGGING
 
+#ifdef DEBUG
+    Compiler* pCompiler = JitTls::GetCompiler();
+    if (pCompiler != nullptr)
+    {
+        // Assume we're within a compFunctionTrace boundary, which might not be true.
+        pCompiler->compFunctionTraceEnd(nullptr, 0, true);
+    }
+#endif // DEBUG 
+
     DWORD value = JitConfig.AltJitAssertOnNYI();
 
     // 0 means just silently skip
@@ -319,11 +328,15 @@ BOOL vlogf(unsigned level, const char* fmt, va_list args)
     return JitTls::GetLogEnv()->compHnd->logMsg(level, fmt, args);
 } 
 
-int logf_stdout(const char* fmt, va_list args)
+int vflogf(FILE* file, const char* fmt, va_list args)
 {
-    //
-    // Fast logging to stdout
-    //
+    // 0-length string means flush
+    if (fmt[0] == '\0')
+    {
+        fflush(file);
+        return 0;
+    }
+
     const int BUFF_SIZE = 8192;
     char buffer[BUFF_SIZE];
     int written = _vsnprintf_s(&buffer[0], BUFF_SIZE, _TRUNCATE, fmt, args);
@@ -332,32 +345,18 @@ int logf_stdout(const char* fmt, va_list args)
     {
         OutputDebugStringA(buffer);
     }
+   
+    // We use fputs here so that this executes as fast a possible
+    fputs(&buffer[0], file);
+    return written;
+}
 
-    if (fmt[0] == 0)                // null string means flush
-    {
-        fflush(stdout);
-    }
-    else
-    {
-#if defined(CROSSGEN_COMPILE) && !defined(PLATFORM_UNIX)
-        // Crossgen has forced stdout into UNICODE only mode:
-        //     _setmode(_fileno(stdout), _O_U8TEXT); 
-        //
-        wchar_t wbuffer[BUFF_SIZE];
-
-        // Convert char* 'buffer' to a wchar_t* string.
-        size_t convertedChars = 0;
-        mbstowcs_s(&convertedChars, &wbuffer[0], BUFF_SIZE, buffer, _TRUNCATE);
-
-        fputws(&wbuffer[0], stdout);
-#else // CROSSGEN_COMPILE
-        //
-        // We use fputs here so that this executes as fast a possible
-        //
-        fputs(&buffer[0], stdout);
-#endif // CROSSGEN_COMPILE
-    }
-
+int flogf(FILE* file, const char* fmt, ...)
+{
+    va_list args;
+    va_start(args, fmt);
+    int written = vflogf(file, fmt, args);
+    va_end(args);
     return written;
 }
 
@@ -386,7 +385,7 @@ int logf(const char* fmt, ...)
     {
         // if the EE refuses to log it, we try to send it to stdout
         va_start(args, fmt);
-        written = logf_stdout(fmt, args);
+        written = vflogf(jitstdout, fmt, args);
         va_end(args);
     }
 #if 0  // Enable this only when you need it
@@ -445,7 +444,7 @@ void gcDump_logf(const char* fmt, ...)
     {
         // if the EE refuses to log it, we try to send it to stdout
         va_start(args, fmt);
-        logf_stdout(fmt, args);
+        vflogf(jitstdout, fmt, args);
         va_end(args);
     }
 #if 0  // Enable this only when you need it
index 2cfed2e..5489775 100644 (file)
@@ -6666,6 +6666,19 @@ bool         Compiler::fgInDifferentRegions(BasicBlock *blk1, BasicBlock *blk2)
     return ((blk1->bbFlags & BBF_COLD)!= (blk2->bbFlags & BBF_COLD));
 }
 
+bool         Compiler::fgIsBlockCold(BasicBlock *blk)
+{
+    noway_assert(blk != NULL);
+
+    if (fgFirstColdBlock == NULL)
+    {
+        return false;
+    }
+
+    return ((blk->bbFlags & BBF_COLD) != 0);
+}
+
+
 /*****************************************************************************
  * This function returns true if tree is a GT_COMMA node with a call
  * that unconditionally throws an exception
@@ -7484,8 +7497,7 @@ GenTreePtr Compiler::fgGetCritSectOfStaticMethod()
 
 void                Compiler::fgAddSyncMethodEnterExit()
 {
-    if ((info.compFlags & CORINFO_FLG_SYNCH) == 0)
-        return;
+    assert((info.compFlags & CORINFO_FLG_SYNCH) != 0);
 
     // We need to do this transformation before funclets are created.
     assert(!fgFuncletsCreated);
@@ -7795,6 +7807,72 @@ void                Compiler::fgConvertSyncReturnToLeave(BasicBlock* block)
 
 #endif // !_TARGET_X86_
 
+//------------------------------------------------------------------------
+// fgAddReversePInvokeEnterExit: Add enter/exit calls for reverse PInvoke methods
+//
+// Arguments:
+//      None.
+//
+// Return Value:
+//      None.
+
+void Compiler::fgAddReversePInvokeEnterExit()
+{
+    assert(opts.IsReversePInvoke());
+
+#if COR_JIT_EE_VERSION > 460
+    lvaReversePInvokeFrameVar = lvaGrabTempWithImplicitUse(false DEBUGARG("Reverse Pinvoke FrameVar"));
+
+    LclVarDsc* varDsc = &lvaTable[lvaReversePInvokeFrameVar];
+    varDsc->lvType = TYP_BLK;
+    varDsc->lvExactSize = eeGetEEInfo()->sizeOfReversePInvokeFrame;
+
+    GenTreePtr      tree;
+
+    // Add enter pinvoke exit callout at the start of prolog
+
+    tree = gtNewOperNode(GT_ADDR, TYP_I_IMPL, gtNewLclvNode(lvaReversePInvokeFrameVar, TYP_BLK));
+
+    tree = gtNewHelperCallNode(CORINFO_HELP_JIT_REVERSE_PINVOKE_ENTER,
+        TYP_VOID, 0,
+        gtNewArgList(tree));
+
+    fgEnsureFirstBBisScratch();
+
+    fgInsertStmtAtBeg(fgFirstBB, tree);
+
+#ifdef DEBUG
+    if (verbose)
+    {
+        printf("\nReverse PInvoke method - Add reverse pinvoke enter in first basic block [%08p]\n", dspPtr(fgFirstBB));
+        gtDispTree(tree);
+        printf("\n");
+    }
+#endif
+
+    // Add reverse pinvoke exit callout at the end of epilog
+
+    tree = gtNewOperNode(GT_ADDR, TYP_I_IMPL, gtNewLclvNode(lvaReversePInvokeFrameVar, TYP_BLK));
+
+    tree = gtNewHelperCallNode(CORINFO_HELP_JIT_REVERSE_PINVOKE_EXIT,
+        TYP_VOID, 0,
+        gtNewArgList(tree));
+
+    assert(genReturnBB != nullptr);
+
+    fgInsertStmtAtEnd(genReturnBB, tree);
+
+#ifdef DEBUG
+    if (verbose)
+    {
+        printf("\nReverse PInvoke method - Add reverse pinvoke exit in return basic block [%08p]\n", dspPtr(genReturnBB));
+        gtDispTree(tree);
+        printf("\n");
+    }
+#endif
+
+#endif // COR_JIT_EE_VERSION > 460
+}
 
 /*****************************************************************************
  *
@@ -7900,12 +7978,6 @@ void                Compiler::fgAddInternal()
 
     /* Assume we will generate a single shared return sequence */
 
-    // This is the node for the oneReturn statement.
-    // It could be as simple as a CallNode if we only have
-    // only one callout. It will be a comma tree of CallNodes
-    // if we have multiple callouts.
-    //
-    GenTreePtr  oneReturnStmtNode = NULL;
     ULONG       returnWeight      = 0;
     bool        oneReturn;
     bool        allProfWeight;
@@ -7913,13 +7985,13 @@ void                Compiler::fgAddInternal()
     //
     //  We will generate just one epilog (return block)
     //   when we are asked to generate enter/leave callbacks
+    //   or for methods with PInvoke
     //   or for methods calling into unmanaged code
     //   or for synchronized methods.
     //
     if ( compIsProfilerHookNeeded()    ||
-#if INLINE_NDIRECT
          (info.compCallUnmanaged != 0) ||
-#endif
+         opts.IsReversePInvoke() ||
          ((info.compFlags & CORINFO_FLG_SYNCH) != 0))
     {
         // We will generate only one return block
@@ -7997,7 +8069,10 @@ void                Compiler::fgAddInternal()
     // BBJ_RETURN block gets placed at the top-level, not within an EH region. (Otherwise,
     // we'd have to be really careful when creating the synchronized method try/finally
     // not to include the BBJ_RETURN block.)
-    fgAddSyncMethodEnterExit();
+    if ((info.compFlags & CORINFO_FLG_SYNCH) != 0)
+    {
+        fgAddSyncMethodEnterExit();
+    }
 #endif // !_TARGET_X86_
 
     if  (oneReturn)
@@ -8109,7 +8184,6 @@ void                Compiler::fgAddInternal()
         genReturnLocal = BAD_VAR_NUM;
     }
 
-#if INLINE_NDIRECT
     if (info.compCallUnmanaged != 0)
     {
         // The P/Invoke helpers only require a frame variable, so only allocate the
@@ -8139,7 +8213,6 @@ void                Compiler::fgAddInternal()
         }
 #endif
     }
-#endif
 
     // Do we need to insert a "JustMyCode" callback?
 
@@ -8287,34 +8360,13 @@ void                Compiler::fgAddInternal()
                                        gtNewArgList(tree));
         }
 
-        /* Add the exitCrit expression to the oneReturnStmtNode */
-        if (oneReturnStmtNode != NULL)
-        {
-            //
-            // We add the newly created "tree" to op1, so we can evaluate the last added
-            // expression first.
-            //
-            oneReturnStmtNode = gtNewOperNode(GT_COMMA,
-                                              TYP_VOID,
-                                              tree,
-                                              oneReturnStmtNode);
-
-        }
-        else
-        {
-            oneReturnStmtNode = tree;
-        }
-
+        fgInsertStmtAtEnd(genReturnBB, tree);
 
 #ifdef DEBUG
         if (verbose)
         {
             printf("\nSynchronized method - Add exit expression ");
             printTreeID(tree);
-            printf(" to oneReturnStmtNode ");
-            printTreeID(oneReturnStmtNode);
-            printf("\nCurrent oneReturnStmtNode is\n");
-            gtDispTree(oneReturnStmtNode);
             printf("\n");
         }
 #endif
@@ -8358,6 +8410,11 @@ void                Compiler::fgAddInternal()
 
     }
 
+    if (opts.IsReversePInvoke())
+    {
+        fgAddReversePInvokeEnterExit();
+    }
+
     //
     //  Add 'return' expression to the return block if we made it as "oneReturn" before.
     //
@@ -8369,13 +8426,6 @@ void                Compiler::fgAddInternal()
         // Make the 'return' expression.
         //
 
-        // spill any value that is currently in the oneReturnStmtNode
-        if (oneReturnStmtNode != nullptr)
-        {
-            fgInsertStmtAtEnd(genReturnBB, oneReturnStmtNode);
-            oneReturnStmtNode = nullptr;
-        }
-
         //make sure to reload the return value as part of the return (it is saved by the "real return").
         if (genReturnLocal != BAD_VAR_NUM)
         {
@@ -19175,7 +19225,7 @@ ONE_FILE_PER_METHOD:;
     }
     else if (wcscmp(filename, W("stdout")) == 0)
     {
-        fgxFile = stdout;
+        fgxFile = jitstdout;
         *wbDontClose = true;
     }
     else if (wcscmp(filename, W("stderr")) == 0)
@@ -19514,7 +19564,7 @@ bool               Compiler::fgDumpFlowGraph(Phases phase)
 
     if (dontClose)
     {
-        // fgxFile is stdout or stderr
+        // fgxFile is jitstdout or stderr
         fprintf(fgxFile, "\n");
     }
     else
@@ -21429,7 +21479,7 @@ void                Compiler::fgInline()
             if ((expr->gtOper == GT_CALL) && ((expr->gtFlags & GTF_CALL_INLINE_CANDIDATE) != 0))
             {
                 GenTreeCall* call = expr->AsCall();
-                InlineResult inlineResult(this, call, "fgInline");
+                InlineResult inlineResult(this, call, stmt->gtInlineContext, "fgInline");
 
                 fgMorphStmt = stmt;
 
@@ -21555,7 +21605,7 @@ Compiler::fgWalkResult      Compiler::fgFindNonInlineCandidate(GenTreePtr* pTree
 void Compiler::fgNoteNonInlineCandidate(GenTreePtr   tree,
                                         GenTreeCall* call)
 {
-    InlineResult inlineResult(this, call, "fgNotInlineCandidate");
+    InlineResult inlineResult(this, call, nullptr, "fgNotInlineCandidate");
     InlineObservation currentObservation = InlineObservation::CALLSITE_NOT_CANDIDATE;
 
     // Try and recover the reason left behind when the jit decided
index 5dbdfe3..55fa724 100644 (file)
@@ -499,7 +499,6 @@ Compiler::fgWalkResult      Compiler::fgWalkTreePreRec(GenTreePtr *pTree, fgWalk
 
             assert(tree->gtFlags & GTF_CALL);
 
-#if INLINE_NDIRECT
             /* Is this a call to unmanaged code ? */
             if  (fgWalkData->wtprLclsOnly && (tree->gtFlags & GTF_CALL_UNMANAGED))
             {
@@ -507,7 +506,7 @@ Compiler::fgWalkResult      Compiler::fgWalkTreePreRec(GenTreePtr *pTree, fgWalk
                 if  (result == WALK_ABORT)
                     return result;
             }
-#endif
+
             if  (tree->gtCall.gtCallObjp)
             {
                 result = fgWalkTreePreRec<computeStack>(&tree->gtCall.gtCallObjp, fgWalkData);
@@ -1091,13 +1090,20 @@ Compiler::fgWalkResult  Compiler::fgWalkTree(GenTreePtr  * pTree,
     return result;
 }
 
-// Sets the register to the "no register assignment" value, depending upon the type
-// of the node, and whether it fits any of the special cases for register pairs.
-
+// ------------------------------------------------------------------------------------------
+// gtClearReg: Sets the register to the "no register assignment" value, depending upon
+// the type of the node, and whether it fits any of the special cases for register pairs
+// or multi-reg call nodes.
+//
+// Arguments:
+//     compiler  -  compiler instance
+//
+// Return Value:
+//     None
 void
 GenTree::gtClearReg(Compiler* compiler)
 {
-#if !defined(LEGACY_BACKEND) && !defined(_TARGET_64BIT_)
+#if CPU_LONG_USES_REGPAIR
     if (isRegPairType(TypeGet()) ||
         // (IsLocal() && isRegPairType(compiler->lvaTable[gtLclVarCommon.gtLclNum].TypeGet())) ||
         (OperGet() == GT_MUL && (gtFlags & GTF_MUL_64RSLT)))
@@ -1105,10 +1111,222 @@ GenTree::gtClearReg(Compiler* compiler)
         gtRegPair = REG_PAIR_NONE;
     }
     else
-#endif // !defined(LEGACY_BACKEND) && !defined(_TARGET_64BIT_)
+#endif // CPU_LONG_USES_REGPAIR
     {
         gtRegNum = REG_NA;
     }
+
+    // Also clear multi-reg state if this is a call node
+    if (IsCall())
+    {
+        this->AsCall()->ClearOtherRegs();
+    }
+    else if (IsCopyOrReload())
+    {
+        this->AsCopyOrReload()->ClearOtherRegs();
+    }
+}
+
+//-----------------------------------------------------------
+// CopyReg: Copy the _gtRegNum/_gtRegPair/gtRegTag fields.
+//
+// Arguments:
+//     from   -  GenTree node from which to copy
+//
+// Return Value:
+//     None
+void 
+GenTree::CopyReg(GenTreePtr from)
+{
+    // To do the copy, use _gtRegPair, which must be bigger than _gtRegNum. Note that the values
+    // might be undefined (so gtRegTag == GT_REGTAG_NONE).
+    _gtRegPair = from->_gtRegPair;
+    C_ASSERT(sizeof(_gtRegPair) >= sizeof(_gtRegNum));
+    INDEBUG(gtRegTag = from->gtRegTag;)
+
+    // Also copy multi-reg state if this is a call node
+    if (IsCall())
+    {
+        assert(from->IsCall());
+        this->AsCall()->CopyOtherRegs(from->AsCall());
+    }
+    else if (IsCopyOrReload())
+    {
+        this->AsCopyOrReload()->CopyOtherRegs(from->AsCopyOrReload());
+    }
+}
+
+//------------------------------------------------------------------
+// gtHasReg: Whether node beeen assigned a register by LSRA
+//
+// Arguments:
+//    None
+//
+// Return Value:
+//    Returns true if the node was assigned a register.
+//
+//    In case of multi-reg call nodes, it is considered
+//    having a reg if regs are allocated for all its
+//    return values.
+//
+//    In case of GT_COPY or GT_RELOAD of a multi-reg call,
+//    GT_COPY/GT_RELOAD is considered having a reg if it
+//    has a reg assigned to any of its positions.
+//
+// Assumption:
+//    In order for this to work properly, gtClearReg must be called
+//    prior to setting the register value.
+//
+bool GenTree::gtHasReg() const
+{
+    bool hasReg;
+
+#if CPU_LONG_USES_REGPAIR
+    if (isRegPairType(TypeGet()))
+    {
+        assert(_gtRegNum != REG_NA);
+        INDEBUG(assert(gtRegTag == GT_REGTAG_REGPAIR));
+        hasReg = (gtRegPair != REG_PAIR_NONE);
+    }
+    else
+#endif
+    {
+        assert(_gtRegNum != REG_PAIR_NONE);
+        INDEBUG(assert(gtRegTag == GT_REGTAG_REG));
+
+        if (IsMultiRegCall())
+        {
+            // Has to cast away const-ness because GetReturnTypeDesc() is a non-const method
+            GenTree* tree = const_cast<GenTree*>(this);
+            GenTreeCall* call = tree->AsCall();
+            unsigned regCount = call->GetReturnTypeDesc()->GetReturnRegCount();
+            hasReg = false;
+
+            // A Multi-reg call node is said to have regs, if it has
+            // reg assigned to each of its result registers.
+            for (unsigned i = 0; i < regCount; ++i)
+            {
+                hasReg = (call->GetRegNumByIdx(i) != REG_NA);
+                if (!hasReg)
+                {
+                    break;
+                }
+            }
+        }
+        else if (IsCopyOrReloadOfMultiRegCall())
+        {
+            GenTree* tree = const_cast<GenTree*>(this);
+            GenTreeCopyOrReload* copyOrReload = tree->AsCopyOrReload();
+            GenTreeCall* call = copyOrReload->gtGetOp1()->AsCall();
+            unsigned regCount = call->GetReturnTypeDesc()->GetReturnRegCount();
+            hasReg = false;
+
+            // A Multi-reg copy or reload node is said to have regs,
+            // if it has valid regs in any of the positions.
+            for (unsigned i = 0; i < regCount; ++i)
+            {
+                hasReg = (copyOrReload->GetRegNumByIdx(i) != REG_NA);
+                if (hasReg)
+                {
+                    break;
+                }
+            }
+        }
+        else
+        {
+            hasReg = (gtRegNum != REG_NA);
+        }
+    }
+
+    return hasReg;
+}
+
+//---------------------------------------------------------------
+// gtGetRegMask: Get the reg mask of the node.
+//
+// Arguments:
+//    None
+//
+// Return Value:
+//    Reg Mask of GenTree node.
+//
+regMaskTP 
+GenTree::gtGetRegMask() const
+{
+    regMaskTP resultMask;
+
+#if CPU_LONG_USES_REGPAIR
+    if (isRegPairType(TypeGet()))
+    {
+        resultMask = genRegPairMask(gtRegPair);
+    }
+    else
+#endif
+    {
+        if (IsMultiRegCall())
+        {
+            // temporarily cast away const-ness as AsCall() method is not declared const
+            resultMask = genRegMask(gtRegNum);
+            GenTree* temp = const_cast<GenTree*>(this);
+            resultMask |= temp->AsCall()->GetOtherRegMask();
+        }
+        else if (IsCopyOrReloadOfMultiRegCall())
+        {
+            // A multi-reg copy or reload, will have valid regs for only those 
+            // positions that need to be copied or reloaded.  Hence we need
+            // to consider only those registers for computing reg mask.
+
+            GenTree* tree = const_cast<GenTree*>(this);
+            GenTreeCopyOrReload* copyOrReload = tree->AsCopyOrReload();
+            GenTreeCall* call = copyOrReload->gtGetOp1()->AsCall();
+            unsigned regCount = call->GetReturnTypeDesc()->GetReturnRegCount();
+
+            resultMask = RBM_NONE;
+            for (unsigned i = 0; i < regCount; ++i)
+            {
+                regNumber reg = copyOrReload->GetRegNumByIdx(i);
+                if (reg != REG_NA)
+                {
+                    resultMask |= genRegMask(reg);
+                }
+            }
+        }
+        else
+        {
+            resultMask = genRegMask(gtRegNum);
+        }
+    }
+
+    return resultMask;
+}
+
+//---------------------------------------------------------------
+// GetOtherRegMask: Get the reg mask of gtOtherRegs of call node
+//
+// Arguments:
+//    None
+//
+// Return Value:
+//    Reg mask of gtOtherRegs of call node.
+//
+regMaskTP  
+GenTreeCall::GetOtherRegMask() const
+{
+    regMaskTP resultMask = RBM_NONE;
+
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+    for (unsigned i = 0; i < MAX_RET_REG_COUNT - 1; ++i)
+    {
+        if (gtOtherRegs[i] != REG_NA)
+        {
+            resultMask |= genRegMask(gtOtherRegs[i]);
+            continue;
+        }
+        break;
+    }
+#endif
+
+    return resultMask;
 }
 
 /*****************************************************************************
@@ -5163,6 +5381,12 @@ GenTreeCall*          Compiler::gtNewCallNode(gtCallTypes     callType,
     }
 #endif
 
+    // Initialize gtOtherRegs 
+    node->ClearOtherRegs();
+
+    // Initialize spill flags of gtOtherRegs
+    node->ClearOtherRegFlags();
+
     return node;
 }
 
@@ -6111,6 +6335,13 @@ GenTreePtr          Compiler::gtCloneExpr(GenTree * tree,
             }
             break;
 
+        case GT_COPY:
+        case GT_RELOAD:
+            {
+                copy = new(this, oper) GenTreeCopyOrReload(oper, tree->TypeGet(), tree->gtGetOp1());
+            }
+            break;
+
 #ifdef FEATURE_SIMD
         case GT_SIMD:
             {
@@ -6304,6 +6535,7 @@ GenTreePtr          Compiler::gtCloneExpr(GenTree * tree,
         copy->gtCall.gtInlineObservation = tree->gtCall.gtInlineObservation;
 #endif
 
+        copy->AsCall()->CopyOtherRegFlags(tree->AsCall());
         break;
 
     case GT_FIELD:
@@ -7279,7 +7511,7 @@ void                Compiler::gtDispVN(GenTree* tree)
 }
 
 //------------------------------------------------------------------------
-// gtDispNode: Print a tree to stdout.
+// gtDispNode: Print a tree to jitstdout.
 //
 // Arguments:
 //    tree - the tree to be printed
@@ -7659,6 +7891,28 @@ void                Compiler::gtDispRegVal(GenTree *  tree)
         break;
     }
 
+    if (tree->IsMultiRegCall())
+    {
+        // 0th reg is gtRegNum, which is already printed above.
+        // Print the remaining regs of a multi-reg call node.
+        GenTreeCall* call = tree->AsCall();
+        unsigned regCount = call->GetReturnTypeDesc()->GetReturnRegCount();
+        for (unsigned i = 1; i < regCount; ++i)
+        {
+            printf(",%s", compRegVarName(call->GetRegNumByIdx(i)));
+        }        
+    }
+    else if (tree->IsCopyOrReloadOfMultiRegCall())
+    {
+        GenTreeCopyOrReload* copyOrReload = tree->AsCopyOrReload();
+        GenTreeCall* call = tree->gtGetOp1()->AsCall();
+        unsigned regCount = call->GetReturnTypeDesc()->GetReturnRegCount();
+        for (unsigned i = 1; i < regCount; ++i)
+        {
+            printf(",%s", compRegVarName(copyOrReload->GetRegNumByIdx(i)));
+        }
+    }
+
     if  (tree->gtFlags & GTF_REG_VAL)
     {
         printf(" RV");
@@ -7714,10 +7968,8 @@ void                Compiler::gtGetLclVarNameInfo(unsigned lclNum, const char**
             else if (lclNum == lvaGSSecurityCookie)
                 ilName = "GsCookie";
 #if FEATURE_FIXED_OUT_ARGS
-#if INLINE_NDIRECT
             else if (lclNum == lvaPInvokeFrameRegSaveVar)
                 ilName = "PInvokeFrameRegSave";
-#endif // INLINE_NDIRECT
             else if (lclNum == lvaOutgoingArgSpaceVar)
                 ilName = "OutArgs";
 #endif // FEATURE_FIXED_OUT_ARGS
@@ -8002,7 +8254,7 @@ void Compiler::gtDispFieldSeq(FieldSeqNode* pfsn)
 }
 
 //------------------------------------------------------------------------
-// gtDispLeaf: Print a single leaf node to stdout.
+// gtDispLeaf: Print a single leaf node to jitstdout.
 //
 // Arguments:
 //    tree - the tree to be printed
@@ -8241,7 +8493,7 @@ Compiler::gtDispLeaf(GenTree *tree, IndentStack* indentStack)
 }
 
 //------------------------------------------------------------------------
-// gtDispLeaf: Print a child node to stdout.
+// gtDispLeaf: Print a child node to jitstdout.
 //
 // Arguments:
 //    tree - the tree to be printed
@@ -8596,6 +8848,10 @@ void                Compiler::gtDispTree(GenTreePtr             tree,
             }
 
             gtDispVN(tree);
+            if (tree->IsMultiRegCall())
+            {
+                gtDispRegVal(tree);
+            }
             printf("\n");
 
             if (!topOnly)
index 550a579..7a31deb 100644 (file)
@@ -551,52 +551,13 @@ public:
 #endif
 
     // Copy the _gtRegNum/_gtRegPair/gtRegTag fields
-    void CopyReg(GenTreePtr from)
-    {
-        // To do the copy, use _gtRegPair, which must be bigger than _gtRegNum. Note that the values
-        // might be undefined (so gtRegTag == GT_REGTAG_NONE).
-        _gtRegPair = from->_gtRegPair;
-        C_ASSERT(sizeof(_gtRegPair) >= sizeof(_gtRegNum));
-        INDEBUG(gtRegTag = from->gtRegTag;)
-    }
+    void CopyReg(GenTreePtr from);
 
     void gtClearReg(Compiler* compiler);
 
-    bool gtHasReg() const
-    {
-        // Has the node been assigned a register by LSRA?
-        //
-        // In order for this to work properly, gtClearReg (above) must be called prior to setting
-        // the register value.
-#if CPU_LONG_USES_REGPAIR
-        if (isRegPairType(TypeGet()))
-        {
-            assert(_gtRegNum != REG_NA);
-            INDEBUG(assert(gtRegTag == GT_REGTAG_REGPAIR));
-            return gtRegPair != REG_PAIR_NONE;
-        }
-        else
-#endif
-        {
-            assert(_gtRegNum != REG_PAIR_NONE);
-            INDEBUG(assert(gtRegTag == GT_REGTAG_REG));
-            return gtRegNum != REG_NA;
-        }
-    }
+    bool gtHasReg() const;
 
-    regMaskTP gtGetRegMask() const
-    {
-#if CPU_LONG_USES_REGPAIR
-        if (isRegPairType(TypeGet()))
-        {
-            return genRegPairMask(gtRegPair);
-        }
-        else
-#endif
-        {
-            return genRegMask(gtRegNum);
-        }
-    }
+    regMaskTP gtGetRegMask() const;
 
     unsigned            gtFlags;        // see GTF_xxxx below
     
@@ -1153,6 +1114,29 @@ public:
                 || OperIsShiftOrRotate(op);
     }
 
+#if !defined(LEGACY_BACKEND) && !defined(_TARGET_64BIT_)
+    static
+    bool            OperIsHigh(genTreeOps gtOper)
+    {
+        switch (gtOper)
+        {
+        case GT_ADD_HI:
+        case GT_SUB_HI:
+        case GT_MUL_HI:
+        case GT_DIV_HI:
+        case GT_MOD_HI:
+            return true;
+        default:
+            return false;
+        }
+    }
+
+    bool            OperIsHigh() const
+    {
+        return OperIsHigh(OperGet());
+    }
+#endif // !defined(LEGACY_BACKEND) && !defined(_TARGET_64BIT_)
+
     static
     int             OperIsUnary(genTreeOps gtOper)
     {
@@ -1386,7 +1370,14 @@ public:
     // Return the child of this node if it is a GT_RELOAD or GT_COPY; otherwise simply return the node itself
     inline GenTree*   gtSkipReloadOrCopy();
 
-    inline bool     IsMultiRegCallStoreToLocal();
+    // Returns true if it is a call node returning its value in more than one register
+    inline bool     IsMultiRegCall() const;
+
+    // Returns true if it is a GT_COPY or GT_RELOAD node
+    inline bool     IsCopyOrReload() const;
+
+    // Returns true if it is a GT_COPY or GT_RELOAD of a multi-reg call node
+    inline bool     IsCopyOrReloadOfMultiRegCall() const;
 
     bool            OperMayThrow();
 
@@ -2384,8 +2375,8 @@ enum class InlineObservation;
 // registers. For such calls this struct provides the following info 
 // on their return type
 //    - type of value returned in each return register
-//    - return register numbers in which the value is returned
-//    - a spill mask for lsra/codegen purpose
+//    - ABI return register numbers in which the value is returned
+//    - count of return registers in which the value is returned
 //
 // TODO-ARM: Update this to meet the needs of Arm64 and Arm32
 // TODO-X86: Update this to meet the needs of x86
@@ -2428,7 +2419,7 @@ public:
     // Return Value:
     //   Count of return registers.
     //   Returns 0 if the return type is not returned in registers.
-    unsigned GetReturnRegCount()
+    unsigned GetReturnRegCount() const
     {
         assert(m_inited);
 
@@ -2451,6 +2442,21 @@ public:
         return regCount;
     }
 
+    //-----------------------------------------------------------------------
+    // IsMultiRegRetType: check whether the type is returned in multiple 
+    // return registers.
+    //
+    // Arguments: 
+    //    None
+    //
+    // Return Value:
+    //    Returns true if the type is returned in multiple return registers.
+    //    False otherwise.
+    bool IsMultiRegRetType() const
+    {
+        return GetReturnRegCount() > 1;
+    }
+
     //--------------------------------------------------------------------------
     // GetReturnRegType:  Get var_type of the return register specified by index.
     // 
@@ -2504,12 +2510,23 @@ struct GenTreeCall final : public GenTree
 
     regMaskTP         gtCallRegUsedMask;      // mask of registers used to pass parameters
 
-    // For now Return Type Descriptor is enabled only for x64 unix.
+    // State required to support multi-reg returning call nodes.
+    // For now it is enabled only for x64 unix.
+    //
     // TODO-ARM: enable this for HFA returns on Arm64 and Arm32
     // TODO-X86: enable this for long returns on x86
     // TODO-AllArch: enable for all call nodes to unify single-reg and multi-reg returns.
 #ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
     ReturnTypeDesc    gtReturnTypeDesc;
+
+    // gtRegNum would always be the first return reg.
+    // The following array holds the other reg numbers of multi-reg return.
+    regNumber         gtOtherRegs[MAX_RET_REG_COUNT - 1];
+
+    // GTF_SPILL or GTF_SPILLED flag on a multi-reg call node indicates that one or
+    // more of its result regs are in that state.  The spill flag of each of the
+    // return register is stored in the below array.
+    unsigned          gtSpillFlags[MAX_RET_REG_COUNT];
 #endif 
 
     //-----------------------------------------------------------------------
@@ -2537,6 +2554,185 @@ struct GenTreeCall final : public GenTree
 #endif
     }
 
+    //---------------------------------------------------------------------------
+    // GetRegNumByIdx: get ith return register allocated to this call node.
+    //
+    // Arguments:
+    //     idx   -   index of the return register
+    //
+    // Return Value:
+    //     Return regNumber of ith return register of call node.
+    //     Returns REG_NA if there is no valid return register for the given index.
+    //
+    // TODO-ARM: Implement this routine for Arm64 and Arm32
+    // TODO-X86: Implement this routine for x86
+    regNumber  GetRegNumByIdx(unsigned idx) const
+    {
+        assert(idx < MAX_RET_REG_COUNT);
+
+        if (idx == 0)
+        {
+            return gtRegNum;
+        }
+
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        return gtOtherRegs[idx-1];
+#else
+        return REG_NA;
+#endif
+    }
+
+    //----------------------------------------------------------------------
+    // SetRegNumByIdx: set ith return register of this call node
+    //
+    // Arguments:
+    //    reg    -   reg number
+    //    idx    -   index of the return register
+    //
+    // Return Value:
+    //    None
+    //
+    // TODO-ARM: Implement this routine for Arm64 and Arm32
+    // TODO-X86: Implement this routine for x86
+    void  SetRegNumByIdx(regNumber reg, unsigned idx)
+    {
+        assert(idx < MAX_RET_REG_COUNT);
+
+        if (idx == 0)
+        {
+            gtRegNum = reg;
+        }
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        else
+        {
+            gtOtherRegs[idx - 1] = reg;
+            assert(gtOtherRegs[idx - 1] == reg);
+        }
+#else
+        unreached();
+#endif
+    }
+
+    //----------------------------------------------------------------------------
+    // ClearOtherRegs: clear multi-reg state to indicate no regs are allocated
+    //
+    // Arguments:
+    //    None
+    //
+    // Return Value:
+    //    None
+    //
+    void  ClearOtherRegs()
+    {
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        for (unsigned i = 0; i < MAX_RET_REG_COUNT - 1; ++i)
+        {
+            gtOtherRegs[i] = REG_NA;
+        }
+#endif
+    }
+
+    //----------------------------------------------------------------------------
+    // CopyOtherRegs: copy multi-reg state from the given call node to this node
+    //
+    // Arguments:
+    //    fromCall  -  GenTreeCall node from which to copy multi-reg state
+    //
+    // Return Value:
+    //    None
+    //
+    void CopyOtherRegs(GenTreeCall* fromCall)
+    {
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        for (unsigned i = 0; i < MAX_RET_REG_COUNT - 1; ++i)
+        {
+            this->gtOtherRegs[i] = fromCall->gtOtherRegs[i];
+        }
+#endif
+    }
+
+    // Get reg mask of all the valid registers of gtOtherRegs array
+    regMaskTP  GetOtherRegMask() const;
+
+    //----------------------------------------------------------------------
+    // GetRegSpillFlagByIdx: get spill flag associated with the return register 
+    // specified by its index.
+    //
+    // Arguments:
+    //    idx  -  Position or index of the return register
+    //
+    // Return Value:
+    //    Returns GTF_* flags associated with.
+    unsigned GetRegSpillFlagByIdx(unsigned idx) const
+    {
+        assert(idx < MAX_RET_REG_COUNT);
+
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        return gtSpillFlags[idx];
+#else
+        assert(!"unreached");
+        return 0;
+#endif
+    }
+
+    //----------------------------------------------------------------------
+    // SetRegSpillFlagByIdx: set spill flags for the return register 
+    // specified by its index.
+    //
+    // Arguments:
+    //    flags  -  GTF_* flags
+    //    idx    -  Position or index of the return register
+    //
+    // Return Value:
+    //    None
+    void SetRegSpillFlagByIdx(unsigned flags, unsigned idx)
+    {
+        assert(idx < MAX_RET_REG_COUNT);
+
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        gtSpillFlags[idx] = flags;
+#else
+        unreached();
+#endif
+    }
+
+    //-------------------------------------------------------------------
+    // clearOtherRegFlags: clear GTF_* flags associated with gtOtherRegs
+    //
+    // Arguments:
+    //     None
+    //
+    // Return Value:
+    //     None
+    void ClearOtherRegFlags()
+    {
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        for (unsigned i = 0; i < MAX_RET_REG_COUNT; ++i)
+        {
+            gtSpillFlags[i] = 0;
+        }
+#endif
+    }
+
+    //-------------------------------------------------------------------------
+    // CopyOtherRegFlags: copy GTF_* flags associated with gtOtherRegs from
+    // the given call node.
+    //
+    // Arguments:
+    //    fromCall  -  GenTreeCall node from which to copy
+    //
+    // Return Value:
+    //    None
+    //
+    void CopyOtherRegFlags(GenTreeCall* fromCall)
+    {
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        for (unsigned i = 0; i < MAX_RET_REG_COUNT; ++i)
+        {
+            this->gtSpillFlags[i] = fromCall->gtSpillFlags[i];
+        }
+#endif
+    }
 
 #define     GTF_CALL_M_EXPLICIT_TAILCALL       0x0001  // GT_CALL -- the call is "tail" prefixed and importer has performed tail call checks
 #define     GTF_CALL_M_TAILCALL                0x0002  // GT_CALL -- the call is a tailcall
@@ -2633,7 +2829,6 @@ struct GenTreeCall final : public GenTree
 #endif
     }
 
-
     // Returns true if VM has flagged this method as CORINFO_FLG_PINVOKE.
     bool IsPInvoke()                { return (gtCallMoreFlags & GTF_CALL_M_PINVOKE) != 0; }
 
@@ -2689,9 +2884,10 @@ struct GenTreeCall final : public GenTree
         // only used for CALLI unmanaged calls (CT_INDIRECT)
         GenTreePtr      gtCallCookie;           
         // gtInlineCandidateInfo is only used when inlining methods 
-        InlineCandidateInfo * gtInlineCandidateInfo;
-        void *  gtStubCallStubAddr;             // GTF_CALL_VIRT_STUB - these are never inlined                
+        InlineCandidateInfo* gtInlineCandidateInfo;
+        void* gtStubCallStubAddr;             // GTF_CALL_VIRT_STUB - these are never inlined                
         CORINFO_GENERIC_HANDLE compileTimeHelperArgumentHandle; // Used to track type handle argument of dynamic helpers
+        void* gtDirectCallAddress; // Used to pass direct call address between lower and codegen
     };
 
     // expression evaluated after args are placed which determines the control target
@@ -3747,6 +3943,138 @@ struct GenTreePutArgStk: public GenTreeUnOp
 #endif
 };
 
+// Represents GT_COPY or GT_RELOAD node
+struct GenTreeCopyOrReload : public GenTreeUnOp
+{
+    // State required to support copy/reload of a multi-reg call node.
+    // First register is is always given by gtRegNum.
+    // Currently enabled for x64 unix.
+    //
+    // TODO-ARM: Enable this when multi-reg call node support is added.
+    // TODO-X86: Enable this when multi-reg call node support is added.
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+    regNumber gtOtherRegs[MAX_RET_REG_COUNT - 1];
+#endif
+
+    //----------------------------------------------------------
+    // ClearOtherRegs: set gtOtherRegs to REG_NA.
+    //
+    // Arguments:
+    //    None
+    //
+    // Return Value:
+    //    None
+    //
+    // TODO-ARM: Implement this routine for Arm64 and Arm32
+    // TODO-X86: Implement this routine for x86
+    void ClearOtherRegs()
+    {
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        for (unsigned i = 0; i < MAX_RET_REG_COUNT - 1; ++i)
+        {
+            gtOtherRegs[i] = REG_NA;
+        }
+#endif
+    }
+
+    //-----------------------------------------------------------
+    // GetRegNumByIdx: Get regNumber of ith position.
+    //
+    // Arguments:
+    //    idx   -   register position.
+    //
+    // Return Value:
+    //    Returns regNumber assigned to ith position.
+    //
+    // TODO-ARM: Implement this routine for Arm64 and Arm32
+    // TODO-X86: Implement this routine for x86
+    regNumber GetRegNumByIdx(unsigned idx) const
+    {
+        assert(idx < MAX_RET_REG_COUNT);
+
+        if (idx == 0)
+        {
+            return gtRegNum;
+        }
+
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        return gtOtherRegs[idx - 1];
+#else
+        return REG_NA;
+#endif
+    }
+
+    //-----------------------------------------------------------
+    // SetRegNumByIdx: Set the regNumber for ith position.
+    //
+    // Arguments:
+    //    reg   -   reg number 
+    //    idx   -   register position.
+    //
+    // Return Value:
+    //    None.
+    //
+    // TODO-ARM: Implement this routine for Arm64 and Arm32
+    // TODO-X86: Implement this routine for x86
+    void SetRegNumByIdx(regNumber reg, unsigned idx)
+    {
+        assert(idx < MAX_RET_REG_COUNT);
+
+        if (idx == 0)
+        {
+            gtRegNum = reg;
+        }
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        else
+        {
+            gtOtherRegs[idx - 1] = reg;
+            assert(gtOtherRegs[idx - 1] == reg);
+        }
+#else
+        else
+        {
+            unreached();
+        }
+#endif
+    }
+
+    //----------------------------------------------------------------------------
+    // CopyOtherRegs: copy multi-reg state from the given copy/reload node to this
+    // node.
+    //
+    // Arguments:
+    //    from  -  GenTree node from which to copy multi-reg state
+    //
+    // Return Value:
+    //    None
+    //
+    // TODO-ARM: Implement this routine for Arm64 and Arm32
+    // TODO-X86: Implement this routine for x86
+    void CopyOtherRegs(GenTreeCopyOrReload* from)
+    {
+        assert(OperGet() == from->OperGet());
+
+#ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
+        for (unsigned i = 0; i < MAX_RET_REG_COUNT - 1; ++i)
+        {
+            gtOtherRegs[i] = from->gtOtherRegs[i];
+        }
+#endif
+    }
+
+    GenTreeCopyOrReload(genTreeOps oper,
+        var_types type,
+        GenTree* op1) : GenTreeUnOp(oper, type, op1)
+    {
+        gtRegNum = REG_NA;
+        ClearOtherRegs();
+    }
+
+#if DEBUGGABLE_GENTREE
+    GenTreeCopyOrReload() : GenTreeUnOp() {}
+#endif
+};
+
 // Deferred inline functions of GenTree -- these need the subtypes above to
 // be defined already.
 
@@ -3962,25 +4290,57 @@ inline GenTree*         GenTree::gtSkipReloadOrCopy()
     return this;
 }
 
-//----------------------------------------------------------------------------------------
-// IsMultiRegCallStoreToLocal: Whether store op is storing multi-reg return value of call
-// to a local.
+//-----------------------------------------------------------------------------------
+// IsMultiRegCall: whether a call node returning its value in more than one register
 //
 // Arguments:
-//    None
+//     None
 //
 // Return Value:
-//    Returns true if store op is storing a multi-reg return value of a call into a local.
-//    False otherwise.
-// 
-inline bool GenTree::IsMultiRegCallStoreToLocal()
+//     Returns true if this GenTree is a multi register returning call 
+inline bool  GenTree::IsMultiRegCall() const
 {
-    assert(OperGet() == GT_STORE_LCL_VAR);
+    if (this->IsCall())
+    {
+        // We cannot use AsCall() as it is not declared const
+        const GenTreeCall* call = reinterpret_cast<const GenTreeCall *>(this);
+        return call->HasMultiRegRetVal();
+    }
 
-    GenTreePtr op1 = gtGetOp1();
-    GenTreePtr actualOperand = op1->gtSkipReloadOrCopy();
+    return false;
+}
 
-    return (actualOperand->OperGet() == GT_CALL) && actualOperand->AsCall()->HasMultiRegRetVal();
+//-------------------------------------------------------------------------
+// IsCopyOrReload: whether this is a GT_COPY or GT_RELOAD node.
+//
+// Arguments:
+//     None
+//
+// Return Value:
+//     Returns true if this GenTree is a copy or reload node.
+inline bool GenTree::IsCopyOrReload() const
+{
+    return (gtOper == GT_COPY || gtOper == GT_RELOAD);
+}
+
+//-----------------------------------------------------------------------------------
+// IsCopyOrReloadOfMultiRegCall: whether this is a GT_COPY or GT_RELOAD of a multi-reg
+// call node.
+//
+// Arguments:
+//     None
+//
+// Return Value:
+//     Returns true if this GenTree is a copy or reload of multi-reg call node.
+inline bool GenTree::IsCopyOrReloadOfMultiRegCall() const
+{
+    if (IsCopyOrReload())
+    {
+        GenTree* t = const_cast<GenTree*>(this);
+        return t->gtGetOp1()->IsMultiRegCall();
+    }
+
+    return false;
 }
 
 inline bool GenTree::IsCnsIntOrI() const
index 4eee840..8248b53 100644 (file)
@@ -148,16 +148,16 @@ GTNODE(LEA        , "lea"        ,0,GTK_BINOP|GTK_EXOP)
 // of its two (lower and upper half) operands.  Some GT_LONG nodes are transient,
 // during the decomposing of longs; others are handled by codegen as operands of
 // nodes such as calls, returns and stores of long lclVars.
-GTNODE(LONG       , "long"       ,0,GTK_BINOP)
+GTNODE(LONG       , "gt_long"    ,0,GTK_BINOP)
 
 // The following are nodes representing the upper half of a 64-bit operation
 // that requires a carry/borrow.  However, they are all named GT_XXX_HI for
 // consistency.
-GTNODE(ADD_HI     , "+Hi"          ,1,GTK_BINOP|GTK_EXOP)
-GTNODE(SUB_HI     , "-Hi"          ,0,GTK_BINOP|GTK_EXOP)
-GTNODE(MUL_HI     , "*Hi"          ,1,GTK_BINOP|GTK_EXOP)
-GTNODE(DIV_HI     , "/Hi"          ,0,GTK_BINOP|GTK_EXOP)
-GTNODE(MOD_HI     , "%Hi"          ,0,GTK_BINOP|GTK_EXOP)
+GTNODE(ADD_HI     , "+Hi"          ,1,GTK_BINOP)
+GTNODE(SUB_HI     , "-Hi"          ,0,GTK_BINOP)
+GTNODE(MUL_HI     , "*Hi"          ,1,GTK_BINOP)
+GTNODE(DIV_HI     , "/Hi"          ,0,GTK_BINOP)
+GTNODE(MOD_HI     , "%Hi"          ,0,GTK_BINOP)
 #endif // !defined(LEGACY_BACKEND) && !defined(_TARGET_64BIT_)
 
 #ifdef FEATURE_SIMD
index 3c55c30..2f0b3a3 100644 (file)
@@ -81,6 +81,7 @@ GTSTRUCT_1(ArrIndex    , GT_ARR_INDEX)
 GTSTRUCT_1(RetExpr     , GT_RET_EXPR) 
 GTSTRUCT_1(Stmt        , GT_STMT) 
 GTSTRUCT_1(Obj         , GT_OBJ)
+GTSTRUCT_2(CopyOrReload, GT_COPY, GT_RELOAD)
 GTSTRUCT_2(ClsVar      , GT_CLS_VAR, GT_CLS_VAR_ADDR) 
 GTSTRUCT_1(ArgPlace    , GT_ARGPLACE) 
 GTSTRUCT_1(Label       , GT_LABEL) 
index f6d701f..d38d41b 100644 (file)
@@ -9,6 +9,10 @@
 #define printf logf
 #endif
 
+#ifndef fprintf
+#define fprintf flogf
+#endif
+
 class Compiler;
 class LogEnv
 {
@@ -21,27 +25,14 @@ public:
 };
 
 BOOL vlogf(unsigned level, const char* fmt, va_list args);
+int vflogf(FILE* file, const char* fmt, va_list args);
 
-int logf_stdout(const char* fmt, va_list args);
-int logf(const char*, ...);
+int logf(const char* fmt, ...);
+int flogf(FILE* file, const char* fmt, ...);
 void gcDump_logf(const char* fmt, ...);
 
 void logf(unsigned level, const char* fmt, ...);
 
-#if defined(CROSSGEN_COMPILE) && !defined(PLATFORM_UNIX) && !defined(fprintf)
-// On Windows, CrossGen configures its stdout to allow Unicode output only.
-// The following wrapper allows fprintf to work with stdout.
-inline int fprintfCrossgen(FILE *stream, const char *fmt, ...)
-{
-    va_list args;
-    va_start(args, fmt);
-    int ret = stream == stdout ? logf_stdout(fmt, args) : vfprintf(stream, fmt, args);
-    va_end(args);
-    return ret;
-}
-#define fprintf fprintfCrossgen
-#endif
-
 extern  "C" 
 void    __cdecl     assertAbort(const char *why, const char *file, unsigned line);
 
@@ -61,6 +52,12 @@ void    __cdecl     assertAbort(const char *why, const char *file, unsigned line
 
 const   size_t      OS_page_size = (4*1024);
 
+extern FILE* jitstdout;
+
+inline FILE* procstdout() { return stdout; }
+#undef stdout
+#define stdout use_jitstdout
+
 /*****************************************************************************/
 #endif
 /*****************************************************************************/
index b783874..52604b5 100644 (file)
@@ -1571,10 +1571,13 @@ GenTreePtr          Compiler::impTokenToHandle(CORINFO_RESOLVED_TOKEN * pResolve
         }
     }
 
-    return impLookupToTree(&embedInfo.lookup, gtTokenToIconFlags(pResolvedToken->token), embedInfo.compileTimeHandle);
+    return impLookupToTree(pResolvedToken, &embedInfo.lookup, gtTokenToIconFlags(pResolvedToken->token), embedInfo.compileTimeHandle);
 }
 
-GenTreePtr          Compiler::impLookupToTree(CORINFO_LOOKUP *pLookup, unsigned handleFlags, void *compileTimeHandle)
+GenTreePtr          Compiler::impLookupToTree(CORINFO_RESOLVED_TOKEN *pResolvedToken, 
+                                              CORINFO_LOOKUP *pLookup, 
+                                              unsigned handleFlags, 
+                                              void *compileTimeHandle)
 {
     if (!pLookup->lookupKind.needsRuntimeLookup) 
     {
@@ -1604,9 +1607,7 @@ GenTreePtr          Compiler::impLookupToTree(CORINFO_LOOKUP *pLookup, unsigned
         // Need to use dictionary-based access which depends on the typeContext
         // which is only available at runtime, not at compile-time.
         
-        return impRuntimeLookupToTree(pLookup->lookupKind.runtimeLookupKind,
-                                             &pLookup->runtimeLookup,
-                                             compileTimeHandle);
+        return impRuntimeLookupToTree(pResolvedToken, pLookup, compileTimeHandle);
     }
 }
 
@@ -1627,18 +1628,20 @@ GenTreePtr          Compiler::impReadyToRunLookupToTree(CORINFO_CONST_LOOKUP *pL
                                 0, 0, compileTimeHandle);
 }
 
-GenTreePtr          Compiler::impReadyToRunHelperToTree(CORINFO_RESOLVED_TOKEN * pResolvedToken,
-                                        CorInfoHelpFunc       helper,
-                                        var_types      type,
-                                        GenTreePtr arg)
+GenTreePtr          Compiler::impReadyToRunHelperToTree(
+                                CORINFO_RESOLVED_TOKEN * pResolvedToken,
+                                CorInfoHelpFunc          helper,
+                                var_types                type,
+                                GenTreeArgList*          args /* =NULL*/,
+                                CORINFO_LOOKUP_KIND *    pGenericLookupKind /* =NULL. Only used with generics */)
 {
     CORINFO_CONST_LOOKUP lookup;
+#if COR_JIT_EE_VERSION > 460
+    if (!info.compCompHnd->getReadyToRunHelper(pResolvedToken, pGenericLookupKind, helper, &lookup))
+        return NULL;
+#else
     info.compCompHnd->getReadyToRunHelper(pResolvedToken, helper, &lookup);
-
-    GenTreeArgList* args = NULL;
-
-    if (arg != NULL)
-        args = gtNewArgList(arg);
+#endif
 
     GenTreePtr op1 = gtNewHelperCallNode(helper, type, GTF_EXCEPT, args);
 
@@ -1678,7 +1681,7 @@ GenTreePtr Compiler::impMethodPointer(CORINFO_RESOLVED_TOKEN * pResolvedToken, C
             return nullptr;
         }
 
-        op1 = impLookupToTree(&pCallInfo->codePointerLookup, GTF_ICON_FTN_ADDR, pCallInfo->hMethod);
+        op1 = impLookupToTree(pResolvedToken, &pCallInfo->codePointerLookup, GTF_ICON_FTN_ADDR, pCallInfo->hMethod);
         break;
 
     default:
@@ -1708,10 +1711,13 @@ GenTreePtr Compiler::impMethodPointer(CORINFO_RESOLVED_TOKEN * pResolvedToken, C
           to lookup the handle.
  */
 
-GenTreePtr          Compiler::impRuntimeLookupToTree(CORINFO_RUNTIME_LOOKUP_KIND kind,
-                                                     CORINFO_RUNTIME_LOOKUP* pLookup,
+GenTreePtr          Compiler::impRuntimeLookupToTree(CORINFO_RESOLVED_TOKEN *pResolvedToken, 
+                                                     CORINFO_LOOKUP *pLookup, 
                                                      void* compileTimeHandle)
 {
+    CORINFO_RUNTIME_LOOKUP_KIND kind = pLookup->lookupKind.runtimeLookupKind;
+    CORINFO_RUNTIME_LOOKUP* pRuntimeLookup = &pLookup->runtimeLookup;
+
     // This method can only be called from the importer instance of the Compiler.
     // In other word, it cannot be called by the instance of the Compiler for the inlinee.
     assert(!compIsForInlining());
@@ -1740,24 +1746,34 @@ GenTreePtr          Compiler::impRuntimeLookupToTree(CORINFO_RUNTIME_LOOKUP_KIND
         ctxTree = gtNewLclvNode(info.compTypeCtxtArg, TYP_I_IMPL); // Exact method descriptor as passed in as last arg
     }
 
+#ifdef FEATURE_READYTORUN_COMPILER
+    if (opts.IsReadyToRun())
+    {
+        return impReadyToRunHelperToTree(pResolvedToken, CORINFO_HELP_READYTORUN_GENERIC_HANDLE, 
+            TYP_I_IMPL, gtNewArgList(ctxTree), &pLookup->lookupKind);
+    }
+#endif
+
+
     // It's available only via the run-time helper function
-    if (pLookup->indirections == CORINFO_USEHELPER)
+    if (pRuntimeLookup->indirections == CORINFO_USEHELPER)
     {
-        GenTreeArgList* helperArgs = gtNewArgList(ctxTree, gtNewIconEmbHndNode(pLookup->signature, NULL, GTF_ICON_TOKEN_HDL, 0, NULL, compileTimeHandle));
+        GenTreeArgList* helperArgs = gtNewArgList(ctxTree, gtNewIconEmbHndNode(
+            pRuntimeLookup->signature, NULL, GTF_ICON_TOKEN_HDL, 0, NULL, compileTimeHandle));
 
-        return gtNewHelperCallNode(pLookup->helper, TYP_I_IMPL, GTF_EXCEPT, helperArgs);
+        return gtNewHelperCallNode(pRuntimeLookup->helper, TYP_I_IMPL, GTF_EXCEPT, helperArgs);
     }
 
     // Slot pointer
     GenTreePtr slotPtrTree = ctxTree;
 
-    if (pLookup->testForNull)
+    if (pRuntimeLookup->testForNull)
     {
         slotPtrTree = impCloneExpr(ctxTree, &ctxTree, NO_CLASS_HANDLE, (unsigned)CHECK_SPILL_ALL, NULL DEBUGARG("impRuntimeLookup slot") );
     }
 
     // Applied repeated indirections
-    for (WORD i = 0; i < pLookup->indirections; i++)
+    for (WORD i = 0; i < pRuntimeLookup->indirections; i++)
     {
         if (i != 0) 
         {
@@ -1765,14 +1781,14 @@ GenTreePtr          Compiler::impRuntimeLookupToTree(CORINFO_RUNTIME_LOOKUP_KIND
             slotPtrTree->gtFlags |= GTF_IND_NONFAULTING;
             slotPtrTree->gtFlags |= GTF_IND_INVARIANT;
         }
-        if (pLookup->offsets[i] != 0)
-            slotPtrTree = gtNewOperNode(GT_ADD, TYP_I_IMPL, slotPtrTree, gtNewIconNode(pLookup->offsets[i], TYP_I_IMPL));            
+        if (pRuntimeLookup->offsets[i] != 0)
+            slotPtrTree = gtNewOperNode(GT_ADD, TYP_I_IMPL, slotPtrTree, gtNewIconNode(pRuntimeLookup->offsets[i], TYP_I_IMPL));
     }
     
     // No null test required
-    if (!pLookup->testForNull)
+    if (!pRuntimeLookup->testForNull)
     {
-        if (pLookup->indirections == 0)
+        if (pRuntimeLookup->indirections == 0)
         {
             return slotPtrTree;
         }
@@ -1780,7 +1796,7 @@ GenTreePtr          Compiler::impRuntimeLookupToTree(CORINFO_RUNTIME_LOOKUP_KIND
         slotPtrTree = gtNewOperNode(GT_IND, TYP_I_IMPL, slotPtrTree);
         slotPtrTree->gtFlags |= GTF_IND_NONFAULTING;
 
-        if (!pLookup->testForFixup)
+        if (!pRuntimeLookup->testForFixup)
         {
             return slotPtrTree;
         }
@@ -1807,7 +1823,7 @@ GenTreePtr          Compiler::impRuntimeLookupToTree(CORINFO_RUNTIME_LOOKUP_KIND
         return gtNewLclvNode(tmp, TYP_I_IMPL);
     }
 
-    assert(pLookup->indirections != 0);
+    assert(pRuntimeLookup->indirections != 0);
 
     impSpillSideEffects(true, CHECK_SPILL_ALL DEBUGARG("bubbling QMark1"));  
     
@@ -1818,8 +1834,9 @@ GenTreePtr          Compiler::impRuntimeLookupToTree(CORINFO_RUNTIME_LOOKUP_KIND
     GenTreePtr handleCopy = impCloneExpr(handle, &handle, NO_CLASS_HANDLE, (unsigned)CHECK_SPILL_ALL, NULL DEBUGARG("impRuntimeLookup typehandle") );
 
     // Call to helper
-    GenTreeArgList* helperArgs = gtNewArgList(ctxTree, gtNewIconEmbHndNode(pLookup->signature, NULL, GTF_ICON_TOKEN_HDL, 0, NULL, compileTimeHandle));
-    GenTreePtr helperCall = gtNewHelperCallNode(pLookup->helper, TYP_I_IMPL, GTF_EXCEPT, helperArgs);
+    GenTreeArgList* helperArgs = gtNewArgList(ctxTree, gtNewIconEmbHndNode(
+        pRuntimeLookup->signature, NULL, GTF_ICON_TOKEN_HDL, 0, NULL, compileTimeHandle));
+    GenTreePtr helperCall = gtNewHelperCallNode(pRuntimeLookup->helper, TYP_I_IMPL, GTF_EXCEPT, helperArgs);
     
     // Check for null and possibly call helper 
     GenTreePtr relop = gtNewOperNode(GT_NE, TYP_INT, handle, gtNewIconNode(0, TYP_I_IMPL));
@@ -4495,7 +4512,7 @@ GenTreePtr Compiler::impImportLdvirtftn (GenTreePtr thisPtr,
     }
 
 #ifdef FEATURE_READYTORUN_COMPILER
-    if (opts.IsReadyToRun())
+    if (opts.IsReadyToRun() && !pCallInfo->exactContextNeedsRuntimeLookup)
     {
         GenTreeCall* call = gtNewHelperCallNode(CORINFO_HELP_READYTORUN_VIRTUAL_FUNC_PTR,
             TYP_I_IMPL, GTF_EXCEPT, gtNewArgList(thisPtr));
@@ -4540,16 +4557,9 @@ void           Compiler::impImportAndPushBox (CORINFO_RESOLVED_TOKEN * pResolved
     // Note we can only box do it if the class construtor has been called
     // We can always do it on primitive types
     
-    GenTreePtr op1, op2 = nullptr;
-    var_types       lclTyp;
-
-    if (!opts.IsReadyToRun())
-    {
-        // Ensure that the value class is restored
-        op2 = impTokenToHandle(pResolvedToken, NULL, TRUE /* mustRestoreHandle */);
-        if (op2 == NULL) // compDonotInline()
-            return;
-    }
+    GenTreePtr op1 = nullptr;
+    GenTreePtr op2 = nullptr;
+    var_types lclTyp;
     
     impSpillSpecialSideEff();
     
@@ -4558,7 +4568,7 @@ void           Compiler::impImportAndPushBox (CORINFO_RESOLVED_TOKEN * pResolved
     GenTreePtr exprToBox = impPopStack(operCls).val;
     
     CorInfoHelpFunc boxHelper = info.compCompHnd->getBoxHelper(pResolvedToken->hClass);
-    if (boxHelper == CORINFO_HELP_BOX) 
+    if (boxHelper == CORINFO_HELP_BOX)
     {
         // we are doing 'normal' boxing.  This means that we can inline the box operation
         // Box(expr) gets morphed into
@@ -4580,13 +4590,29 @@ void           Compiler::impImportAndPushBox (CORINFO_RESOLVED_TOKEN * pResolved
         impBoxTempInUse = true;
             
 #ifdef FEATURE_READYTORUN_COMPILER
+        bool usingReadyToRunHelper = false;
+
         if (opts.IsReadyToRun())
         {
             op1 = impReadyToRunHelperToTree(pResolvedToken, CORINFO_HELP_READYTORUN_NEW, TYP_REF);
+            usingReadyToRunHelper = (op1 != NULL);
         }
-        else
+
+        if (!usingReadyToRunHelper)
 #endif
         {
+            // TODO: ReadyToRun: When generic dictionary lookups are necessary, replace the lookup call
+            // and the newfast call with a single call to a dynamic R2R cell that will:
+            //      1) Load the context
+            //      2) Perform the generic dictionary lookup and caching, and generate the appropriate stub
+            //      3) Allocate and return the new object for boxing
+            // Reason: performance (today, we'll always use the slow helper for the R2R generics case)
+
+            // Ensure that the value class is restored
+            op2 = impTokenToHandle(pResolvedToken, NULL, TRUE /* mustRestoreHandle */);
+            if (op2 == NULL) // compDonotInline()
+                return;
+
             op1 = gtNewHelperCallNode(  info.compCompHnd->getNewHelper(pResolvedToken, info.compMethodHnd),
                                         TYP_REF, 0,
                                         gtNewArgList(op2));
@@ -4650,13 +4676,10 @@ void           Compiler::impImportAndPushBox (CORINFO_RESOLVED_TOKEN * pResolved
     {
         // Don't optimize, just call the helper and be done with it
 
-        if (opts.IsReadyToRun())
-        {
-            // Ensure that the value class is restored
-            op2 = impTokenToHandle(pResolvedToken, nullptr, TRUE /* mustRestoreHandle */);
-            if (op2 == nullptr) // compDonotInline()
-                return;
-        }
+        // Ensure that the value class is restored
+        op2 = impTokenToHandle(pResolvedToken, nullptr, TRUE /* mustRestoreHandle */);
+        if (op2 == nullptr) // compDonotInline()
+            return;
 
         GenTreeArgList* args = gtNewArgList(op2, impGetStructAddr(exprToBox, operCls, (unsigned)CHECK_SPILL_ALL, true));
         op1 = gtNewHelperCallNode(boxHelper, TYP_REF, GTF_EXCEPT, args);
@@ -4739,9 +4762,6 @@ GenTreePtr Compiler::impTransformThis (GenTreePtr thisPtr,
     }
 }
 
-/*****************************************************************************/
-#if defined(INLINE_NDIRECT)
-/*****************************************************************************/
 
 bool                Compiler::impCanPInvokeInline(var_types callRetTyp)
 {
@@ -4878,9 +4898,6 @@ void            Compiler::impCheckForPInvokeCall(
         call->gtCall.gtCallMoreFlags |= GTF_CALL_M_UNMGD_THISCALL;
 }
 
-/*****************************************************************************/
-#endif // INLINE_NDIRECT
-/*****************************************************************************/
 
 GenTreePtr          Compiler::impImportIndirectCall(CORINFO_SIG_INFO * sig, IL_OFFSETX ilOffset)
 {
@@ -4921,8 +4938,6 @@ GenTreePtr          Compiler::impImportIndirectCall(CORINFO_SIG_INFO * sig, IL_O
 
 /*****************************************************************************/
 
-#ifdef INLINE_NDIRECT
-
 void            Compiler::impPopArgsForUnmanagedCall(
     GenTreePtr call,
     CORINFO_SIG_INFO * sig)
@@ -5006,7 +5021,6 @@ void            Compiler::impPopArgsForUnmanagedCall(
         call->gtFlags |= args->gtFlags & GTF_GLOB_EFFECT;
 }
 
-#endif // INLINE_NDIRECT
 
 //------------------------------------------------------------------------
 // impInitClass: Build a node to initialize the class before accessing the
@@ -5380,9 +5394,9 @@ bool                Compiler::impTailCallRetTypeCompatible(var_types callerRetTy
     if (callerRetType == calleeRetType)
     {
         return true;
-    }    
+    }
 
-#ifdef _TARGET_AMD64_
+#if defined(_TARGET_AMD64_) || defined(_TARGET_ARM64_)
     // Jit64 compat:
     if (callerRetType == TYP_VOID)
     {
@@ -5410,7 +5424,7 @@ bool                Compiler::impTailCallRetTypeCompatible(var_types callerRetTy
     {
         return (varTypeIsIntegral(calleeRetType) || isCalleeRetTypMBEnreg) && (callerRetTypeSize == calleeRetTypeSize);
     }
-#endif // _TARGET_AMD64_
+#endif // _TARGET_AMD64_ || _TARGET_ARM64_
 
     return false;
 }
@@ -5621,13 +5635,6 @@ var_types           Compiler::impImportCall (OPCODE         opcode,
         szCanTailCallFailReason = "Caller requires a security check.";
     }
 
-#ifdef _TARGET_ARM64_
-    // Don't do opportunistic tail calls in ARM64 for now.
-    // TODO-ARM64-NYI:  Get this to work.
-    canTailCall = false;
-    szCanTailCallFailReason = "Arm64.";
-#endif // _TARGET_ARM64_
-
     // We only need to cast the return value of pinvoke inlined calls that return small types
 
     // TODO-AMD64-Cleanup: Remove this when we stop interoperating with JIT64, or if we decide to stop
@@ -5874,10 +5881,9 @@ var_types           Compiler::impImportCall (OPCODE         opcode,
                         return callRetTyp;
                     }                            
         
-                    GenTreePtr stubAddr = impRuntimeLookupToTree(callInfo->stubLookup.lookupKind.runtimeLookupKind,
-                        &callInfo->stubLookup.runtimeLookup, methHnd);                    
+                    GenTreePtr stubAddr = impRuntimeLookupToTree(pResolvedToken, &callInfo->stubLookup, methHnd);
                     assert(!compDonotInline());
-                    
+
                     // This is the rough code to set up an indirect stub call
                     assert(stubAddr!= 0);
                     
@@ -6038,7 +6044,12 @@ var_types           Compiler::impImportCall (OPCODE         opcode,
                 assert((sig->callConv & CORINFO_CALLCONV_MASK) != CORINFO_CALLCONV_VARARG);
                 assert((sig->callConv & CORINFO_CALLCONV_MASK) != CORINFO_CALLCONV_NATIVEVARARG);
 
-                GenTreePtr fptr = impLookupToTree(&callInfo->codePointerLookup, GTF_ICON_FTN_ADDR, callInfo->hMethod);
+                GenTreePtr fptr = impLookupToTree(
+                    pResolvedToken, 
+                    &callInfo->codePointerLookup, 
+                    GTF_ICON_FTN_ADDR, 
+                    callInfo->hMethod);
+
                 if (compDonotInline())
                 {
                     return callRetTyp;
@@ -6241,8 +6252,6 @@ var_types           Compiler::impImportCall (OPCODE         opcode,
 
     //--------------------------- Inline NDirect ------------------------------
 
-#if defined(INLINE_NDIRECT)
-
     if (!compIsForInlining())
     {
         impCheckForPInvokeCall(call, methHnd, sig, mflags);
@@ -6264,9 +6273,7 @@ var_types           Compiler::impImportCall (OPCODE         opcode,
         
         goto DONE;
     }
-    else
-#endif  //INLINE_NDIRECT
-    if  ((opcode == CEE_CALLI) &&
+    else if  ((opcode == CEE_CALLI) &&
          (
           ((sig->callConv & CORINFO_CALLCONV_MASK) == CORINFO_CALLCONV_STDCALL)  ||
           ((sig->callConv & CORINFO_CALLCONV_MASK) == CORINFO_CALLCONV_C)        ||
@@ -6378,21 +6385,23 @@ var_types           Compiler::impImportCall (OPCODE         opcode,
         {
             CORINFO_METHOD_HANDLE exactMethodHandle = (CORINFO_METHOD_HANDLE)((SIZE_T)exactContextHnd & ~CORINFO_CONTEXTFLAGS_MASK);
 
-#ifdef FEATURE_READYTORUN_COMPILER
-            if (opts.IsReadyToRun())
+            if (!exactContextNeedsRuntimeLookup)
             {
-                instParam = impReadyToRunLookupToTree(&callInfo->instParamLookup, GTF_ICON_METHOD_HDL, exactMethodHandle);
-                if (instParam == nullptr) 
+#ifdef FEATURE_READYTORUN_COMPILER
+                if (opts.IsReadyToRun())
                 {
-                    return callRetTyp;
+                    instParam = impReadyToRunLookupToTree(&callInfo->instParamLookup, GTF_ICON_METHOD_HDL, exactMethodHandle);
+                    if (instParam == nullptr)
+                    {
+                        return callRetTyp;
+                    }
                 }
-            }
-            else
+                else
 #endif
-            if (!exactContextNeedsRuntimeLookup)
-            {
-                instParam = gtNewIconEmbMethHndNode(exactMethodHandle);
-                info.compCompHnd->methodMustBeLoadedBeforeCodeIsRun(exactMethodHandle);
+                {
+                    instParam = gtNewIconEmbMethHndNode(exactMethodHandle);
+                    info.compCompHnd->methodMustBeLoadedBeforeCodeIsRun(exactMethodHandle);
+                }
             }
             else
             {
@@ -6423,27 +6432,29 @@ var_types           Compiler::impImportCall (OPCODE         opcode,
                 // instParam.
                 instParam = gtNewIconNode(0, TYP_REF);
             }
-#ifdef FEATURE_READYTORUN_COMPILER
-            else
-            if (opts.IsReadyToRun())
+
+            if (!exactContextNeedsRuntimeLookup)
             {
-                instParam = impReadyToRunLookupToTree(&callInfo->instParamLookup, GTF_ICON_CLASS_HDL, exactClassHandle);
-                if (instParam == NULL) 
+#ifdef FEATURE_READYTORUN_COMPILER
+                if (opts.IsReadyToRun())
                 {
-                    return callRetTyp;
+                    instParam = impReadyToRunLookupToTree(&callInfo->instParamLookup, GTF_ICON_CLASS_HDL, exactClassHandle);
+                    if (instParam == NULL)
+                    {
+                        return callRetTyp;
+                    }
                 }
-            }
+                else
 #endif
-            else
-            if (!exactContextNeedsRuntimeLookup)
-            {
-                instParam = gtNewIconEmbClsHndNode(exactClassHandle);
-                info.compCompHnd->classMustBeLoadedBeforeCodeIsRun(exactClassHandle);
+                {
+                    instParam = gtNewIconEmbClsHndNode(exactClassHandle);
+                    info.compCompHnd->classMustBeLoadedBeforeCodeIsRun(exactClassHandle);
+                }
             }
             else
             {
                 instParam = impParentClassTokenToHandle(pResolvedToken, &runtimeLookup, TRUE /*mustRestoreHandle*/);
-                if (instParam == NULL) 
+                if (instParam == NULL)
                 {
                     return callRetTyp;
                 }
@@ -6541,8 +6552,8 @@ var_types           Compiler::impImportCall (OPCODE         opcode,
                 
             if (!bIntrinsicImported)
             {
-                // Is it an inline candidate?        
-               impMarkInlineCandidate(call, exactContextHnd);       
+                // Is it an inline candidate?
+                impMarkInlineCandidate(call, exactContextHnd, callInfo);
             }
 
             // append the call node.
@@ -6758,7 +6769,7 @@ DONE_CALL:
         }
 
         // Is it an inline candidate?        
-        impMarkInlineCandidate(call, exactContextHnd); 
+        impMarkInlineCandidate(call, exactContextHnd, callInfo);
     }
 
     // Push or append the result of the call
@@ -7109,7 +7120,7 @@ GenTreePtr          Compiler::impFixupStructReturnType(GenTreePtr op, CORINFO_CL
     assert(varTypeIsStruct(info.compRetType));
     assert(info.compRetBuffArg == BAD_VAR_NUM);
 
-#if defined(_TARGET_X86_) || defined(_TARGET_AMD64_)
+#if defined(_TARGET_XARCH_)
 
 #ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
     // No VarArgs for CoreCLR on x64 Unix
@@ -8292,16 +8303,9 @@ var_types Compiler::impGetByRefResultType(genTreeOps oper, bool fUnsigned, GenTr
  */
 GenTreePtr Compiler::impCastClassOrIsInstToTree(GenTreePtr op1, GenTreePtr op2, CORINFO_RESOLVED_TOKEN * pResolvedToken, bool isCastClass)
 {
-    bool expandInline;  
-    
-    assert(op1->TypeGet() == TYP_REF);
+    bool expandInline;
 
-#ifdef FEATURE_READYTORUN_COMPILER
-    if (opts.IsReadyToRun())
-    {
-        return impReadyToRunHelperToTree(pResolvedToken, isCastClass ? CORINFO_HELP_READYTORUN_CHKCAST : CORINFO_HELP_READYTORUN_ISINSTANCEOF, TYP_REF, op1);
-    }
-#endif
+    assert(op1->TypeGet() == TYP_REF);
 
     CorInfoHelpFunc helper = info.compCompHnd->getCastingHelper(pResolvedToken, isCastClass);
 
@@ -8559,6 +8563,7 @@ void              Compiler::impImportBlockCode(BasicBlock * block)
            
     while (codeAddr < codeEndp)
     {
+        bool usingReadyToRunHelper = false;
         CORINFO_RESOLVED_TOKEN resolvedToken;
         CORINFO_RESOLVED_TOKEN constrainedResolvedToken;
         CORINFO_CALL_INFO callInfo;
@@ -11391,14 +11396,23 @@ DO_LDFTN:
                     if (opts.IsReadyToRun())
                     {
                         op1 = impReadyToRunHelperToTree(&resolvedToken, CORINFO_HELP_READYTORUN_NEW, TYP_REF);
+                        usingReadyToRunHelper = (op1 != NULL);
                     }
-                    else
+
+                    if (!usingReadyToRunHelper)
 #endif
                     {
                         op1 = impParentClassTokenToHandle(&resolvedToken, NULL, TRUE);
                         if (op1 == NULL) // compDonotInline()
                             return;
 
+                        // TODO: ReadyToRun: When generic dictionary lookups are necessary, replace the lookup call
+                        // and the newfast call with a single call to a dynamic R2R cell that will:
+                        //      1) Load the context
+                        //      2) Perform the generic dictionary lookup and caching, and generate the appropriate stub
+                        //      3) Allocate and return the new object
+                        // Reason: performance (today, we'll always use the slow helper for the R2R generics case)
+
                         op1 = gtNewHelperCallNode(  info.compCompHnd->getNewHelper(&resolvedToken, info.compMethodHnd),
                                                     TYP_REF, 0,
                                                     gtNewArgList(op1));
@@ -12325,9 +12339,26 @@ FIELD_DONE:
 #ifdef FEATURE_READYTORUN_COMPILER
             if (opts.IsReadyToRun())
             {
-                op1 = impReadyToRunHelperToTree(&resolvedToken, CORINFO_HELP_READYTORUN_NEWARR_1, TYP_REF, op2);
+                op1 = impReadyToRunHelperToTree(&resolvedToken, CORINFO_HELP_READYTORUN_NEWARR_1, TYP_REF, gtNewArgList(op2));
+                usingReadyToRunHelper = (op1 != NULL);
+
+                if (!usingReadyToRunHelper)
+                {
+                    // TODO: ReadyToRun: When generic dictionary lookups are necessary, replace the lookup call
+                    // and the newarr call with a single call to a dynamic R2R cell that will:
+                    //      1) Load the context
+                    //      2) Perform the generic dictionary lookup and caching, and generate the appropriate stub
+                    //      3) Allocate the new array
+                    // Reason: performance (today, we'll always use the slow helper for the R2R generics case)
+
+                    // Need to restore array classes before creating array objects on the heap
+                    op1 = impTokenToHandle(&resolvedToken, NULL, TRUE /*mustRestoreHandle*/);
+                    if (op1 == NULL) // compDonotInline()
+                        return;
+                }
             }
-            else
+
+            if (!usingReadyToRunHelper)
 #endif
             {
                 args = gtNewArgList(op1, op2);
@@ -12402,7 +12433,7 @@ FIELD_DONE:
             _impResolveToken(CORINFO_TOKENKIND_Casting);
 
             JITDUMP(" %08X", resolvedToken.token);
-        
+
             if (!opts.IsReadyToRun())
             {
                 op2 = impTokenToHandle(&resolvedToken, NULL, FALSE);
@@ -12419,8 +12450,38 @@ FIELD_DONE:
             accessAllowedResult = info.compCompHnd->canAccessClass(&resolvedToken, info.compMethodHnd, &calloutHelper);
             impHandleAccessAllowed(accessAllowedResult, &calloutHelper);
 
-            op1 = impPopStack().val; 
-            op1 = impCastClassOrIsInstToTree(op1,  op2, &resolvedToken, false);
+            op1 = impPopStack().val;
+
+#ifdef FEATURE_READYTORUN_COMPILER
+            if (opts.IsReadyToRun())
+            {
+                GenTreePtr opLookup = impReadyToRunHelperToTree(&resolvedToken, 
+                                                                CORINFO_HELP_READYTORUN_ISINSTANCEOF, 
+                                                                TYP_REF, 
+                                                                gtNewArgList(op1));
+                usingReadyToRunHelper = (opLookup != NULL);
+                op1 = (usingReadyToRunHelper ? opLookup : op1);
+
+                if (!usingReadyToRunHelper)
+                {
+                    // TODO: ReadyToRun: When generic dictionary lookups are necessary, replace the lookup call
+                    // and the isinstanceof_any call with a single call to a dynamic R2R cell that will:
+                    //      1) Load the context
+                    //      2) Perform the generic dictionary lookup and caching, and generate the appropriate stub
+                    //      3) Perform the 'is instance' check on the input object
+                    // Reason: performance (today, we'll always use the slow helper for the R2R generics case)
+
+                    op2 = impTokenToHandle(&resolvedToken, NULL, FALSE);
+                    if (op2 == NULL) // compDonotInline()
+                        return;
+                }
+            }
+
+            if (!usingReadyToRunHelper)
+#endif
+            {
+                op1 = impCastClassOrIsInstToTree(op1, op2, &resolvedToken, false);
+            }
             if (compDonotInline())
             {
                 return;
@@ -12914,7 +12975,36 @@ FIELD_DONE:
             // and op2 to contain code that creates the type handle corresponding to typeRef
         CASTCLASS:
 
-            op1 = impCastClassOrIsInstToTree(op1,  op2, &resolvedToken, true);
+#ifdef FEATURE_READYTORUN_COMPILER
+            if (opts.IsReadyToRun())
+            {
+                GenTreePtr opLookup = impReadyToRunHelperToTree(&resolvedToken, 
+                                                                CORINFO_HELP_READYTORUN_CHKCAST, 
+                                                                TYP_REF, 
+                                                                gtNewArgList(op1));
+                usingReadyToRunHelper = (opLookup != NULL);
+                op1 = (usingReadyToRunHelper ? opLookup : op1);
+
+                if (!usingReadyToRunHelper)
+                {
+                    // TODO: ReadyToRun: When generic dictionary lookups are necessary, replace the lookup call
+                    // and the chkcastany call with a single call to a dynamic R2R cell that will:
+                    //      1) Load the context
+                    //      2) Perform the generic dictionary lookup and caching, and generate the appropriate stub
+                    //      3) Check the object on the stack for the type-cast
+                    // Reason: performance (today, we'll always use the slow helper for the R2R generics case)
+
+                    op2 = impTokenToHandle(&resolvedToken, NULL, FALSE);
+                    if (op2 == NULL) // compDonotInline()
+                        return;
+                }
+            }
+
+            if (!usingReadyToRunHelper)
+#endif
+            {
+                op1 = impCastClassOrIsInstToTree(op1, op2, &resolvedToken, true);
+            }
             if (compDonotInline())
             {
                 return;
@@ -13551,25 +13641,8 @@ GenTreePtr Compiler::impAssignStructClassToVar(GenTreePtr op, CORINFO_CLASS_HAND
     // This code will be called only if the struct return has not been normalized (i.e. 2 eightbytes - max allowed.)
     assert(IsMultiRegReturnedType(hClass));
 
-    // The return value is based on eightbytes, so all the fields need to be on stack
-    // before loading the eightbyte in the corresponding return register.
-    //
-    // TODO-Amd64-Unix-CQ: Right now codegen assumes that tmpNum lcl var is on stack and 
-    // and does not live in a register.  For example, consider a case where Vector3/4
-    // return value of a call is assigned to tmpNum.  In such a case tmpNum will be of
-    // SIMD type and will be allocated a register unless explicitly marked as DoNotEnregister.
-    // Code quality can be improved by not marking enregistrable struct type tmpNum
-    // as DoNotEnregister=true.
-
-    // Mark the var so that fields are not promoted and stay together
+    // Mark the var so that fields are not promoted and stay together.
     lvaTable[tmpNum].lvIsMultiRegArgOrRet = true;
-
-    // For now to workaround codegen limitation marking tmpNum as DoNotEnregister
-    // if it can be enregistered.
-    if (varTypeIsEnregisterableStruct(op))
-    {
-        lvaTable[tmpNum].lvDoNotEnregister = true;
-    }
 #endif // defined(FEATURE_UNIX_AMD64_STRUCT_PASSING)
 
     return ret;
@@ -13822,7 +13895,7 @@ bool Compiler::impReturnInstruction(BasicBlock *block, int prefixFlags, OPCODE &
                 {
                     // If single eightbyte, the return type would have been normalized and there won't be a temp var.
                     // This code will be called only if the struct return has not been normalized (i.e. 2 eightbytes - max allowed.)
-                    assert(retRegCount == CLR_SYSTEMV_MAX_EIGHTBYTES_COUNT_TO_RETURN_IN_REGISTERS);
+                    assert(retRegCount == MAX_RET_REG_COUNT);
                     // Same as !structDesc.passedInRegisters but just don't bother with impAssignStructPtr.
 #endif // !defined(_TARGET_ARM_)
 
@@ -13905,12 +13978,13 @@ bool Compiler::impReturnInstruction(BasicBlock *block, int prefixFlags, OPCODE &
         impAppendTree(op2, (unsigned)CHECK_SPILL_NONE, impCurStmtOffs);
 
         // There are cases where the address of the implicit RetBuf should be returned explicitly (in RAX).  
-#if defined(FEATURE_UNIX_AMD64_STRUCT_PASSING)
-        // System V ABI requires to return the implicit return buffer explicitly (in RAX).
+#if defined(_TARGET_AMD64_)
+        // x64 (System V and Win64) calling convention requires to 
+        // return the implicit return buffer explicitly (in RAX).
         // Change the return type to be BYREF.  
         op1 = gtNewOperNode(GT_RETURN, TYP_BYREF, gtNewLclvNode(info.compRetBuffArg, TYP_BYREF));
-#else // defined(FEATURE_UNIX_AMD64_STRUCT_PASSING)
-        // In case of Windows AMD64 the profiler hook requires to return the implicit RetBuf explicitly (in RAX).  
+#else // !defined(_TARGET_AMD64_)
+        // In case of non-AMD64 targets the profiler hook requires to return the implicit RetBuf explicitly (in RAX).  
         // In such case the return value of the function is changed to BYREF.  
         // If profiler hook is not needed the return type of the function is TYP_VOID.  
         if (compIsProfilerHookNeeded())
@@ -13922,7 +13996,7 @@ bool Compiler::impReturnInstruction(BasicBlock *block, int prefixFlags, OPCODE &
             // return void  
             op1 = new (this, GT_RETURN) GenTreeOp(GT_RETURN, TYP_VOID);
         }
-#endif // !defined(FEATURE_UNIX_AMD64_STRUCT_PASSING)  
+#endif // !defined(_TARGET_AMD64_)  
     }
     else if (varTypeIsStruct(info.compRetType))
     {
@@ -16459,7 +16533,9 @@ BOOL                Compiler::impInlineIsGuaranteedThisDerefBeforeAnySideEffects
 // otherwise build tree context) so when we do the inlining pass we
 // can capture these reasons
 
-void          Compiler::impMarkInlineCandidate(GenTreePtr callNode, CORINFO_CONTEXT_HANDLE exactContextHnd)
+void          Compiler::impMarkInlineCandidate(GenTreePtr callNode, 
+                                               CORINFO_CONTEXT_HANDLE exactContextHnd, 
+                                               CORINFO_CALL_INFO* callInfo)
 {
     if  (!opts.OptEnabled(CLFLG_INLINING))
     {                 
@@ -16482,7 +16558,7 @@ void          Compiler::impMarkInlineCandidate(GenTreePtr callNode, CORINFO_CONT
     }
     
     GenTreeCall* call = callNode->AsCall();
-    InlineResult inlineResult(this, call, "impMarkInlineCandidate");
+    InlineResult inlineResult(this, call, nullptr, "impMarkInlineCandidate");
     
     // Don't inline if not optimizing root method
     if (opts.compDbgCode)
@@ -16541,11 +16617,18 @@ void          Compiler::impMarkInlineCandidate(GenTreePtr callNode, CORINFO_CONT
      * restricts the inliner to non-expanding inlines.  I removed the check to allow for non-expanding
      * inlining in throw blocks.  I should consider the same thing for catch and filter regions. */
 
+    CORINFO_METHOD_HANDLE fncHandle = call->gtCallMethHnd;
     unsigned methAttr;
-    CORINFO_METHOD_HANDLE fncHandle;
 
-    fncHandle = call->gtCallMethHnd;
-    methAttr = info.compCompHnd->getMethodAttribs(fncHandle);
+    // Reuse method flags from the original callInfo if possible
+    if (fncHandle == callInfo->hMethod)
+    {
+        methAttr = callInfo->methodFlags;
+    }
+    else
+    {
+        methAttr = info.compCompHnd->getMethodAttribs(fncHandle);
+    }
 
 #ifdef DEBUG
     if (compStressCompile(STRESS_FORCE_INLINE, 0))
@@ -16607,13 +16690,7 @@ void          Compiler::impMarkInlineCandidate(GenTreePtr callNode, CORINFO_CONT
         return;
     }
 
-    /* Cannot inline native or synchronized methods */
-
-    if  (methAttr & CORINFO_FLG_NATIVE)
-    {
-        inlineResult.NoteFatal(InlineObservation::CALLEE_IS_NATIVE);
-        return;
-    }
+    /* Cannot inline synchronized methods */
 
     if  (methAttr & CORINFO_FLG_SYNCH)
     {
index 1f728dd..62cfa6c 100644 (file)
@@ -7,6 +7,8 @@
 #pragma hdrstop
 #endif
 
+#include "inlinepolicy.h"
+
 // Lookup table for inline description strings
 
 static const char* InlineDescriptions[] =
@@ -345,7 +347,7 @@ InlineContext::InlineContext(InlineStrategy* strategy)
 #if defined(DEBUG) || defined(INLINE_DATA)
 
 //------------------------------------------------------------------------
-// Dump: Dump an InlineContext entry and all descendants to stdout
+// Dump: Dump an InlineContext entry and all descendants to jitstdout
 //
 // Arguments:
 //    indent   - indentation level for this node
@@ -441,7 +443,7 @@ void InlineContext::DumpData(unsigned indent)
     if (m_Parent == nullptr)
     {
         // Root method... cons up a policy so we can display the name
-        InlinePolicy* policy = InlinePolicy::GetPolicy(compiler, true);
+        InlinePolicy* policy = InlinePolicy::GetPolicy(compiler, nullptr, true);
         printf("\nInlines [%u] into \"%s\" [%s]\n",
                m_InlineStrategy->GetInlineCount(),
                calleeName,
@@ -451,7 +453,7 @@ void InlineContext::DumpData(unsigned indent)
     {
         const char* inlineReason = InlGetObservationString(m_Observation);
         printf("%*s%u,\"%s\",\"%s\"", indent, "", m_Ordinal, inlineReason, calleeName);
-        m_Policy->DumpData(stdout);
+        m_Policy->DumpData(jitstdout);
         printf("\n");
     }
 
@@ -531,20 +533,23 @@ void InlineContext::DumpXml(FILE* file, unsigned indent)
 // InlineResult: Construct an InlineResult to evaluate a particular call
 // for inlining.
 //
-// Arguments
-//   compiler - the compiler instance examining a call for inlining
-//   call     - the call in question
-//   context  - descrptive string to describe the context of the decision
-
-InlineResult::InlineResult(Compiler*    compiler,
-                           GenTreeCall* call,
-                           const char*  context)
+// Arguments:
+//   compiler      - the compiler instance examining a call for inlining
+//   call          - the call in question
+//   inlineContext - the inline context for the inline, if known
+//   description   - string describing the context of the decision
+
+InlineResult::InlineResult(Compiler*      compiler,
+                           GenTreeCall*   call,
+                           InlineContext* inlineContext,
+                           const char*    description)
     : m_RootCompiler(nullptr)
     , m_Policy(nullptr)
     , m_Call(call)
+    , m_InlineContext(inlineContext)
     , m_Caller(nullptr)
     , m_Callee(nullptr)
-    , m_Context(context)
+    , m_Description(description)
     , m_Reported(false)
 {
     // Set the compiler instance
@@ -552,7 +557,7 @@ InlineResult::InlineResult(Compiler*    compiler,
 
     // Set the policy
     const bool isPrejitRoot = false;
-    m_Policy = InlinePolicy::GetPolicy(m_RootCompiler, isPrejitRoot);
+    m_Policy = InlinePolicy::GetPolicy(m_RootCompiler, m_InlineContext, isPrejitRoot);
 
     // Get method handle for caller. Note we use the
     // handle for the "immediate" caller here.
@@ -570,9 +575,9 @@ InlineResult::InlineResult(Compiler*    compiler,
 // method as a possible inline candidate, while prejtting.
 //
 // Arguments:
-//    compiler - the compiler instance doing the prejitting
-//    method   - the method in question
-//    context  - descrptive string to describe the context of the decision
+//    compiler    - the compiler instance doing the prejitting
+//    method      - the method in question
+//    description - string describing the context of the decision
 //
 // Notes:
 //    Used only during prejitting to try and pre-identify methods that
@@ -583,13 +588,14 @@ InlineResult::InlineResult(Compiler*    compiler,
 
 InlineResult::InlineResult(Compiler*              compiler,
                            CORINFO_METHOD_HANDLE  method,
-                           const char*            context)
+                           const char*            description)
     : m_RootCompiler(nullptr)
     , m_Policy(nullptr)
     , m_Call(nullptr)
+    , m_InlineContext(nullptr)
     , m_Caller(nullptr)
     , m_Callee(method)
-    , m_Context(context)
+    , m_Description(description)
     , m_Reported(false)
 {
     // Set the compiler instance
@@ -597,7 +603,7 @@ InlineResult::InlineResult(Compiler*              compiler,
 
     // Set the policy
     const bool isPrejitRoot = true;
-    m_Policy = InlinePolicy::GetPolicy(m_RootCompiler, isPrejitRoot);
+    m_Policy = InlinePolicy::GetPolicy(m_RootCompiler, nullptr, isPrejitRoot);
 }
 
 //------------------------------------------------------------------------
@@ -637,7 +643,7 @@ void InlineResult::Report()
 
         callee = (m_Callee == nullptr) ? "n/a" : m_RootCompiler->eeGetMethodFullName(m_Callee);
 
-        JITDUMP(format, m_Context, ResultString(), ReasonString(), caller, callee);
+        JITDUMP(format, m_Description, ResultString(), ReasonString(), caller, callee);
     }
 
     // If the inline failed, leave information on the call so we can
@@ -686,7 +692,7 @@ void InlineResult::Report()
     if (IsDecided())
     {
         const char* format = "INLINER: during '%s' result '%s' reason '%s'\n";
-        JITLOG_THIS(m_RootCompiler, (LL_INFO100000, format, m_Context, ResultString(), ReasonString()));
+        JITLOG_THIS(m_RootCompiler, (LL_INFO100000, format, m_Description, ResultString(), ReasonString()));
         COMP_HANDLE comp = m_RootCompiler->info.compCompHnd;
         comp->reportInliningDecision(m_Caller, m_Callee, Result(), ReasonString());
     }
@@ -1214,7 +1220,7 @@ void InlineStrategy::DumpData()
     {
         assert(limit <= 0);
         const bool isPrejitRoot = (opts.eeFlags & CORJIT_FLG_PREJIT) != 0;
-        m_LastSuccessfulPolicy = InlinePolicy::GetPolicy(m_Compiler, isPrejitRoot);
+        m_LastSuccessfulPolicy = InlinePolicy::GetPolicy(m_Compiler, nullptr, isPrejitRoot);
 
         // Add in a bit of data....
         const bool isForceInline = (info.compFlags & CORINFO_FLG_FORCEINLINE) != 0;
@@ -1371,6 +1377,9 @@ void InlineStrategy::FinalizeXml(FILE* file)
         // Workaroud compShutdown getting called twice.
         s_HasDumpedXmlHeader = false;
     }
+
+    // Finalize reading inline xml
+    ReplayPolicy::FinalizeXml();
 }
 
 #endif // defined(DEBUG) || defined(INLINE_DATA)
index e113de0..4ee03bb 100644 (file)
@@ -44,12 +44,12 @@ INLINE_OBSERVATION(HAS_PINNED_LOCALS,         bool,   "has pinned locals",
 INLINE_OBSERVATION(IS_ARRAY_METHOD,           bool,   "is array method",               FATAL,       CALLEE)
 INLINE_OBSERVATION(IS_GENERIC_VIRTUAL,        bool,   "generic virtual",               FATAL,       CALLEE)
 INLINE_OBSERVATION(IS_JIT_NOINLINE,           bool,   "noinline per JitNoinline",      FATAL,       CALLEE)
-INLINE_OBSERVATION(IS_NATIVE,                 bool,   "is implemented natively",       FATAL,       CALLEE)
 INLINE_OBSERVATION(IS_NOINLINE,               bool,   "noinline per IL/cached result", FATAL,       CALLEE)
 INLINE_OBSERVATION(IS_SYNCHRONIZED,           bool,   "is synchronized",               FATAL,       CALLEE)
 INLINE_OBSERVATION(IS_VM_NOINLINE,            bool,   "noinline per VM",               FATAL,       CALLEE)
 INLINE_OBSERVATION(LACKS_RETURN,              bool,   "no return opcode",              FATAL,       CALLEE)
 INLINE_OBSERVATION(LDFLD_NEEDS_HELPER,        bool,   "ldfld needs helper",            FATAL,       CALLEE)
+INLINE_OBSERVATION(LOG_REPLAY_REJECT,         bool,   "rejected by log replay",        FATAL,       CALLEE)
 INLINE_OBSERVATION(MARKED_AS_SKIPPED,         bool,   "skipped by complus request",    FATAL,       CALLEE)
 INLINE_OBSERVATION(MAXSTACK_TOO_BIG,          bool,   "maxstack too big"  ,            FATAL,       CALLEE)
 INLINE_OBSERVATION(NEEDS_SECURITY_CHECK,      bool,   "needs security check",          FATAL,       CALLEE)
@@ -85,6 +85,7 @@ INLINE_OBSERVATION(IS_FORCE_INLINE,           bool,   "aggressive inline attribu
 INLINE_OBSERVATION(IS_INSTANCE_CTOR,          bool,   "instance constructor",          INFORMATION, CALLEE)
 INLINE_OBSERVATION(IS_PROFITABLE_INLINE,      bool,   "profitable inline",             INFORMATION, CALLEE)
 INLINE_OBSERVATION(IS_SIZE_DECREASING_INLINE, bool,   "size decreasing inline",        INFORMATION, CALLEE)
+INLINE_OBSERVATION(LOG_REPLAY_ACCEPT,         bool,   "accepted by log replay",        INFORMATION, CALLEE)
 INLINE_OBSERVATION(LOOKS_LIKE_WRAPPER,        bool,   "thin wrapper around a call",    INFORMATION, CALLEE)
 INLINE_OBSERVATION(MAXSTACK,                  int,    "maxstack",                      INFORMATION, CALLEE)
 INLINE_OBSERVATION(OPCODE,                    int,    "next opcode in IL stream",      INFORMATION, CALLEE)
@@ -137,6 +138,7 @@ INLINE_OBSERVATION(IS_WITHIN_FILTER,          bool,   "within filterregion",
 INLINE_OBSERVATION(LDARGA_NOT_LOCAL_VAR,      bool,   "ldarga not on local var",       FATAL,       CALLSITE)
 INLINE_OBSERVATION(LDFLD_NEEDS_HELPER,        bool,   "ldfld needs helper",            FATAL,       CALLSITE)
 INLINE_OBSERVATION(LDVIRTFN_ON_NON_VIRTUAL,   bool,   "ldvirtfn on non-virtual",       FATAL,       CALLSITE)
+INLINE_OBSERVATION(LOG_REPLAY_REJECT,         bool,   "rejected by log replay",        FATAL,       CALLSITE)
 INLINE_OBSERVATION(NOT_CANDIDATE,             bool,   "not inline candidate",          FATAL,       CALLSITE)
 INLINE_OBSERVATION(NOT_PROFITABLE_INLINE,     bool,   "unprofitable inline",           FATAL,       CALLSITE)
 INLINE_OBSERVATION(OVER_BUDGET,               bool,   "inline exceeds budget",         FATAL,       CALLSITE)
@@ -157,6 +159,7 @@ INLINE_OBSERVATION(DEPTH,                     int,    "depth",
 INLINE_OBSERVATION(FREQUENCY,                 int,    "execution frequency",           INFORMATION, CALLSITE)
 INLINE_OBSERVATION(IS_PROFITABLE_INLINE,      bool,   "profitable inline",             INFORMATION, CALLSITE)
 INLINE_OBSERVATION(IS_SIZE_DECREASING_INLINE, bool,   "size decreasing inline",        INFORMATION, CALLSITE)
+INLINE_OBSERVATION(LOG_REPLAY_ACCEPT,         bool,   "accepted by log replay",        INFORMATION, CALLSITE)
 INLINE_OBSERVATION(RANDOM_ACCEPT,             bool,   "random accept",                 INFORMATION, CALLSITE)
 
 // ------ Final Sentinel ------- 
index 19c3e2d..cac0fc8 100644 (file)
@@ -218,7 +218,7 @@ class InlinePolicy
 public:
 
     // Factory method for getting policies
-    static InlinePolicy* GetPolicy(Compiler* compiler, bool isPrejitRoot);
+    static InlinePolicy* GetPolicy(Compiler* compiler, InlineContext* context, bool isPrejitRoot);
 
     // Obligatory virtual dtor
     virtual ~InlinePolicy() {}
@@ -289,13 +289,14 @@ public:
     // particular call for inlining.
     InlineResult(Compiler*              compiler,
                  GenTreeCall*           call,
-                 const char*            context);
+                 InlineContext*         inlineContext,
+                 const char*            description);
 
     // Construct a new InlineResult to evaluate a particular
     // method to see if it is inlineable.
     InlineResult(Compiler*              compiler,
                  CORINFO_METHOD_HANDLE  method,
-                 const char*            context);
+                 const char*            description);
 
     // Has the policy determined this inline should fail?
     bool IsFailure() const
@@ -442,6 +443,12 @@ public:
         m_Reported = true;
     }
 
+    // Get the InlineContext for this inline
+    InlineContext* GetInlineContext() const
+    {
+        return m_InlineContext;
+    }
+
 private:
 
     // No copying or assignment allowed.
@@ -454,9 +461,10 @@ private:
     Compiler*               m_RootCompiler;
     InlinePolicy*           m_Policy;
     GenTreeCall*            m_Call;
+    InlineContext*          m_InlineContext;
     CORINFO_METHOD_HANDLE   m_Caller;     // immediate caller's handle
     CORINFO_METHOD_HANDLE   m_Callee;
-    const char*             m_Context;
+    const char*             m_Description;
     bool                    m_Reported;
 };
 
@@ -570,6 +578,12 @@ public:
     // Dump full subtree in xml format
     void DumpXml(FILE* file = stderr, unsigned indent = 0);
 
+    // Get callee handle
+    CORINFO_METHOD_HANDLE GetCallee() const
+    {
+        return m_Callee;
+    }
+
 #endif // defined(DEBUG) || defined(INLINE_DATA)
 
     // Get the parent context for this context.
@@ -591,7 +605,7 @@ public:
     }
 
     // Get the observation that supported or disqualified this inline.
-    InlineObservation GetObservation()
+    InlineObservation GetObservation() const
     {
         return m_Observation;
     }
@@ -608,6 +622,12 @@ public:
         return m_CodeSizeEstimate;
     }
 
+    // True if this is the root context
+    bool IsRoot() const
+    {
+        return m_Parent == nullptr;
+    }
+
 private:
 
     InlineContext(InlineStrategy* strategy);
index 73e22d4..6eb0174 100644 (file)
 // getPolicy: Factory method for getting an InlinePolicy
 //
 // Arguments:
-//    compiler     - the compiler instance that will evaluate inlines
-//    isPrejitRoot - true if this policy is evaluating a prejit root
+//    compiler      - the compiler instance that will evaluate inlines
+//    inlineContext - the context of the inline
+//    isPrejitRoot  - true if this policy is evaluating a prejit root
 //
 // Return Value:
-//    InlinePolicy to use in evaluating the inlines
+//    InlinePolicy to use in evaluating an inline.
 //
 // Notes:
 //    Determines which of the various policies should apply,
 //    and creates (or reuses) a policy instance to use.
 
-InlinePolicy* InlinePolicy::GetPolicy(Compiler* compiler, bool isPrejitRoot)
+InlinePolicy* InlinePolicy::GetPolicy(Compiler* compiler, InlineContext* inlineContext, bool isPrejitRoot)
 {
 
+    // inlineContext only conditionally used below.
+    (void) inlineContext;
+
 #ifdef DEBUG
 
     // Optionally install the RandomPolicy.
@@ -43,6 +47,14 @@ InlinePolicy* InlinePolicy::GetPolicy(Compiler* compiler, bool isPrejitRoot)
 
 #if defined(DEBUG) || defined(INLINE_DATA)
 
+    // Optionally install the ReplayPolicy.
+    bool useReplayPolicy = JitConfig.JitInlinePolicyReplay() != 0;
+
+    if (useReplayPolicy)
+    {
+        return new (compiler, CMK_Inlining) ReplayPolicy(compiler, inlineContext, isPrejitRoot);
+    }
+
     // Optionally install the SizePolicy.
     bool useSizePolicy = JitConfig.JitInlinePolicySize() != 0;
 
@@ -736,6 +748,23 @@ int LegacyPolicy::DetermineCallsiteNativeSizeEstimate(CORINFO_METHOD_INFO* methI
 
 void LegacyPolicy::DetermineProfitability(CORINFO_METHOD_INFO* methodInfo)
 {
+
+#if defined(DEBUG)
+
+    // Punt if we're inlining and we've reached the acceptance limit.
+    int limit = JitConfig.JitInlineLimit();
+    unsigned current = m_RootCompiler->m_inlineStrategy->GetInlineCount();
+
+    if (!m_IsPrejitRoot &&
+        (limit >= 0) &&
+        (current >= static_cast<unsigned>(limit)))
+    {
+        SetFailure(InlineObservation::CALLSITE_OVER_INLINE_LIMIT);
+        return;
+    }
+
+#endif // defined(DEBUG)
+
     assert(InlDecisionIsCandidate(m_Decision));
     assert(m_Observation == InlineObservation::CALLEE_IS_DISCRETIONARY_INLINE);
 
@@ -745,7 +774,7 @@ void LegacyPolicy::DetermineProfitability(CORINFO_METHOD_INFO* methodInfo)
     const int threshold = (int)(m_CallsiteNativeSizeEstimate * m_Multiplier);
 
     // Note the LegacyPolicy estimates are scaled up by SIZE_SCALE
-    JITDUMP("calleeNativeSizeEstimate=%d\n", m_CalleeNativeSizeEstimate)
+    JITDUMP("\ncalleeNativeSizeEstimate=%d\n", m_CalleeNativeSizeEstimate)
     JITDUMP("callsiteNativeSizeEstimate=%d\n", m_CallsiteNativeSizeEstimate);
     JITDUMP("benefit multiplier=%g\n", m_Multiplier);
     JITDUMP("threshold=%d\n", threshold);
@@ -758,8 +787,8 @@ void LegacyPolicy::DetermineProfitability(CORINFO_METHOD_INFO* methodInfo)
                     (LL_INFO100000,
                      "Native estimate for function size exceeds threshold"
                      " for inlining %g > %g (multiplier = %g)\n",
-                     m_CalleeNativeSizeEstimate / SIZE_SCALE,
-                     threshold / SIZE_SCALE,
+                     (double) m_CalleeNativeSizeEstimate / SIZE_SCALE,
+                     (double) threshold / SIZE_SCALE,
                      m_Multiplier));
 
         // Fail the inline
@@ -779,8 +808,8 @@ void LegacyPolicy::DetermineProfitability(CORINFO_METHOD_INFO* methodInfo)
                     (LL_INFO100000,
                      "Native estimate for function size is within threshold"
                      " for inlining %g <= %g (multiplier = %g)\n",
-                     m_CalleeNativeSizeEstimate / SIZE_SCALE,
-                     threshold / SIZE_SCALE,
+                     (double) m_CalleeNativeSizeEstimate / SIZE_SCALE,
+                     (double) threshold / SIZE_SCALE,
                      m_Multiplier));
 
         // Update candidacy
@@ -970,6 +999,18 @@ void RandomPolicy::DetermineProfitability(CORINFO_METHOD_INFO* methodInfo)
     assert(InlDecisionIsCandidate(m_Decision));
     assert(m_Observation == InlineObservation::CALLEE_IS_DISCRETIONARY_INLINE);
 
+    // Budget check.
+    if (!m_IsPrejitRoot)
+    {
+        InlineStrategy* strategy = m_RootCompiler->m_inlineStrategy;
+        bool overBudget = strategy->BudgetCheck(m_CodeSize);
+        if (overBudget)
+        {
+            SetFailure(InlineObservation::CALLSITE_OVER_BUDGET);
+            return;
+        }
+    }
+
     // Use a probability curve that roughly matches the observed
     // behavior of the LegacyPolicy. That way we're inlining
     // differently but not creating enormous methods.
@@ -1849,7 +1890,7 @@ void ModelPolicy::DetermineProfitability(CORINFO_METHOD_INFO* methodInfo)
         JITLOG_THIS(m_RootCompiler,
                     (LL_INFO100000,
                      "Inline profitable, will decrease code size by %g bytes\n",
-                     -m_ModelCodeSizeEstimate / SIZE_SCALE));
+                     (double) -m_ModelCodeSizeEstimate / SIZE_SCALE));
 
         if (m_IsPrejitRoot)
         {
@@ -1873,7 +1914,7 @@ void ModelPolicy::DetermineProfitability(CORINFO_METHOD_INFO* methodInfo)
                     (LL_INFO100000,
                      "Inline %s profitable: benefit=%g (mult=%g / size=%d)\n",
                      shouldInline ? "is" : "is not",
-                     benefit, m_Multiplier, m_ModelCodeSizeEstimate / SIZE_SCALE));
+                     benefit, m_Multiplier, (double) m_ModelCodeSizeEstimate / SIZE_SCALE));
         if (!shouldInline)
         {
             // Fail the inline
@@ -1926,14 +1967,14 @@ void FullPolicy::DetermineProfitability(CORINFO_METHOD_INFO* methodInfo)
 
     unsigned depthLimit = m_RootCompiler->m_inlineStrategy->GetMaxInlineDepth();
 
-    if (m_Depth > depthLimit) 
+    if (m_Depth > depthLimit)
     {
         SetFailure(InlineObservation::CALLSITE_IS_TOO_DEEP);
         return;
     }
 
     // Check size
-    
+
     unsigned sizeLimit = m_RootCompiler->m_inlineStrategy->GetMaxInlineILSize();
 
     if (m_CodeSize > sizeLimit)
@@ -2025,4 +2066,368 @@ void SizePolicy::DetermineProfitability(CORINFO_METHOD_INFO* methodInfo)
     return;
 }
 
+bool  ReplayPolicy::s_WroteReplayBanner = false;
+FILE* ReplayPolicy::s_ReplayFile = nullptr;
+
+//------------------------------------------------------------------------/
+// ReplayPolicy: construct a new ReplayPolicy
+//
+// Arguments:
+//    compiler -- compiler instance doing the inlining (root compiler)
+//    inlineContext -- inline context for the inline
+//    isPrejitRoot -- true if this compiler is prejitting the root method
+
+ReplayPolicy::ReplayPolicy(Compiler* compiler, InlineContext* inlineContext, bool isPrejitRoot)
+    : DiscretionaryPolicy(compiler, isPrejitRoot)
+    , m_InlineContext(inlineContext)
+{
+    // Is there a log file open already? If so, we can use it.
+    if (s_ReplayFile == nullptr)
+    {
+        // Did we already try and open and fail?
+        if (!s_WroteReplayBanner)
+        {
+            // Nope, open it up.
+            const wchar_t* replayFileName = JitConfig.JitInlineReplayFile();
+            s_ReplayFile = _wfopen(replayFileName, W("r"));
+            fprintf(stderr, "*** %s inlines from %ws",
+                    s_ReplayFile == nullptr ? "Unable to replay" : "Replaying",
+                    replayFileName);
+            s_WroteReplayBanner = true;
+        }
+    }
+}
+
+//------------------------------------------------------------------------
+// ReplayPolicy: Finalize reading of inline Xml
+//
+// Notes:
+//    Called during jitShutdown()
+
+void ReplayPolicy::FinalizeXml()
+{
+    if (s_ReplayFile != nullptr)
+    {
+        fclose(s_ReplayFile);
+        s_ReplayFile = nullptr;
+    }
+}
+
+//------------------------------------------------------------------------
+// FindMethod: find the root method in the inline Xml
+//
+// ReturnValue:
+//    true if found. File position left pointing just after the
+//    <Token> entry for the method.
+
+bool ReplayPolicy::FindMethod()
+{
+    const mdMethodDef methodToken =
+        m_RootCompiler->info.compCompHnd->getMethodDefFromMethod(
+            m_RootCompiler->info.compMethodHnd);
+    const unsigned methodHash =
+        m_RootCompiler->info.compMethodHash();
+
+    if (s_ReplayFile == nullptr)
+    {
+        return false;
+    }
+
+    bool foundMethod = false;
+    char buffer[256];
+    fseek(s_ReplayFile, 0, SEEK_SET);
+
+    while (!foundMethod)
+    {
+        // Get next line
+        if (fgets(buffer, sizeof(buffer), s_ReplayFile) == nullptr)
+        {
+            break;
+        }
+
+        // Look for next method entry
+        if (strstr(buffer, "<Method>") == nullptr)
+        {
+            continue;
+        }
+
+        // Get next line
+        if (fgets(buffer, sizeof(buffer), s_ReplayFile) == nullptr)
+        {
+            break;
+        }
+
+        // See if token matches
+        unsigned token = 0;
+        int count = sscanf(buffer, " <Token>%u</Token> ", &token);
+        if ((count != 1) || (token != methodToken))
+        {
+            continue;
+        }
+
+        // Get next line
+        if (fgets(buffer, sizeof(buffer), s_ReplayFile) == nullptr)
+        {
+            break;
+        }
+
+        // See if hash matches
+        unsigned hash = 0;
+        count = sscanf(buffer, " <Hash>%u</Hash> ", &hash);
+        if ((count != 1) || (hash != methodHash))
+        {
+            continue;
+        }
+
+        // Found a match...
+        foundMethod = true;
+        break;
+    }
+
+    return foundMethod;
+}
+
+//------------------------------------------------------------------------
+// FindContext: find an inline context in the inline Xml
+//
+// Notes:
+//    Assumes file position within the relevant method has just been
+//    set by a successful call to FindMethod().
+//
+// Arguments:
+//    context -- context of interest
+//
+// ReturnValue:
+//    true if found. File position left pointing just after the
+//    <Token> entry for the context.
+
+bool ReplayPolicy::FindContext(InlineContext* context)
+{
+    // Make sure we've found the parent context.
+    if (context->IsRoot())
+    {
+        // We've already found the method context so we're good.
+        return true;
+    }
+
+    bool foundParent = FindContext(context->GetParent());
+
+    if (!foundParent)
+    {
+        return false;
+    }
+
+    // File pointer should be pointing at the parent context level.
+    // See if we see an inline entry for this context.
+    //
+    // Token we're looking for.
+    mdMethodDef contextToken =
+        m_RootCompiler->info.compCompHnd->getMethodDefFromMethod(
+            context->GetCallee());
+
+    return FindInline(contextToken);
+}
+
+//------------------------------------------------------------------------
+// FindInline: find entry for the current inline in inline Xml.
+//
+// Arguments:
+//    token -- token describing the inline
+//
+// ReturnValue:
+//    true if the inline entry was found
+//
+// Notes:
+//    Assumes file position has just been set by a successful call to
+//    FindMethod or FindContext.
+//
+//    Token will not be sufficiently unique to identify a particular
+//    inline, if there are multiple calls to the same method.
+
+bool ReplayPolicy::FindInline(unsigned token)
+{
+    char buffer[256];
+    bool foundInline = false;
+    int  depth = 0;
+
+    while (!foundInline)
+    {
+        // Get next line
+        if (fgets(buffer, sizeof(buffer), s_ReplayFile) == nullptr)
+        {
+            break;
+        }
+
+        // If we hit </Method> we've gone too far,
+        // and the XML is messed up.
+        if (strstr(buffer, "</Method>") != nullptr)
+        {
+            break;
+        }
+
+        // Look for <Inlines />....
+        if (strstr(buffer, "<Inlines />") != nullptr)
+        {
+            if (depth == 0)
+            {
+                // Exited depth 1, failed to find the context
+                break;
+            }
+            else
+            {
+                // Exited nested, keep looking
+                continue;
+            }
+        }
+
+        // Look for <Inlines>....
+        if (strstr(buffer, "<Inlines>") != nullptr)
+        {
+            depth++;
+            continue;
+        }
+
+        // If we hit </Inlines> we've exited a nested entry
+        // or the current entry.
+        if (strstr(buffer, "</Inlines>") != nullptr)
+        {
+            depth--;
+
+            if (depth == 0)
+            {
+                // Exited depth 1, failed to find the context
+                break;
+            }
+            else
+            {
+                // Exited nested, keep looking
+                continue;
+            }
+        }
+
+        // Look for start of inline section at the right depth
+        if ((depth != 1) || (strstr(buffer, "<Inline>") == nullptr))
+        {
+            continue;
+        }
+
+        // Get next line
+        if (fgets(buffer, sizeof(buffer), s_ReplayFile) == nullptr)
+        {
+            break;
+        }
+
+        unsigned inlineToken = 0;
+        int count = sscanf(buffer, " <Token>%u</Token> ", &inlineToken);
+
+        // Need a secondary check here for callsite
+        // ID... offset or similar. Hash would be nice too.
+        if ((count != 1) || (inlineToken != token))
+        {
+            continue;
+        }
+
+        // We're good!
+        foundInline = true;
+        break;
+    }
+
+    return foundInline;
+}
+
+//------------------------------------------------------------------------
+// FindInline: find entry for a particular callee in inline Xml.
+//
+// Arguments:
+//    callee -- handle for the callee method
+//
+// ReturnValue:
+//    true if the inline should be performed.
+//
+// Notes:
+//    Assumes file position has just been set by a successful call to
+//    FindContext(...);
+//
+//    callee handle will not be sufficiently unique to identify a
+//    particular inline, if there are multiple calls to the same
+//    method.
+
+bool ReplayPolicy::FindInline(CORINFO_METHOD_HANDLE callee)
+{
+    // Token we're looking for
+    mdMethodDef calleeToken =
+        m_RootCompiler->info.compCompHnd->getMethodDefFromMethod(callee);
+
+    bool foundInline = FindInline(calleeToken);
+
+    return foundInline;
+}
+
+//------------------------------------------------------------------------
+// DetermineProfitability: determine if this inline is profitable
+//
+// Arguments:
+//    methodInfo -- method info for the callee
+
+void ReplayPolicy::DetermineProfitability(CORINFO_METHOD_INFO* methodInfo)
+{
+    // TODO: handle prejit root case....need to record this in the
+    // root method XML.
+    if (m_IsPrejitRoot)
+    {
+        // Fall back to discretionary policy for now.
+        return DiscretionaryPolicy::DetermineProfitability(methodInfo);
+    }
+
+    // Otherwise try and find this candiate in the Xml. If we fail
+    // the don't inline.
+    bool accept = false;
+
+    // First, locate the entries for the root method.
+    bool foundMethod = FindMethod();
+
+    if (foundMethod && (m_InlineContext != nullptr))
+    {
+        // Next, navigate the context tree to find the entries
+        // for the context that contains this candidate.
+        bool foundContext = FindContext(m_InlineContext);
+
+        if (foundContext)
+        {
+            // Finally, find this candidate within its context
+            CORINFO_METHOD_HANDLE calleeHandle = methodInfo->ftn;
+            accept = FindInline(calleeHandle);
+        }
+    }
+
+    if (accept)
+    {
+        JITLOG_THIS(m_RootCompiler, (LL_INFO100000, "Inline accepted via log replay"))
+
+        if (m_IsPrejitRoot)
+        {
+            SetCandidate(InlineObservation::CALLEE_LOG_REPLAY_ACCEPT);
+        }
+        else
+        {
+            SetCandidate(InlineObservation::CALLSITE_LOG_REPLAY_ACCEPT);
+        }
+    }
+    else
+    {
+        JITLOG_THIS(m_RootCompiler, (LL_INFO100000, "Inline rejected via log replay"))
+
+        if (m_IsPrejitRoot)
+        {
+            SetNever(InlineObservation::CALLEE_LOG_REPLAY_REJECT);
+        }
+        else
+        {
+            SetFailure(InlineObservation::CALLSITE_LOG_REPLAY_REJECT);
+        }
+    }
+
+    return;
+}
+
 #endif // defined(DEBUG) || defined(INLINE_DATA)
index 31a686e..29e6af4 100644 (file)
@@ -338,6 +338,35 @@ public:
     const char* GetName() const override { return "SizePolicy"; }
 };
 
+// The ReplayPolicy performs only inlines specified by an external
+// inline replay log.
+
+class ReplayPolicy : public DiscretionaryPolicy
+{
+public:
+
+    // Construct a ReplayPolicy
+    ReplayPolicy(Compiler* compiler, InlineContext* inlineContext, bool isPrejitRoot);
+
+    // Policy determinations
+    void DetermineProfitability(CORINFO_METHOD_INFO* methodInfo) override;
+
+    // Miscellaneous
+    const char* GetName() const override { return "ReplayPolicy"; }
+
+    static void FinalizeXml();
+
+private:
+
+    bool FindMethod();
+    bool FindContext(InlineContext* context);
+    bool FindInline(CORINFO_METHOD_HANDLE callee);
+    bool FindInline(unsigned token);
+
+    static bool    s_WroteReplayBanner;
+    static FILE*   s_ReplayFile;
+    InlineContext* m_InlineContext;
+};
 
 #endif // defined(DEBUG) || defined(INLINE_DATA)
 
index 40904b3..3dd10f2 100644 (file)
@@ -1483,7 +1483,7 @@ AGAIN:
 
         assert(!instIsFP(ins));
 
-#ifndef _TARGET_64BIT_
+#if CPU_LONG_USES_REGPAIR
         if  (tree->gtType == TYP_LONG)
         {
             if  (offs)
@@ -1497,7 +1497,7 @@ AGAIN:
             }
         }
         else
-#endif // !_TARGET_64BIT_
+#endif // CPU_LONG_USES_REGPAIR
         {
             reg = tree->gtRegNum;
         }
@@ -1663,6 +1663,8 @@ AGAIN:
 #ifdef _TARGET_XARCH_
         assert(!instIsFP(ins));
 #endif
+
+#if CPU_LONG_USES_REGPAIR
         if  (tree->gtType == TYP_LONG)
         {
             if  (offs)
@@ -1676,6 +1678,7 @@ AGAIN:
             }
         }
         else
+#endif // CPU_LONG_USES_REGPAIR
         {
             rg2 = tree->gtRegNum;
         }
@@ -1899,7 +1902,7 @@ LONGREG_TT_IV:
 
         assert(instIsFP(ins) == 0);
 
-#ifndef _TARGET_64BIT_
+#if CPU_LONG_USES_REGPAIR
         if  (tree->gtType == TYP_LONG)
         {
             if  (offs == 0)
@@ -1921,7 +1924,7 @@ LONGREG_TT_IV:
 #endif
         }
         else
-#endif // !_TARGET_64BIT_
+#endif // CPU_LONG_USES_REGPAIR
         {
             reg = tree->gtRegNum;
         }
@@ -2347,6 +2350,7 @@ LONGREG_RVTT:
 
         regNumber rg2;
 
+#if CPU_LONG_USES_REGPAIR
         if  (tree->gtType == TYP_LONG)
         {
             if  (offs)
@@ -2361,6 +2365,7 @@ LONGREG_RVTT:
             }
         }
         else
+#endif // LEGACY_BACKEND
         {
             rg2 = tree->gtRegNum;
         }
index 500ccfd..f5bae93 100644 (file)
@@ -407,8 +407,6 @@ typedef ptrdiff_t   ssize_t;
 //=============================================================================
 
 #define REDUNDANT_LOAD      1       // track locals in regs, suppress loads
-#define INLINE_PINVOKE      1       // try to inline P/Invoke stubs
-#define INLINE_NDIRECT      INLINE_PINVOKE // ndirect is an archaic name for pinvoke
 #define LONG_MATH_REGPARAM  0       // args to long mul/div passed in registers
 #define STACK_PROBES        0       // Support for stack probes
 #define DUMP_FLOWGRAPHS     DEBUG   // Support for creating Xml Flowgraph reports in *.fgx files
index cb4724d..684db06 100644 (file)
@@ -58,7 +58,7 @@ CONFIG_INTEGER(JitInlineAdditionalMultiplier, W("JitInlineAdditionalMultiplier")
 CONFIG_INTEGER(JitInlinePrintStats, W("JitInlinePrintStats"), 0)
 CONFIG_INTEGER(JitInlineSize, W("JITInlineSize"), DEFAULT_MAX_INLINE_SIZE)
 CONFIG_INTEGER(JitInlineDepth, W("JITInlineDepth"), DEFAULT_MAX_INLINE_DEPTH)
-CONFIG_INTEGER(JitLargeBranches, W("JitLargeBranches"), 0) // Force using the largest conditional branch format
+CONFIG_INTEGER(JitLongAddress, W("JitLongAddress"), 0) // Force using the large pseudo instruction form for long address
 CONFIG_INTEGER(JitMaxTempAssert, W("JITMaxTempAssert"), 1)
 CONFIG_INTEGER(JitMaxUncheckedOffset, W("JitMaxUncheckedOffset"), 8)
 CONFIG_INTEGER(JitMinOpts, W("JITMinOpts"), 0) // Forces MinOpts
@@ -161,11 +161,11 @@ CONFIG_INTEGER(EnableAVX, W("EnableAVX"), 1) // Enable AVX instruction set for w
 CONFIG_INTEGER(EnableAVX, W("EnableAVX"), 0) // Enable AVX instruction set for wide operations as default
 #endif // defined(_TARGET_AMD64_)
 
-#if (!defined(DEBUG) && !defined(_DEBUG)) || (defined(CROSSGEN_COMPILE) && !defined(FEATURE_CORECLR))
+#if !defined(DEBUG) && !defined(_DEBUG)
 CONFIG_INTEGER(JitEnableNoWayAssert, W("JitEnableNoWayAssert"), 0)
-#else // (defined(DEBUG) || defined(_DEBUG)) && (!defined(CROSSGEN_COMPILE) || defined(FEATURE_CORECLR))
+#else // defined(DEBUG) || defined(_DEBUG)
 CONFIG_INTEGER(JitEnableNoWayAssert, W("JitEnableNoWayAssert"), 1)
-#endif // (!defined(DEBUG) && !defined(_DEBUG)) || (defined(CROSSGEN_COMPILE) && !defined(FEATURE_CORECLR))
+#endif // !defined(DEBUG) && !defined(_DEBUG)
 
 CONFIG_INTEGER(JitAggressiveInlining, W("JitAggressiveInlining"), 0) // Aggressive inlining of all methods
 CONFIG_INTEGER(JitELTHookEnabled, W("JitELTHookEnabled"), 0) // On ARM, setting this will emit Enter/Leave/TailCall callbacks
@@ -198,7 +198,9 @@ CONFIG_INTEGER(JitInlinePolicyDiscretionary, W("JitInlinePolicyDiscretionary"),
 CONFIG_INTEGER(JitInlinePolicyModel, W("JitInlinePolicyModel"), 0)
 CONFIG_INTEGER(JitInlinePolicyFull, W("JitInlinePolicyFull"), 0)
 CONFIG_INTEGER(JitInlinePolicySize, W("JitInlinePolicySize"), 0)
+CONFIG_INTEGER(JitInlinePolicyReplay, W("JitInlinePolicyReplay"), 0)
 CONFIG_STRING(JitNoInlineRange, W("JitNoInlineRange"))
+CONFIG_STRING(JitInlineReplayFile, W("JitInlineReplayFile"))
 #endif // defined(DEBUG) || defined(INLINE_DATA)
 
 #undef CONFIG_INTEGER
index 6b9782c..8782863 100644 (file)
@@ -46,10 +46,9 @@ void                Compiler::lvaInit()
     lvaShadowSPslotsVar = BAD_VAR_NUM;
 #endif // !FEATURE_EH_FUNCLETS
     lvaInlinedPInvokeFrameVar = BAD_VAR_NUM;
+    lvaReversePInvokeFrameVar = BAD_VAR_NUM;
 #if FEATURE_FIXED_OUT_ARGS
-#if INLINE_NDIRECT
     lvaPInvokeFrameRegSaveVar = BAD_VAR_NUM;
-#endif // !INLINE_NDIRECT
     lvaOutgoingArgSpaceVar = BAD_VAR_NUM;
 #endif // FEATURE_FIXED_OUT_ARGS
 #ifdef _TARGET_ARM_
@@ -1796,6 +1795,14 @@ void   Compiler::lvaPromoteLongVars()
             fieldVarDsc->lvIsParam        = isParam;
         }
     }
+
+#ifdef DEBUG
+    if (verbose)
+    {
+        printf("\nlvaTable after lvaPromoteLongVars\n");
+        lvaTableDump();
+    }
+#endif // DEBUG
 }
 #endif // !_TARGET_64BIT_
 
@@ -2829,7 +2836,6 @@ var_types           LclVarDsc::lvaArgType()
 
 void                Compiler::lvaMarkLclRefs(GenTreePtr tree)
 {
-#if INLINE_NDIRECT
     /* Is this a call to unmanaged code ? */
     if (tree->gtOper == GT_CALL && tree->gtFlags & GTF_CALL_UNMANAGED) 
     {
@@ -2848,7 +2854,6 @@ void                Compiler::lvaMarkLclRefs(GenTreePtr tree)
             varDsc->incRefCnts(lvaMarkRefsWeight, this);
         }
     }
-#endif
         
     /* Is this an assigment? */
 
@@ -3190,9 +3195,6 @@ void                Compiler::lvaMarkLocalVars()
         printf("\n*************** In lvaMarkLocalVars()");
 #endif
 
-
-#if INLINE_NDIRECT
-
     /* If there is a call to an unmanaged target, we already grabbed a
        local slot for the current thread control block.
      */
@@ -3213,7 +3215,6 @@ void                Compiler::lvaMarkLocalVars()
             lvaTable[info.compLvFrameListRoot].lvRefCntWtd  = 2 * BB_UNITY_WEIGHT;
         }
     }
-#endif
 
     lvaAllocOutgoingArgSpace();
 
index 306577e..16deb27 100644 (file)
@@ -427,8 +427,6 @@ void Compiler::fgPerStatementLocalVarLiveness(GenTreePtr startNode, GenTreePtr a
                 }
             }
 
-#if INLINE_NDIRECT
-
             // If this is a p/invoke unmanaged call or if this is a tail-call
             // and we have an unmanaged p/invoke call in the method,
             // then we're going to run the p/invoke epilog.
@@ -457,8 +455,6 @@ void Compiler::fgPerStatementLocalVarLiveness(GenTreePtr startNode, GenTreePtr a
                 }
             }
 
-#endif // INLINE_NDIRECT
-
             break;
 
         default:
@@ -628,8 +624,6 @@ void                Compiler::fgPerBlockLocalVarLiveness()
 #endif // LEGACY_BACKEND
         }
 
-#if INLINE_NDIRECT
-
         /* Get the TCB local and mark it as used */
 
         if (block->bbJumpKind == BBJ_RETURN && info.compCallUnmanaged)
@@ -651,8 +645,6 @@ void                Compiler::fgPerBlockLocalVarLiveness()
             }
         }
 
-#endif // INLINE_NDIRECT
-
 #ifdef DEBUG
         if  (verbose)
         {
@@ -1742,8 +1734,6 @@ SKIP_QMARK:
 
         if (tree->gtOper == GT_CALL)
         {
-#if INLINE_NDIRECT
-
             // if this is a tail-call and we have any unmanaged p/invoke calls in
             // the method then we're going to run the p/invoke epilog
             // So we mark the FrameRoot as used by this instruction.
@@ -1854,7 +1844,6 @@ SKIP_QMARK:
                     }
                 }
             }
-#endif // INLINE_NDIRECT
         }
 
         // Is this a use/def of a local variable?
index ff665fd..1df4f3b 100644 (file)
@@ -428,6 +428,27 @@ void Lowering::DecomposeNode(GenTreePtr* pTree, Compiler::fgWalkData* data)
             GenTree* loOp2 = op2->gtGetOp1();
             GenTree* hiOp2 = op2->gtGetOp2();
 
+            // We don't have support to decompose a TYP_LONG node that already has a child that has
+            // been decomposed into parts, where the high part depends on the value generated by the
+            // low part (via the flags register). For example, if we have:
+            //    +(gt_long(+(lo3, lo4), +Hi(hi3, hi4)), gt_long(lo2, hi2))
+            // We would decompose it here to:
+            //    gt_long(+(+(lo3, lo4), lo2), +Hi(+Hi(hi3, hi4), hi2))
+            // But this would generate incorrect code, because the "+Hi(hi3, hi4)" code generation
+            // needs to immediately follow the "+(lo3, lo4)" part. Also, if this node is one that
+            // requires a unique high operator, and the child nodes are not simple locals (e.g.,
+            // they are decomposed nodes), then we also can't decompose the node, as we aren't
+            // guaranteed the high and low parts will be executed immediately after each other.
+            
+            NYI_IF(hiOp1->OperIsHigh() ||
+                   hiOp2->OperIsHigh() ||
+                   (GenTree::OperIsHigh(getHiOper(oper)) &&
+                    (!loOp1->OperIsLeaf() ||
+                     !hiOp1->OperIsLeaf() ||
+                     !loOp1->OperIsLeaf() ||
+                     !hiOp2->OperIsLeaf())),
+                    "Can't decompose expression tree TYP_LONG node");
+
             // Now, remove op1 and op2 from the node list.
             comp->fgSnipNode(curStmt, op1);
             comp->fgSnipNode(curStmt, op2);
@@ -606,6 +627,16 @@ void Lowering::LowerNode(GenTreePtr* ppTree, Compiler::fgWalkData* data)
         LowerAdd(ppTree, data);
         break;
         
+    case GT_UDIV:
+    case GT_UMOD:
+        LowerUnsignedDivOrMod(*ppTree);
+        break;
+
+    case GT_DIV:
+    case GT_MOD:
+        LowerSignedDivOrMod(ppTree, data);
+        break;
+
     case GT_SWITCH:
         LowerSwitch(ppTree);
         break;
@@ -740,6 +771,7 @@ void Lowering::LowerNode(GenTreePtr* ppTree, Compiler::fgWalkData* data)
  *     internal temporaries to maintain the index we're evaluating plus we're using existing code from LinearCodeGen
  *     to implement this instead of implement all the control flow constructs using InstrDscs and InstrGroups downstream.
  */
+
 void Lowering::LowerSwitch(GenTreePtr* pTree)
 {
     unsigned     jumpCnt;
@@ -845,14 +877,7 @@ void Lowering::LowerSwitch(GenTreePtr* pTree)
     // because the code to load the base of the switch
     // table is huge and hideous due to the relocation... :(
     minSwitchTabJumpCnt += 2;
-#elif defined(_TARGET_ARM64_) // _TARGET_ARM_
-    // In the case of ARM64 we'll stick to generate a sequence of
-    // compare and branch for now to get switch working and revisit
-    // to implement jump tables in the future.
-    //
-    // TODO-AMD64-NYI: Implement Jump Tables.
-    minSwitchTabJumpCnt = -1; 
-#endif // _TARGET_ARM64_
+#endif // _TARGET_ARM_
     // Once we have the temporary variable, we construct the conditional branch for
     // the default case.  As stated above, this conditional is being shared between
     // both GT_SWITCH lowering code paths.
@@ -1654,27 +1679,19 @@ void Lowering::LowerCall(GenTree* node)
             break;
 
         case GTF_CALL_NONVIRT:
-        {
-
-#if INLINE_PINVOKE
             if (call->IsUnmanaged())
             {
                 result = LowerNonvirtPinvokeCall(call);
-                break;
             }
-#endif
-            if  (call->gtCallType == CT_INDIRECT)
+            else if (call->gtCallType == CT_INDIRECT)
             {
                 result = LowerIndirectNonvirtCall(call);
-                break;
             }
             else
             {
                 result = LowerDirectCall(call);
-                break;
             }
-        }
-        break;
+            break;
 
         default:
             noway_assert(!"strange call type");
@@ -1971,14 +1988,12 @@ void Lowering::LowerFastTailCall(GenTreeCall *call)
     // fgLastBB with block number > loop header block number.
     //assert((comp->compCurBB->bbFlags & BBF_GC_SAFE_POINT) || !comp->optReachWithoutCall(comp->fgFirstBB, comp->compCurBB) || comp->genInterruptible);
 
-#if INLINE_PINVOKE
     // If PInvokes are in-lined, we have to remember to execute PInvoke method epilog anywhere that
     // a method returns.  This is a case of caller method has both PInvokes and tail calls.
     if (comp->info.compCallUnmanaged)
     {
         InsertPInvokeMethodEpilog(comp->compCurBB DEBUGARG(call));
     }
-#endif
 
     // Args for tail call are setup in incoming arg area.  The gc-ness of args of
     // caller and callee (which being tail called) may not match.  Therefore, everything
@@ -2212,14 +2227,12 @@ GenTree* Lowering::LowerTailCallViaHelper(GenTreeCall* call, GenTree *callTarget
     // GC starvation.
     assert(comp->compCurBB->bbFlags & BBF_GC_SAFE_POINT);
 
-#if INLINE_PINVOKE
     // If PInvokes are in-lined, we have to remember to execute PInvoke method epilog anywhere that
     // a method returns.  This is a case of caller method has both PInvokes and tail calls.
     if (comp->info.compCallUnmanaged)
     {
         InsertPInvokeMethodEpilog(comp->compCurBB DEBUGARG(call));
     }
-#endif
 
     // Remove gtCallAddr from execution order if one present.
     GenTreeStmt* callStmt = comp->compCurStmt->AsStmt();     
@@ -2281,14 +2294,12 @@ void Lowering::LowerJmpMethod(GenTree* jmp)
     DISPTREE(jmp);
     JITDUMP("============");
 
-#if INLINE_PINVOKE
     // If PInvokes are in-lined, we have to remember to execute PInvoke method epilog anywhere that
     // a method returns.
     if (comp->info.compCallUnmanaged)
     {
         InsertPInvokeMethodEpilog(comp->compCurBB DEBUGARG(jmp));
     }
-#endif
 }
 
 // Lower GT_RETURN node to insert PInvoke method epilog if required.
@@ -2300,13 +2311,11 @@ void Lowering::LowerRet(GenTree* ret)
     DISPTREE(ret);
     JITDUMP("============");
 
-#if INLINE_PINVOKE
     // Method doing PInvokes has exactly one return block unless it has tail calls.
     if (comp->info.compCallUnmanaged && (comp->compCurBB == comp->genReturnBB))
     {
         InsertPInvokeMethodEpilog(comp->compCurBB DEBUGARG(ret));
     }
-#endif
 }
 
 GenTree* Lowering::LowerDirectCall(GenTreeCall* call)
@@ -2384,7 +2393,8 @@ GenTree* Lowering::LowerDirectCall(GenTreeCall* call)
            else
            {
                // a direct call within range of hardware relative call instruction
-               // there is no extra code to generate
+               // stash the address for codegen
+               call->gtDirectCallAddress = addr;
            }
            break;
 
@@ -2587,19 +2597,6 @@ void Lowering::InsertPInvokeMethodProlog()
 
     if (comp->opts.ShouldUsePInvokeHelpers())
     {
-        // Initialize the P/Invoke frame by calling CORINFO_HELP_INIT_PINVOKE_FRAME:
-        //
-        // OpaqueFrame opaqueFrame;
-        // CORINFO_HELP_INIT_PINVOKE_FRAME(&opaqueFrame);
-
-        GenTree* frameAddr = new(comp, GT_LCL_VAR_ADDR)
-            GenTreeLclVar(GT_LCL_VAR_ADDR, TYP_BYREF, comp->lvaInlinedPInvokeFrameVar, BAD_IL_OFFSET);
-
-        GenTree* helperCall = comp->gtNewHelperCallNode(CORINFO_HELP_INIT_PINVOKE_FRAME, TYP_VOID, 0, comp->gtNewArgList(frameAddr));
-
-        GenTreeStmt* stmt = LowerMorphAndSeqTree(helperCall);
-        comp->fgInsertStmtAtBeg(comp->fgFirstBB, stmt);
-
         return;
     }
 
@@ -3043,19 +3040,31 @@ GenTree* Lowering::LowerNonvirtPinvokeCall(GenTreeCall* call)
         }
 #endif
 
-        GenTree* address = AddrGen(lookup.addr);
+        void* addr = lookup.addr;
         switch (lookup.accessType)
         {
             case IAT_VALUE:
-                result = address;
+                if (!IsCallTargetInRange(addr))
+                {
+                    result = AddrGen(addr);
+                }
+                else
+                {
+                   // a direct call within range of hardware relative call instruction
+                   // stash the address for codegen
+                    call->gtDirectCallAddress = addr;
+#ifdef FEATURE_READYTORUN_COMPILER
+                    call->gtEntryPoint.addr = nullptr;
+#endif
+                }
                 break;
 
             case IAT_PVALUE:
-                result = Ind(address);
+                result = Ind(AddrGen(addr));
                 break;
 
             case IAT_PPVALUE:
-                result = Ind(Ind(address));
+                result = Ind(Ind(AddrGen(addr)));
                 break;
         }
     }
@@ -3461,6 +3470,198 @@ void Lowering::LowerAdd(GenTreePtr* pTree, Compiler::fgWalkData* data)
 #endif // !_TARGET_ARMARCH_
 }
 
+//------------------------------------------------------------------------
+// LowerUnsignedDivOrMod: transform GT_UDIV/GT_UMOD nodes with a const power of 2
+// divisor into GT_RSZ/GT_AND nodes.
+//
+// Arguments:
+//    tree:   pointer to the GT_UDIV/GT_UMOD node to be lowered
+
+void Lowering::LowerUnsignedDivOrMod(GenTree* tree)
+{
+    assert(tree->OperGet() == GT_UDIV || tree->OperGet() == GT_UMOD);
+
+    GenTree* divisor = tree->gtGetOp2();
+
+    if (divisor->IsCnsIntOrI())
+    {
+        size_t divisorValue = static_cast<size_t>(divisor->gtIntCon.IconValue());
+
+        if (isPow2(divisorValue))
+        {
+            genTreeOps newOper;
+
+            if (tree->OperGet() == GT_UDIV)
+            {
+                newOper = GT_RSZ;
+                divisorValue = genLog2(divisorValue);
+            }
+            else
+            {
+                newOper = GT_AND;
+                divisorValue -= 1;
+            }
+
+            tree->SetOper(newOper);
+            divisor->gtIntCon.SetIconValue(divisorValue);
+        }
+    }
+}
+
+//------------------------------------------------------------------------
+// LowerSignedDivOrMod: transform integer GT_DIV/GT_MOD nodes with a power of 2 
+// const divisor into equivalent but faster sequences.
+//
+// Arguments:
+//    pTree:   pointer to the parent node's link to the node we care about
+
+void Lowering::LowerSignedDivOrMod(GenTreePtr* ppTree, Compiler::fgWalkData* data)
+{
+    GenTree* divMod = *ppTree;
+    assert(divMod->OperGet() == GT_DIV || divMod->OperGet() == GT_MOD);
+    GenTree* divisor = divMod->gtGetOp2();
+
+    if (divisor->IsCnsIntOrI())
+    {
+        const var_types type = divMod->TypeGet();
+        assert(type == TYP_INT || type == TYP_LONG);
+
+        GenTree* dividend = divMod->gtGetOp1();
+
+        if (dividend->IsCnsIntOrI())
+        {
+            // We shouldn't see a divmod with constant operands here but if we do then it's likely 
+            // because optimizations are disabled or it's a case that's supposed to throw an exception. 
+            // Don't optimize this.
+            return;
+        }
+
+        ssize_t divisorValue = divisor->gtIntCon.IconValue();
+
+        if (divisorValue == -1)
+        {
+            // x / -1 can't be optimized because INT_MIN / -1 is required to throw an exception.
+         
+            // x % -1 is always 0 and the IL spec says that the rem instruction "can" throw an exception if x is
+            // the minimum representable integer. However, the C# spec says that an exception "is" thrown in this
+            // case so optimizing this case would break C# code.
+
+            // A runtime check could be used to handle this case but it's probably too rare to matter.
+            return;
+        }
+        
+        bool isDiv = divMod->OperGet() == GT_DIV;
+
+        if (isDiv)
+        {
+            if ((type == TYP_INT && divisorValue == INT_MIN) ||
+                (type == TYP_LONG && divisorValue == INT64_MIN))
+            {
+                // If the divisor is the minimum representable integer value then we can use a compare, 
+                // the result is 1 iff the dividend equals divisor.
+                divMod->SetOper(GT_EQ);
+                return;
+            }
+        }
+
+        size_t absDivisorValue = (divisorValue == SSIZE_T_MIN) ? static_cast<size_t>(divisorValue) : static_cast<size_t>(abs(divisorValue));
+
+        if (isPow2(absDivisorValue))
+        {
+            // We need to use the dividend node multiple times so its value needs to be
+            // computed once and stored in a temp variable.
+            GenTreeStmt* newStmt = comp->fgInsertEmbeddedFormTemp(&(divMod->gtOp.gtOp1));
+            newStmt->gtFlags |= GTF_STMT_SKIP_LOWER;
+            dividend = divMod->gtGetOp1();
+
+            GenTreeStmt* curStmt = comp->compCurStmt->AsStmt();
+            unsigned curBBWeight = currBlock->getBBWeight(comp);
+            unsigned dividendLclNum = dividend->gtLclVar.gtLclNum;
+
+            GenTree* adjustment = comp->gtNewOperNode(
+                GT_RSH, type,
+                dividend,
+                comp->gtNewIconNode(type == TYP_INT ? 31 : 63));
+
+            if (absDivisorValue == 2)
+            {
+                // If the divisor is +/-2 then we'd end up with a bitwise and between 0/-1 and 1.
+                // We can get the same result by using GT_RSZ instead of GT_RSH.
+                adjustment->SetOper(GT_RSZ);
+            }
+            else
+            {
+                adjustment = comp->gtNewOperNode(
+                    GT_AND, type,
+                    adjustment,
+                    comp->gtNewIconNode(absDivisorValue - 1, type));
+            }
+
+            GenTree* adjustedDividend = comp->gtNewOperNode(
+                GT_ADD, type,
+                adjustment,
+                comp->gtNewLclvNode(dividendLclNum, type));
+
+            comp->lvaTable[dividendLclNum].incRefCnts(curBBWeight, comp);
+
+            GenTree* newDivMod;
+
+            if (isDiv)
+            {
+                // perform the division by right shifting the adjusted dividend
+                divisor->gtIntCon.SetIconValue(genLog2(absDivisorValue));
+
+                newDivMod = comp->gtNewOperNode(
+                    GT_RSH, type,
+                    adjustedDividend,
+                    divisor);
+
+                if (divisorValue < 0)
+                {
+                    // negate the result if the divisor is negative
+                    newDivMod = comp->gtNewOperNode(
+                        GT_NEG, type,
+                        newDivMod);
+                }
+            }
+            else
+            {
+                // divisor % dividend = dividend - divisor x (dividend / divisor)
+                // divisor x (dividend / divisor) translates to (dividend >> log2(divisor)) << log2(divisor)
+                // which simply discards the low log2(divisor) bits, that's just dividend & ~(divisor - 1)
+                divisor->gtIntCon.SetIconValue(~(absDivisorValue - 1));
+
+                newDivMod = comp->gtNewOperNode(
+                    GT_SUB, type,
+                    comp->gtNewLclvNode(dividendLclNum, type),
+                    comp->gtNewOperNode(
+                        GT_AND, type,
+                        adjustedDividend,
+                        divisor));
+
+                comp->lvaTable[dividendLclNum].incRefCnts(curBBWeight, comp);
+            }
+
+            // remove the divisor and dividend nodes from linear order so we can reuse them
+            comp->fgSnipNode(curStmt, divisor);
+            comp->fgSnipNode(curStmt, dividend);
+
+            // linearize and insert the new tree before the original divMod node
+            comp->gtSetEvalOrder(newDivMod);
+            comp->fgSetTreeSeq(newDivMod);
+            comp->fgInsertTreeInListBefore(newDivMod, divMod, curStmt);
+            comp->fgSnipNode(curStmt, divMod);
+
+            // the divMod that we've replaced could have been a call arg
+            comp->fgFixupIfCallArg(data->parentStack, divMod, newDivMod);
+
+            // replace the original divmod node with the new divmod tree
+            *ppTree = newDivMod;
+
+            return;
+        }
+    }
+}
 
 //------------------------------------------------------------------------
 // LowerInd: attempt to transform indirected expression into an addressing mode
@@ -3777,7 +3978,6 @@ void Lowering::DoPhase()
        }
     }
 
-#if INLINE_PINVOKE
     // If we have any PInvoke calls, insert the one-time prolog code. We've already inserted the epilog code in the appropriate spots.
     // NOTE: there is a minor optimization opportunity here, as we still create p/invoke data structures and setup/teardown
     // even if we've eliminated all p/invoke calls due to dead code elimination.
@@ -3785,7 +3985,6 @@ void Lowering::DoPhase()
     {
         InsertPInvokeMethodProlog();
     }
-#endif
 
 #ifdef DEBUG
     JITDUMP("Lower has completed modifying nodes, proceeding to initialize LSRA TreeNodeInfo structs...\n");
index 6381555..489fac1 100644 (file)
@@ -165,6 +165,8 @@ private:
     void LowerInd(GenTreePtr* ppTree);
     void LowerAddrMode(GenTreePtr* ppTree, GenTree* before, Compiler::fgWalkData* data, bool isIndir);
     void LowerAdd(GenTreePtr* ppTree, Compiler::fgWalkData* data);
+    void LowerUnsignedDivOrMod(GenTree* tree);
+    void LowerSignedDivOrMod(GenTreePtr* ppTree, Compiler::fgWalkData* data);
 
     // Remove the nodes that are no longer used after an addressing mode is constructed under a GT_IND
     void LowerIndCleanupHelper(GenTreeAddrMode* addrMode, GenTreePtr tree);
index 82a6e3c..b3475cd 100644 (file)
@@ -201,6 +201,20 @@ void Lowering::TreeNodeInfoInit(GenTree* stmt)
         case GT_CNS_DBL:
             info->srcCount = 0;
             info->dstCount = 1;
+            {
+                GenTreeDblCon *dblConst = tree->AsDblCon();
+                double constValue = dblConst->gtDblCon.gtDconVal;
+
+                if (emitter::emitIns_valid_imm_for_fmov(constValue))
+                {
+                    // Directly encode constant to instructions.
+                }
+                else
+                {
+                    // Reserve int to load constant from memory (IF_LARGELDC)
+                    info->internalIntCount = 1;
+                }
+            }
             break;
 
         case GT_QMARK:
@@ -353,7 +367,6 @@ void Lowering::TreeNodeInfoInit(GenTree* stmt)
         case GT_MULHI:
         case GT_UDIV:
             {
-                // TODO-ARM64-CQ: Optimize a divide by power of 2 as we do for AMD64
                 info->srcCount = 2;
                 info->dstCount = 1;
             }
@@ -526,10 +539,7 @@ void Lowering::TreeNodeInfoInit(GenTree* stmt)
                     {
                         // Fast tail call - make sure that call target is always computed in IP0
                         // so that epilog sequence can generate "br xip0" to achieve fast tail call.
-                        
-                        NYI_ARM64("Lower - Fast tail call");
-
-                        ctrlExpr->gtLsraInfo.setSrcCandidates(l, genRegMask(REG_IP0));  // ip0?
+                        ctrlExpr->gtLsraInfo.setSrcCandidates(l, genRegMask(REG_IP0));
                     }
                 }
 
index 506ccfe..e311ddd 100644 (file)
@@ -39,6 +39,25 @@ void Lowering::LowerStoreLoc(GenTreeLclVarCommon* storeLoc)
 {
     TreeNodeInfo* info = &(storeLoc->gtLsraInfo);
 
+    // Is this the case of var = call where call is returning
+    // a value in multiple return registers?
+    GenTree* op1 = storeLoc->gtGetOp1();
+    if (op1->IsMultiRegCall())
+    {
+        // backend expects to see this case only for store lclvar.
+        assert(storeLoc->OperGet() == GT_STORE_LCL_VAR);
+
+        // srcCount = number of registers in which the value is returned by call
+        GenTreeCall* call = op1->AsCall();
+        ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
+        info->srcCount = retTypeDesc->GetReturnRegCount();
+
+        // Call node srcCandidates = Bitwise-OR(allregs(GetReturnRegType(i))) for all i=0..RetRegCount-1
+        regMaskTP srcCandidates = m_lsra->allMultiRegCallNodeRegs(call);
+        op1->gtLsraInfo.setSrcCandidates(m_lsra, srcCandidates);
+        return;
+    }
+
 #ifdef FEATURE_SIMD    
     if (storeLoc->TypeGet() == TYP_SIMD12)
     {
@@ -55,7 +74,6 @@ void Lowering::LowerStoreLoc(GenTreeLclVarCommon* storeLoc)
     // If the source is a containable immediate, make it contained, unless it is
     // an int-size or larger store of zero to memory, because we can generate smaller code
     // by zeroing a register and then storing it.
-    GenTree* op1 = storeLoc->gtOp1;
     if (IsContainableImmed(storeLoc, op1) && (!op1->IsZero() || varTypeIsSmall(storeLoc)))
     {
         MakeSrcContained(storeLoc, op1);
@@ -296,50 +314,56 @@ void Lowering::TreeNodeInfoInit(GenTree* stmt)
             else
 #endif // !defined(_TARGET_64BIT_)
             {
+                GenTree* op1 = tree->gtGetOp1();
+                regMaskTP useCandidates = RBM_NONE;
+
+                info->srcCount = (tree->TypeGet() == TYP_VOID) ? 0 : 1;
+                info->dstCount = 0;
+
 #ifdef FEATURE_UNIX_AMD64_STRUCT_PASSING
                 if (varTypeIsStruct(tree))
-                {
-                    noway_assert((tree->gtOp.gtOp1->OperGet() == GT_LCL_VAR) ||
-                                 (tree->gtOp.gtOp1->OperGet() == GT_CALL));
-
-                    if (tree->gtOp.gtOp1->OperGet() == GT_LCL_VAR)
+                {                    
+                    // op1 has to be either an lclvar or a multi-reg returning call
+                    if (op1->OperGet() == GT_LCL_VAR)
                     {
-                        GenTreeLclVarCommon* lclVarPtr = tree->gtOp.gtOp1->AsLclVarCommon();
-                        LclVarDsc* varDsc = &(compiler->lvaTable[lclVarPtr->gtLclNum]);
+                        GenTreeLclVarCommon* lclVarCommon = op1->AsLclVarCommon();
+                        LclVarDsc* varDsc = &(compiler->lvaTable[lclVarCommon->gtLclNum]);
                         assert(varDsc->lvIsMultiRegArgOrRet);
-                        varDsc->lvDoNotEnregister = true;
-
-                        // If this is a two eightbyte return, make the var
-                        // contained by the return expression. The code gen will put
-                        // the values in the right registers for return.
-                        info->srcCount = (tree->TypeGet() == TYP_VOID) ? 0 : 1;
-                        info->dstCount = 0;
-                        MakeSrcContained(tree, tree->gtOp.gtOp1);
-                        break;
+
+                        // Mark var as contained if not enregistrable.
+                        if (!varTypeIsEnregisterableStruct(op1))
+                        {
+                            MakeSrcContained(tree, op1);
+                        }
                     }
+                    else
+                    {
+                        noway_assert(op1->IsMultiRegCall());
 
-                    // If the return gtOp1 is GT_CALL, just fallthrough. The return registers should already be set properly by the GT_CALL.
+                        ReturnTypeDesc* retTypeDesc = op1->AsCall()->GetReturnTypeDesc();
+                        info->srcCount = retTypeDesc->GetReturnRegCount();
+                        useCandidates = retTypeDesc->GetABIReturnRegs();
+                    }
                 }
+                else
 #endif // FEATURE_UNIX_AMD64_STRUCT_PASSING
-                // TODO-AMD64-Unix: When the GT_CALL for multi-register return structs is changed to use 2 destinations,
-                // change the code below to use 2 src for such op1s (this is the case of op1 being a GT_CALL).
-                info->srcCount = (tree->TypeGet() == TYP_VOID) ? 0 : 1;
-                info->dstCount = 0;
-
-                regMaskTP useCandidates;
-                switch (tree->TypeGet())
                 {
-                case TYP_VOID:   useCandidates = RBM_NONE; break;
-                case TYP_FLOAT:  useCandidates = RBM_FLOATRET; break;
-                case TYP_DOUBLE: useCandidates = RBM_DOUBLERET; break;
+                    // Non-struct type return - determine useCandidates                   
+                    switch (tree->TypeGet())
+                    {
+                    case TYP_VOID:   useCandidates = RBM_NONE; break;
+                    case TYP_FLOAT:  useCandidates = RBM_FLOATRET; break;
+                    case TYP_DOUBLE: useCandidates = RBM_DOUBLERET; break;
 #if defined(_TARGET_64BIT_)
-                case TYP_LONG:   useCandidates = RBM_LNGRET; break;
+                    case TYP_LONG:   useCandidates = RBM_LNGRET; break;
 #endif // defined(_TARGET_64BIT_)
-                default:         useCandidates = RBM_INTRET; break;
+                    default:         useCandidates = RBM_INTRET; break;
+                    }
                 }
+
                 if (useCandidates != RBM_NONE)
                 {
-                    tree->gtOp.gtOp1->gtLsraInfo.setSrcCandidates(l, useCandidates);
+                    op1->gtLsraInfo.setSrcCandidates(l, useCandidates);
                 }
             }
             break;
@@ -551,31 +575,6 @@ void Lowering::TreeNodeInfoInit(GenTree* stmt)
             op1 = tree->gtOp.gtOp1;
             op2 = tree->gtOp.gtOp2;
 
-            // See if we have an optimizable power of 2 which will be expanded 
-            // using instructions other than division.
-            // (fgMorph has already done magic number transforms)
-
-            if (op2->IsIntCnsFitsInI32())
-            {
-                bool isSigned = tree->OperGet() == GT_MOD || tree->OperGet() == GT_DIV;
-                ssize_t amount = op2->gtIntConCommon.IconValue();
-
-                if (isPow2(abs(amount)) && (isSigned || amount > 0)
-                    && amount != -1)
-                {
-                    MakeSrcContained(tree, op2);
-                    
-                    if (isSigned)
-                    {
-                        // we are going to use CDQ instruction so want these RDX:RAX
-                        info->setDstCandidates(l, RBM_RAX);
-                        // If possible would like to have op1 in RAX to avoid a register move
-                        op1->gtLsraInfo.setSrcCandidates(l, RBM_RAX);
-                    }
-                    break;
-                }
-            }
-
             // Amd64 Div/Idiv instruction: 
             //    Dividend in RAX:RDX  and computes
             //    Quotient in RAX, Remainder in RDX
@@ -835,10 +834,30 @@ void Lowering::TreeNodeInfoInit(GenTree* stmt)
 
         case GT_CALL:
         {
-            info->srcCount = 0;
-            info->dstCount =  (tree->TypeGet() != TYP_VOID) ? 1 : 0;
+            bool hasMultiRegRetVal = false;
+            ReturnTypeDesc* retTypeDesc = nullptr;
 
-            GenTree *ctrlExpr = tree->gtCall.gtControlExpr;
+            info->srcCount = 0;
+            if (tree->TypeGet() != TYP_VOID)
+            {
+                hasMultiRegRetVal = tree->AsCall()->HasMultiRegRetVal();
+                if (hasMultiRegRetVal)
+                {
+                    // dst count = number of registers in which the value is returned by call
+                    retTypeDesc = tree->AsCall()->GetReturnTypeDesc();
+                    info->dstCount = retTypeDesc->GetReturnRegCount();
+                }
+                else
+                {
+                    info->dstCount = 1;
+                }
+            }
+            else
+            {
+                info->dstCount = 0;
+            }
+            
+            GenTree* ctrlExpr = tree->gtCall.gtControlExpr;
             if (tree->gtCall.gtCallType == CT_INDIRECT)
             {
                 // either gtControlExpr != null or gtCallAddr != null.
@@ -884,8 +903,12 @@ void Lowering::TreeNodeInfoInit(GenTree* stmt)
             }
 
             // Set destination candidates for return value of the call.
-            if (varTypeIsFloating(registerType)
-                FEATURE_UNIX_AMD64_STRUCT_PASSING_ONLY( || varTypeIsSIMD(registerType)))
+            if (hasMultiRegRetVal)
+            {
+                assert(retTypeDesc != nullptr);
+                info->setDstCandidates(l, retTypeDesc->GetABIReturnRegs());
+            }
+            else if (varTypeIsFloating(registerType))
             {
 #ifdef _TARGET_X86_
                 // The return value will be on the X87 stack, and we will need to move it.
@@ -1689,10 +1712,11 @@ void Lowering::TreeNodeInfoInit(GenTree* stmt)
         }
 #endif //_TARGET_X86_
 
-        tree = next;
-
         // We need to be sure that we've set info->srcCount and info->dstCount appropriately
-        assert(info->dstCount < 2);
+        assert((info->dstCount < 2) ||
+               (tree->IsMultiRegCall() && info->dstCount == MAX_RET_REG_COUNT));
+
+        tree = next;
     }
 }
 
index e0fd5a2..dcf4536 100644 (file)
@@ -114,9 +114,30 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 */
 
-void lsraAssignRegToTree(GenTreePtr tree, regNumber reg)
+//--------------------------------------------------------------
+// lsraAssignRegToTree: Assign the given reg to tree node.
+//
+// Arguments:
+//    tree    -    Gentree node
+//    reg     -    register to be assigned
+//    regIdx  -    register idx, if tree is a multi-reg call node.
+//                 regIdx will be zero for single-reg result producing tree nodes.
+//
+// Return Value:
+//    None
+//
+void lsraAssignRegToTree(GenTreePtr tree, regNumber reg, unsigned regIdx)
 {
-    tree->gtRegNum  = reg;
+    if (regIdx == 0)
+    {
+        tree->gtRegNum = reg;
+    }
+    else
+    {
+        assert(tree->IsMultiRegCall());
+        GenTreeCall* call = tree->AsCall();
+        call->SetRegNumByIdx(reg, regIdx);
+    }
 }
 
 // allRegs represents a set of registers that can
@@ -137,6 +158,68 @@ regMaskTP LinearScan::allRegs(RegisterType rt)
         return availableIntRegs;
 }
 
+//--------------------------------------------------------------------------
+// allMultiRegCallNodeRegs: represents a set of registers that can be used
+// to allocate a multi-reg call node.
+//
+// Arguments:
+//    call   -  Multi-reg call node
+//
+// Return Value:
+//    Mask representing the set of available registers for multi-reg call 
+//    node.
+//
+// Note:
+// Multi-reg call node available regs = Bitwise-OR(allregs(GetReturnRegType(i)))
+// for all i=0..RetRegCount-1.
+regMaskTP LinearScan::allMultiRegCallNodeRegs(GenTreeCall* call)
+{
+    assert(call->HasMultiRegRetVal());
+
+    ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
+    regMaskTP resultMask = allRegs(retTypeDesc->GetReturnRegType(0));
+
+    unsigned count = retTypeDesc->GetReturnRegCount();
+    for (unsigned i = 1; i < count; ++i)
+    {
+        resultMask |= allRegs(retTypeDesc->GetReturnRegType(i));
+    }
+
+    return resultMask;
+}
+
+//--------------------------------------------------------------------------
+// allRegs: returns the set of registers that can accomodate the type of
+// given node.
+//
+// Arguments:
+//    tree   -  GenTree node
+//
+// Return Value:
+//    Mask representing the set of available registers for given tree
+//
+// Note: In case of multi-reg call node, the full set of registers must be
+// determined by looking at types of individual return register types.  
+// In this case, the registers may include registers from different register
+// sets and will not be limited to the actual ABI return registers.
+regMaskTP LinearScan::allRegs(GenTree* tree)
+{
+    regMaskTP resultMask;
+
+    // In case of multi-reg calls, allRegs is defined as
+    // Bitwise-Or(allRegs(GetReturnRegType(i)) for i=0..ReturnRegCount-1
+    if (tree->IsMultiRegCall())
+    {
+        resultMask = allMultiRegCallNodeRegs(tree->AsCall());
+    }
+    else
+    {
+        resultMask = allRegs(tree->TypeGet());
+    }
+
+    return resultMask;
+}
+
 regMaskTP LinearScan::allSIMDRegs()
 {
     return availableFloatRegs;
@@ -197,43 +280,6 @@ bool isSingleRegister(regMaskTP regMask)
     return (regMask != RBM_NONE && genMaxOneBit(regMask));
 }
 
-#ifdef DEBUG
-// TODO-Cleanup: Consider using a #include file with custom #defines for both defining
-// the enum as well as the string array
-const char * refTypeNames [RefTypeBound];
-const char* shortRefTypeNames[RefTypeBound];
-void initRefTypeNames()
-{
-    refTypeNames[RefTypeInvalid]  = "RefTypeInvalid";
-    refTypeNames[RefTypeDef]      = "RefTypeDef";
-    refTypeNames[RefTypeUse]      = "RefTypeUse";
-    refTypeNames[RefTypeKill]     = "RefTypeKill";
-    refTypeNames[RefTypeBB]       = "RefTypeBB";
-    refTypeNames[RefTypeFixedReg] = "RefTypeFixedReg";
-    refTypeNames[RefTypeParamDef] = "RefTypeParamDef";
-    refTypeNames[RefTypeDummyDef] = "RefTypeDummyDef";
-    refTypeNames[RefTypeExpUse]   = "RefTypeExpUse";
-    refTypeNames[RefTypeZeroInit] = "RefTypeZeroInit";
-    refTypeNames[RefTypeUpperVectorSaveDef] = "RefTypeUpperVectorSaveDef";
-    refTypeNames[RefTypeUpperVectorSaveUse] = "RefTypeUpperVectorSaveUse";
-    refTypeNames[RefTypeKillGCRefs] = "RefTypeKillGCRefs";
-
-    shortRefTypeNames[RefTypeInvalid]  = "Invl";
-    shortRefTypeNames[RefTypeDef]      = "Def ";
-    shortRefTypeNames[RefTypeUse]      = "Use ";
-    shortRefTypeNames[RefTypeKill]     = "Kill";
-    shortRefTypeNames[RefTypeBB]       = "BB  ";
-    shortRefTypeNames[RefTypeFixedReg] = "Fixd";
-    shortRefTypeNames[RefTypeParamDef] = "Parm";
-    shortRefTypeNames[RefTypeDummyDef] = "DDef";
-    shortRefTypeNames[RefTypeExpUse]   = "ExpU";
-    shortRefTypeNames[RefTypeZeroInit] = "Zero";
-    shortRefTypeNames[RefTypeUpperVectorSaveDef] = "UVSv";
-    shortRefTypeNames[RefTypeUpperVectorSaveUse] = "UVRs";
-    shortRefTypeNames[RefTypeKillGCRefs] = "KlGC";
-}
-#endif // DEBUG
-
 /*****************************************************************************
  * Inline functions for RegRecord
  *****************************************************************************/
@@ -317,8 +363,7 @@ LinearScan::newInterval(RegisterType theRegisterType)
     Interval *newInt = &intervals.back();
 
 #ifdef DEBUG
-    newInt->intervalIndex = intervalCount;
-    intervalCount++;
+    newInt->intervalIndex = static_cast<unsigned>(intervals.size() - 1);
 #endif // DEBUG
 
     DBEXEC(VERBOSE, newInt->dump());
@@ -331,9 +376,8 @@ LinearScan::newRefPositionRaw(LsraLocation nodeLocation, GenTree* treeNode, RefT
     refPositions.emplace_back(curBBNum, nodeLocation, treeNode, refType);
     RefPosition *newRP = &refPositions.back();
 #ifdef DEBUG
-    newRP->rpNum = refPositionCount;
+    newRP->rpNum = static_cast<unsigned>(refPositions.size() - 1);
 #endif // DEBUG
-    refPositionCount++;
     return newRP;
 }
 
@@ -635,30 +679,64 @@ LinearScan::associateRefPosWithInterval(RefPosition *rp)
     }
 }
 
-RefPosition *
-LinearScan::newRefPosition(
-    regNumber reg, LsraLocation theLocation,
-    RefType theRefType, GenTree * theTreeNode,
-    regMaskTP mask)
+//---------------------------------------------------------------------------
+// newRefPosition: allocate and initialize a new RefPosition.
+//
+// Arguments:
+//     reg             -  reg number that identifies RegRecord to be associated 
+//                        with this RefPosition
+//     theLocation     -  LSRA location of RefPosition
+//     theRefType      -  RefPosition type
+//     theTreeNode     -  GenTree node for which this RefPosition is created
+//     mask            -  Set of valid registers for this RefPosition
+//     multiRegIdx     -  register position if this RefPosition corresponds to a
+//                        multi-reg call node.
+//
+// Return Value:
+//     a new RefPosition
+//                       
+RefPosition*
+LinearScan::newRefPosition(regNumber reg, 
+                           LsraLocation theLocation,
+                           RefType theRefType, 
+                           GenTree* theTreeNode,
+                           regMaskTP mask)
 {
-    RefPosition *newRP = newRefPositionRaw(theLocation, theTreeNode, theRefType);
+    RefPositionnewRP = newRefPositionRaw(theLocation, theTreeNode, theRefType);
 
     newRP->setReg(getRegisterRecord(reg));
-
     newRP->registerAssignment = mask;
+
+    newRP->setMultiRegIdx(0);
+
     associateRefPosWithInterval(newRP);
 
     DBEXEC(VERBOSE, newRP->dump());
     return newRP;
 }
 
-
-
-RefPosition *
-LinearScan::newRefPosition(
-    Interval * theInterval, LsraLocation theLocation,
-    RefType theRefType, GenTree * theTreeNode,
-    regMaskTP mask)
+//---------------------------------------------------------------------------
+// newRefPosition: allocate and initialize a new RefPosition.
+//
+// Arguments:
+//     theInterval     -  interval to which RefPosition is associated with.
+//     theLocation     -  LSRA location of RefPosition
+//     theRefType      -  RefPosition type
+//     theTreeNode     -  GenTree node for which this RefPosition is created
+//     mask            -  Set of valid registers for this RefPosition
+//     multiRegIdx     -  register position if this RefPosition corresponds to a
+//                        multi-reg call node.
+//
+// Return Value:
+//     a new RefPosition
+//                       
+RefPosition*
+LinearScan::newRefPosition(Interval* theInterval, 
+                           LsraLocation theLocation,
+                           RefType theRefType, 
+                           GenTree* theTreeNode,
+                           regMaskTP mask,
+                           unsigned multiRegIdx /* = 0 */)
 {
 #ifdef DEBUG
     if (theInterval != nullptr && regType(theInterval->registerType) == FloatRegisterType)
@@ -686,12 +764,12 @@ LinearScan::newRefPosition(
     if (insertFixedRef)
     {
         regNumber physicalReg = genRegNumFromMask(mask);
-        RefPosition *pos = newRefPosition (physicalReg, theLocation,  RefTypeFixedReg, nullptr, mask);
+        RefPositionpos = newRefPosition (physicalReg, theLocation,  RefTypeFixedReg, nullptr, mask);
         assert(theInterval != nullptr);
         assert((allRegs(theInterval->registerType) & mask) != 0);
     }
 
-    RefPosition *newRP = newRefPositionRaw(theLocation, theTreeNode, theRefType);
+    RefPositionnewRP = newRefPositionRaw(theLocation, theTreeNode, theRefType);
 
     newRP->setInterval(theInterval);
 
@@ -712,6 +790,8 @@ LinearScan::newRefPosition(
 #endif // !_TARGET_AMD64_
     newRP->registerAssignment = mask;
 
+    newRP->setMultiRegIdx(multiRegIdx);
+
     associateRefPosWithInterval(newRP);
 
     DBEXEC(VERBOSE, newRP->dump());
@@ -879,10 +959,8 @@ LinearScan::LinearScan(Compiler * theCompiler)
     , refPositions(LinearScanMemoryAllocatorRefPosition(theCompiler))
 {
 #ifdef DEBUG
-    intervalCount = 0;
     maxNodeLocation = 0;
     activeRefPosition = nullptr;
-    initRefTypeNames();
 
     // Get the value of the environment variable that controls stress for register allocation
     lsraStressMask = JitConfig.JitStressRegs();
@@ -925,7 +1003,6 @@ LinearScan::LinearScan(Compiler * theCompiler)
     dumpTerse = (JitConfig.JitDumpTerseLsra() != 0);
 
 #endif // DEBUG
-    refPositionCount = 0;
     availableIntRegs = (RBM_ALLINT & ~compiler->codeGen->regSet.rsMaskResvd);
 #if ETW_EBP_FRAMED
     availableIntRegs &= ~RBM_FPBASE;
@@ -2422,8 +2499,7 @@ LinearScan::getKillSetForNode(GenTree* tree)
             case GenTreeBlkOp::BlkOpKindHelper:
                 killMask = compiler->compHelperCallKillSet(CORINFO_HELP_MEMCPY);
                 break;
-#ifdef _TARGET_AMD64_
-
+#ifdef _TARGET_XARCH_
             case GenTreeBlkOp::BlkOpKindRepInstr:
                 // rep movs kills RCX, RDI and RSI
                 killMask = RBM_RCX | RBM_RDI | RBM_RSI;
@@ -2447,14 +2523,10 @@ LinearScan::getKillSetForNode(GenTree* tree)
             case GenTreeBlkOp::BlkOpKindHelper:
                 killMask = compiler->compHelperCallKillSet(CORINFO_HELP_MEMSET);
                 break;
-#ifdef _TARGET_AMD64_
+#ifdef _TARGET_XARCH_
             case GenTreeBlkOp::BlkOpKindRepInstr:
                 // rep stos kills RCX and RDI
-                killMask = RBM_RDI;
-                if (!initBlkNode->InitVal()->IsCnsIntOrI())
-                {
-                    killMask |= RBM_RCX;
-                }
+                killMask = RBM_RCX | RBM_RDI;
                 break;
 #else
             case GenTreeBlkOp::BlkOpKindRepInstr:
@@ -2941,7 +3013,7 @@ LinearScan::buildRefPositionsForNode(GenTree *tree,
                 noPush = true;
             }
 
-            assert(consume <= 1);
+            assert(consume <= MAX_RET_REG_COUNT);
             if (consume == 1)
             {
                 Interval * srcInterval = stack->TopRef().interval;
@@ -2985,7 +3057,15 @@ LinearScan::buildRefPositionsForNode(GenTree *tree,
         // This is the case for dead nodes that occur after
         // tree rationalization
         // TODO-Cleanup: Identify and remove these dead nodes prior to register allocation.
-        produce = 1;
+        if (tree->IsMultiRegCall())
+        {
+            // In case of multi-reg call node, produce = number of return registers
+            produce = tree->AsCall()->GetReturnTypeDesc()->GetReturnRegCount();
+        }
+        else
+        {
+            produce = 1;
+        }
     }
 
 #ifdef DEBUG
@@ -3049,14 +3129,17 @@ LinearScan::buildRefPositionsForNode(GenTree *tree,
 
         // for interstitial tree temps, a use is always last and end;
         // this is  set by default in newRefPosition
-        GenTree * useNode = locInfo.treeNode;
+        GenTree* useNode = locInfo.treeNode;
         assert(useNode != nullptr);
         var_types type = useNode->TypeGet();
         regMaskTP candidates = getUseCandidates(useNode);
-        Interval *i = locInfo.interval;
+        Interval* i = locInfo.interval;
+        unsigned multiRegIdx = locInfo.multiRegIdx;
 
 #ifdef FEATURE_SIMD
-        if (tree->OperIsLocalStore() && varDefInterval == nullptr)
+        // In case of multi-reg call store to a local, there won't be any mismatch of
+        // use candidates with the type of the tree node.
+        if (tree->OperIsLocalStore() && varDefInterval == nullptr && !useNode->IsMultiRegCall())
         {
             // This is a non-candidate store.  If this is a SIMD type, the use candidates
             // may not match the type of the tree node.  If that is the case, change the
@@ -3110,12 +3193,12 @@ LinearScan::buildRefPositionsForNode(GenTree *tree,
                 regNumber physicalReg = genRegNumFromMask(fixedAssignment);
                 RefPosition *pos = newRefPosition (physicalReg, currentLoc,  RefTypeFixedReg, nullptr, fixedAssignment);
             }
-            pos = newRefPosition(i, currentLoc, RefTypeUse, useNode, allRegs(i->registerType));
+            pos = newRefPosition(i, currentLoc, RefTypeUse, useNode, allRegs(i->registerType), multiRegIdx);
             pos->registerAssignment = candidates;
         }
         else
         {
-            pos = newRefPosition(i, currentLoc, RefTypeUse, useNode, candidates);
+            pos = newRefPosition(i, currentLoc, RefTypeUse, useNode, candidates, multiRegIdx);
         }
         if (delayRegFree)
         {
@@ -3130,7 +3213,6 @@ LinearScan::buildRefPositionsForNode(GenTree *tree,
     buildInternalRegisterUsesForNode(tree, currentLoc, internalRefs, internalCount);
 
     RegisterType registerType = getDefType(tree);
-
     regMaskTP candidates = getDefCandidates(tree);
     regMaskTP useCandidates = getUseCandidates(tree);
 
@@ -3145,52 +3227,51 @@ LinearScan::buildRefPositionsForNode(GenTree *tree,
     }
 #endif // DEBUG
 
-    int targetRegs = produce;
-
 #if defined(_TARGET_AMD64_)
-    assert(produce <= 1);
+    // Multi-reg call node is the only node that could produce multi-reg value
+    assert(produce <= 1 || (tree->IsMultiRegCall() && produce == MAX_RET_REG_COUNT));
 #elif defined(_TARGET_ARM_)
     assert(!varTypeIsMultiReg(tree->TypeGet()));
 #endif // _TARGET_xxx_
 
+    // Add kill positions before adding def positions
+    buildKillPositionsForNode(tree, currentLoc + 1);
+
 #if FEATURE_PARTIAL_SIMD_CALLEE_SAVE
     VARSET_TP       VARSET_INIT_NOCOPY(liveLargeVectors, VarSetOps::UninitVal());
-#endif // FEATURE_PARTIAL_SIMD_CALLEE_SAVE
-
-    // push defs
-    if (produce == 0)
+    if (RBM_FLT_CALLEE_SAVED != RBM_NONE)
     {
-        buildKillPositionsForNode(tree, currentLoc + 1);
-
-#if FEATURE_PARTIAL_SIMD_CALLEE_SAVE
-        if (RBM_FLT_CALLEE_SAVED != RBM_NONE)
-        {
-            // Build RefPositions for saving any live large vectors.
-            // This must be done after the kills, so that we know which large vectors are still live.
-            VarSetOps::AssignNoCopy(compiler, liveLargeVectors, buildUpperVectorSaveRefPositions(tree, currentLoc));
-        }
+        // Build RefPositions for saving any live large vectors.
+        // This must be done after the kills, so that we know which large vectors are still live.
+        VarSetOps::AssignNoCopy(compiler, liveLargeVectors, buildUpperVectorSaveRefPositions(tree, currentLoc));
+    }
 #endif // FEATURE_PARTIAL_SIMD_CALLEE_SAVE
+    
+    ReturnTypeDesc* retTypeDesc = nullptr;
+    bool isMultiRegCall = tree->IsMultiRegCall();
+    if (isMultiRegCall)
+    {
+        retTypeDesc = tree->AsCall()->GetReturnTypeDesc();
+        assert((int)genCountBits(candidates) == produce);
+        assert(candidates == retTypeDesc->GetABIReturnRegs());
     }
 
+    // push defs
+    LsraLocation defLocation = currentLoc + 1;
     for (int i=0; i < produce; i++)
-    {
-        LsraLocation lastDefLocation = currentLoc + 1;
+    {        
+        regMaskTP currCandidates = candidates;
+        Interval *interval = varDefInterval;
 
-        // If this is the last def add the phys reg defs
-        bool generatedKills = false;
-        if (i == produce-1) 
+        // In case of multi-reg call node, registerType is given by
+        // the type of ith position return register.
+        if (isMultiRegCall)
         {
-            generatedKills = buildKillPositionsForNode(tree, lastDefLocation);
-
-#if FEATURE_PARTIAL_SIMD_CALLEE_SAVE
-            // Build RefPositions for saving any live large vectors.
-            // This must be done after the kills, so that we know which large vectors are still live.
-            VarSetOps::AssignNoCopy(compiler, liveLargeVectors, buildUpperVectorSaveRefPositions(tree, currentLoc));
-#endif // FEATURE_PARTIAL_SIMD_CALLEE_SAVE
+            registerType = retTypeDesc->GetReturnRegType((unsigned)i);
+            currCandidates = genRegMask(retTypeDesc->GetABIReturnReg(i));
+            useCandidates = allRegs(registerType);
         }
-        regMaskTP currCandidates = candidates;
 
-        Interval *interval = varDefInterval;
         if (interval == nullptr)
         {
             // Make a new interval
@@ -3204,10 +3285,12 @@ LinearScan::buildRefPositionsForNode(GenTree *tree,
                 assert(!tree->IsReuseRegVal());
                 interval->isConstant = true;
             }
+
             if ((currCandidates & useCandidates) != RBM_NONE)
             {
                 interval->updateRegisterPreferences(currCandidates & useCandidates);
             }
+
             if (isSpecialPutArg)
             {
                 interval->isSpecialPutArg = true;
@@ -3227,11 +3310,10 @@ LinearScan::buildRefPositionsForNode(GenTree *tree,
         // but not push it
         if (!noPush)
         {
-            stack->Push(LocationInfo(lastDefLocation, interval, tree));
+            stack->Push(LocationInfo(defLocation, interval, tree, (unsigned) i));
         }
 
-        LsraLocation defLocation = (i == produce-1) ? lastDefLocation : currentLoc;
-        RefPosition *pos = newRefPosition(interval, defLocation, defRefType, defNode, currCandidates);
+        RefPosition* pos = newRefPosition(interval, defLocation, defRefType, defNode, currCandidates, (unsigned)i);
         if (info.isLocalDefUse)
         {
             pos->isLocalDefUse = true;
@@ -3241,6 +3323,7 @@ LinearScan::buildRefPositionsForNode(GenTree *tree,
         interval->updateRegisterPreferences(currCandidates);
         interval->updateRegisterPreferences(useCandidates);
     }
+
 #if FEATURE_PARTIAL_SIMD_CALLEE_SAVE
     buildUpperVectorRestoreRefPositions(tree, currentLoc, liveLargeVectors);
 #endif // FEATURE_PARTIAL_SIMD_CALLEE_SAVE
@@ -6677,7 +6760,7 @@ LinearScan::resolveLocalRef(GenTreePtr treeNode, RefPosition * currentRefPositio
             if (!currentRefPosition->isFixedRegRef || currentRefPosition->moveReg)
             {
                 // This is the second case, where we need to generate a copy
-                insertCopyOrReload(treeNode, currentRefPosition); 
+                insertCopyOrReload(treeNode, currentRefPosition->getMultiRegIdx(), currentRefPosition); 
             }
         }
         else
@@ -6739,7 +6822,7 @@ LinearScan::resolveLocalRef(GenTreePtr treeNode, RefPosition * currentRefPositio
 void
 LinearScan::writeRegisters(RefPosition *currentRefPosition, GenTree *tree)
 {
-    lsraAssignRegToTree(tree, currentRefPosition->assignedReg());
+    lsraAssignRegToTree(tree, currentRefPosition->assignedReg(), currentRefPosition->getMultiRegIdx());
 }
 
 //------------------------------------------------------------------------ 
@@ -6748,8 +6831,10 @@ LinearScan::writeRegisters(RefPosition *currentRefPosition, GenTree *tree)
 //   than the one it was spilled from (GT_RELOAD).
 //
 // Arguments: 
-//    tree              - This is the node to reload. Insert the reload node between this node and its parent.
-//    spillRefPosition  - The RefPosition of the spill. spillRefPosition->nextRefPosition is the RefPosition of the reload.
+//    tree              - This is the node to copy or reload. 
+//                        Insert copy or reload node between this node and its parent.
+//    multiRegIdx       - register position of tree node for which copy or reload is needed.
+//    refPosition       - The RefPosition at which copy or reload will take place.
 //
 // Notes:
 //    The GT_COPY or GT_RELOAD will be inserted in the proper spot in execution order where the reload is to occur.
@@ -6795,15 +6880,14 @@ LinearScan::writeRegisters(RefPosition *currentRefPosition, GenTree *tree)
 // used if we reload to the same register. Normally, though, in that case we just mark the node with GTF_SPILLED,
 // and the unspilling code automatically reuses the same register, and does the reload when it notices that flag
 // when considering a node's operands.
-
+//
 void
-LinearScan::insertCopyOrReload(GenTreePtr tree, RefPosition* refPosition)
-{
+LinearScan::insertCopyOrReload(GenTreePtr tree, unsigned multiRegIdx, RefPosition* refPosition)
+{  
     GenTreePtr* parentChildPointer = nullptr;
     GenTreePtr parent = tree->gtGetParent(&parentChildPointer);
     noway_assert(parent != nullptr && parentChildPointer != nullptr);
 
-    // Create the new node, with "tree" as its only child.
     genTreeOps  oper;
     if (refPosition->reload)
     {
@@ -6814,41 +6898,65 @@ LinearScan::insertCopyOrReload(GenTreePtr tree, RefPosition* refPosition)
         oper = GT_COPY;
     }
 
-    var_types treeType = tree->TypeGet();
+    // If the parent is a reload/copy node, then tree must be a multi-reg call node
+    // that has already had one of its registers spilled. This is Because multi-reg
+    // call node is the only node whose RefTypeDef positions get independently
+    // spilled or reloaded.  It is possible that one of its RefTypeDef position got
+    // spilled and the next use of it requires it to be in a different register.
+    //
+    // In this case set the ith position reg of reload/copy node to the reg allocated
+    // for copy/reload refPosition.  Essentially a copy/reload node will have a reg
+    // for each multi-reg position of its child. If there is a valid reg in ith 
+    // position of GT_COPY or GT_RELOAD node then the corresponding result of its
+    // child needs to be copied or reloaded to that reg.
+    if (parent->IsCopyOrReload())
+    {
+        noway_assert(parent->OperGet() == oper);
+        noway_assert(tree->IsMultiRegCall());
+        GenTreeCall* call = tree->AsCall();
+        GenTreeCopyOrReload* copyOrReload = parent->AsCopyOrReload();
+        noway_assert(copyOrReload->GetRegNumByIdx(multiRegIdx) == REG_NA);
+        copyOrReload->SetRegNumByIdx(refPosition->assignedReg(), multiRegIdx);
+    }
+    else
+    {
+        // Create the new node, with "tree" as its only child.    
+        var_types treeType = tree->TypeGet();
 
 #ifdef FEATURE_SIMD
-    // Check to see whether we need to move to a different register set.
-    // This currently only happens in the case of SIMD vector types that are small enough (pointer size)
-    // that they must be passed & returned in integer registers.
-    // 'treeType' is the type of the register we are moving FROM,
-    // and refPosition->registerAssignment is the mask for the register we are moving TO.
-    // If they don't match, we need to reverse the type for the "move" node.
+        // Check to see whether we need to move to a different register set.
+        // This currently only happens in the case of SIMD vector types that are small enough (pointer size)
+        // that they must be passed & returned in integer registers.
+        // 'treeType' is the type of the register we are moving FROM,
+        // and refPosition->registerAssignment is the mask for the register we are moving TO.
+        // If they don't match, we need to reverse the type for the "move" node.
 
-    if ((allRegs(treeType) & refPosition->registerAssignment) == 0)
-    {
-        treeType = (useFloatReg(treeType)) ? TYP_I_IMPL : TYP_SIMD8;
-    }
+        if ((allRegs(treeType) & refPosition->registerAssignment) == 0)
+        {
+            treeType = (useFloatReg(treeType)) ? TYP_I_IMPL : TYP_SIMD8;
+        }
 #endif // FEATURE_SIMD
 
-    GenTreePtr newNode = compiler->gtNewOperNode(oper, treeType, tree);
-    assert(refPosition->registerAssignment != RBM_NONE);
-    newNode->CopyCosts(tree);
-    newNode->gtRegNum = refPosition->assignedReg();
-    newNode->gtLsraInfo.isLsraAdded = true;
-    newNode->gtLsraInfo.isLocalDefUse = false;
-    if (refPosition->copyReg)
-    {
-        // This is a TEMPORARY copy
-        assert(isCandidateLocalRef(tree));
-        newNode->gtFlags |= GTF_VAR_DEATH;
-    }
+        GenTreeCopyOrReload* newNode = new(compiler, oper) GenTreeCopyOrReload(oper, treeType, tree);
+        assert(refPosition->registerAssignment != RBM_NONE);
+        newNode->CopyCosts(tree);
+        newNode->SetRegNumByIdx(refPosition->assignedReg(), multiRegIdx);
+        newNode->gtLsraInfo.isLsraAdded = true;
+        newNode->gtLsraInfo.isLocalDefUse = false;
+        if (refPosition->copyReg)
+        {
+            // This is a TEMPORARY copy
+            assert(isCandidateLocalRef(tree));
+            newNode->gtFlags |= GTF_VAR_DEATH;
+        }
 
-    // Replace tree in the parent node.
-    *parentChildPointer = newNode;
+        // Replace tree in the parent node.
+        *parentChildPointer = newNode;
 
-    // we insert this directly after the spilled node.  it does not reload at that point but
-    // just updates registers
-    tree->InsertAfterSelf(newNode);
+        // we insert this directly after the spilled node.  it does not reload at that point but
+        // just updates registers
+        tree->InsertAfterSelf(newNode);
+    }
 }
 
 #if FEATURE_PARTIAL_SIMD_CALLEE_SAVE
@@ -7060,7 +7168,19 @@ LinearScan::updateMaxSpill(RefPosition* refPosition)
                     treeNode = interval->firstRefPosition->treeNode;
                 }
                 assert(treeNode != nullptr);
-                typ = compiler->tmpNormalizeType(treeNode->TypeGet());
+
+                // In case of multi-reg call nodes, we need to use the type
+                // of the return register given by multiRegIdx of the refposition.
+                if (treeNode->IsMultiRegCall())
+                {
+                    ReturnTypeDesc* retTypeDesc = treeNode->AsCall()->GetReturnTypeDesc();
+                    typ = retTypeDesc->GetReturnRegType(refPosition->getMultiRegIdx());                        
+                }
+                else
+                {
+                    typ = treeNode->TypeGet();
+                }
+                typ = compiler->tmpNormalizeType(typ);
             }
 
             if (refPosition->spillAfter && !refPosition->reload)
@@ -7383,22 +7503,33 @@ LinearScan::resolveRegisters()
                         if (currentRefPosition->spillAfter)
                         {
                             treeNode->gtFlags |= GTF_SPILL;
+
                             // If this is a constant interval that is reusing a pre-existing value, we actually need
                             // to generate the value at this point in order to spill it.
                             if (treeNode->IsReuseRegVal())
                             {
                                 treeNode->ResetReuseRegVal();
                             }
+
+                            // In case of multi-reg call node, also set spill flag on the 
+                            // register specified by multi-reg index of current RefPosition.
+                            // Note that the spill flag on treeNode indicates that one or
+                            // more its allocated registers are in that state.
+                            if (treeNode->IsMultiRegCall())
+                            {
+                                GenTreeCall* call = treeNode->AsCall();
+                                call->SetRegSpillFlagByIdx(GTF_SPILL, currentRefPosition->getMultiRegIdx());
+                            }
                         }
 
                         // If the value is reloaded or moved to a different register, we need to insert
                         // a node to hold the register to which it should be reloaded
-                        RefPosition * nextRefPosition = currentRefPosition->nextRefPosition;
+                        RefPosition* nextRefPosition = currentRefPosition->nextRefPosition;
                         assert(nextRefPosition != nullptr);
                         if (INDEBUG(alwaysInsertReload() ||)
                             nextRefPosition->assignedReg() != currentRefPosition->assignedReg())
                         {
-                            insertCopyOrReload(treeNode, nextRefPosition);
+                            insertCopyOrReload(treeNode, currentRefPosition->getMultiRegIdx(), nextRefPosition);
                         }
                     }
 
@@ -7665,7 +7796,7 @@ LinearScan::insertMove(BasicBlock * block,
     }
     else
     {
-        top = compiler->gtNewOperNode(GT_COPY, varDsc->TypeGet(), src);
+        top = new(compiler, GT_COPY) GenTreeCopyOrReload(GT_COPY, varDsc->TypeGet(), src);
         // This is the new home of the lclVar - indicate that by clearing the GTF_VAR_DEATH flag.
         // Note that if src is itself a lastUse, this will have no effect.
         top->gtFlags &= ~(GTF_VAR_DEATH);
@@ -8744,6 +8875,28 @@ void dumpRegMask(regMaskTP regs)
     }
 }
 
+static const char* getRefTypeName(RefType refType)
+{
+    switch (refType)
+    {
+#define DEF_REFTYPE(memberName, memberValue, shortName) case memberName: return #memberName;
+#include "lsra_reftypes.h"
+#undef DEF_REFTYPE
+    default: return nullptr;
+    }
+}
+
+static const char* getRefTypeShortName(RefType refType)
+{
+    switch (refType)
+    {
+#define DEF_REFTYPE(memberName, memberValue, shortName) case memberName: return shortName;
+#include "lsra_reftypes.h"
+#undef DEF_REFTYPE
+    default: return nullptr;
+    }
+}
+
 void RefPosition::dump()
 {
     printf("<RefPosition #%-3u @%-3u", rpNum, nodeLocation);
@@ -8751,7 +8904,7 @@ void RefPosition::dump()
     if (nextRefPosition)
         printf(" ->#%-3u", nextRefPosition->rpNum);
 
-    printf(" %s ", refTypeNames[refType]);
+    printf(" %s ", getRefTypeName(refType));
 
     if (this->isPhysRegRef)
         this->getReg()->tinyDump();
@@ -9758,7 +9911,7 @@ LinearScan::dumpRegRecordHeader()
 
     // First, determine the width of each register column (which holds a reg name in the
     // header, and an interval name in each subsequent row).
-    int intervalNumberWidth = (int)log10((double)intervalCount) + 1;
+    int intervalNumberWidth = (int)log10((double)intervals.size()) + 1;
     // The regColumnWidth includes the identifying character (I or V) and an 'i' or 'a' (inactive or active)
     regColumnWidth = intervalNumberWidth + 2;
     if (regColumnWidth < 4)
@@ -9781,9 +9934,9 @@ LinearScan::dumpRegRecordHeader()
 
     maxNodeLocation = (maxNodeLocation == 0) ? 1: maxNodeLocation;  // corner case of a method with an infinite loop without any gentree nodes
     assert(maxNodeLocation >= 1);
-    assert(refPositionCount >= 1);
+    assert(refPositions.size() >= 1);
     int nodeLocationWidth = (int)log10((double)maxNodeLocation) + 1;
-    int refPositionWidth  = (int)log10((double)refPositionCount) + 1;
+    int refPositionWidth  = (int)log10((double)refPositions.size()) + 1;
     int refTypeInfoWidth = 4 /*TYPE*/ + 2 /* last-use and delayed */ + 1 /* space */;
     int locationAndRPNumWidth = nodeLocationWidth + 2 /* .# */ + refPositionWidth + 1 /* space */;
     int shortRefPositionDumpWidth = locationAndRPNumWidth +
@@ -10013,20 +10166,20 @@ LinearScan::dumpRefPositionShort(RefPosition* refPosition, BasicBlock* currentBl
                 delayChar = 'D';
             }
         }
-        printf("  %s%c%c ", shortRefTypeNames[refPosition->refType], lastUseChar, delayChar);
+        printf("  %s%c%c ", getRefTypeShortName(refPosition->refType), lastUseChar, delayChar);
     }
     else if (refPosition->isPhysRegRef)
     {
         RegRecord* regRecord = refPosition->getReg();
         printf(regNameFormat, getRegName(regRecord->regNum));
-        printf(" %s   ", shortRefTypeNames[refPosition->refType]);
+        printf(" %s   ", getRefTypeShortName(refPosition->refType));
     }
     else
     {
         assert(refPosition->refType == RefTypeKillGCRefs);
         // There's no interval or reg name associated with this.
         printf(regNameFormat, "   ");
-        printf(" %s   ", shortRefTypeNames[refPosition->refType]);
+        printf(" %s   ", getRefTypeShortName(refPosition->refType));
     }
 }
 
@@ -10354,7 +10507,6 @@ LinearScan::verifyFinalAllocation()
             break;
 
         case RefTypeInvalid:
-        case RefTypeBound:
             // for these 'currentRefPosition->refType' values, No action to take
             break;
         }
index f127064..37e6ac5 100644 (file)
@@ -42,11 +42,22 @@ regMaskTP calleeSaveRegs(RegisterType rt)
 struct LocationInfo
 {
     LsraLocation  loc;
-    Interval    * interval;
-    GenTree     * treeNode;
-
-    LocationInfo(LsraLocation l, Interval *i, GenTree *t)
-    : loc(l), interval(i), treeNode(t) {}
+    
+    // Reg Index in case of multi-reg result producing call node.
+    // Indicates the position of the register that this location refers to.
+    // The max bits needed is based on max value of MAX_RET_REG_COUNT value
+    // across all targets and that happens 4 on on Arm.  Hence index value
+    // would be 0..MAX_RET_REG_COUNT-1. 
+    unsigned      multiRegIdx : 2;
+
+    Interval*     interval;
+    GenTree*      treeNode;
+
+    LocationInfo(LsraLocation l, Interval* i, GenTree* t, unsigned regIdx = 0)
+    : loc(l), multiRegIdx(regIdx), interval(i), treeNode(t)
+    {
+        assert(multiRegIdx == regIdx);
+    }
 
     // default constructor for data structures
     LocationInfo() {}
@@ -66,20 +77,9 @@ struct LsraBlockInfo
 // The low order 2 bits will be 1 for defs, and 2 for uses
 enum RefType : unsigned char
 {
-    RefTypeInvalid             = 0x00,
-    RefTypeDef                 = 0x01,
-    RefTypeUse                 = 0x02,
-    RefTypeKill                = 0x04,
-    RefTypeBB                  = 0x08,
-    RefTypeFixedReg            = 0x10,
-    RefTypeExpUse              = (0x20 | RefTypeUse),
-    RefTypeParamDef            = (0x10 | RefTypeDef),
-    RefTypeDummyDef            = (0x20 | RefTypeDef),
-    RefTypeZeroInit            = (0x30 | RefTypeDef),
-    RefTypeUpperVectorSaveDef  = (0x40 | RefTypeDef),
-    RefTypeUpperVectorSaveUse  = (0x40 | RefTypeUse),
-    RefTypeKillGCRefs          = 0x80,
-    RefTypeBound,
+#define DEF_REFTYPE(memberName, memberValue, shortName) memberName = memberValue,
+#include "lsra_reftypes.h"
+#undef DEF_REFTYPE
 };
 
 // position in a block (for resolution)
@@ -377,7 +377,7 @@ public:
     // Insert a copy in the case where a tree node value must be moved to a different
     // register at the point of use, or it is reloaded to a different register
     // than the one it was spilled from
-    void            insertCopyOrReload(GenTreePtr tree, RefPosition* refPosition);
+    void            insertCopyOrReload(GenTreePtr tree, unsigned multiRegIdx, RefPosition* refPosition);
 
 #if FEATURE_PARTIAL_SIMD_CALLEE_SAVE
     // Insert code to save and restore the upper half of a vector that lives
@@ -658,6 +658,8 @@ private:
                                               LsraLocation currentLoc);
 
     regMaskTP       allRegs(RegisterType rt);
+    regMaskTP       allRegs(GenTree* tree);
+    regMaskTP       allMultiRegCallNodeRegs(GenTreeCall* tree);
     regMaskTP       allSIMDRegs();
     regMaskTP       internalFloatRegCandidates();
 
@@ -722,12 +724,17 @@ private:
 
     RefPosition *   newRefPositionRaw(LsraLocation nodeLocation, GenTree* treeNode, RefType refType);
 
-    RefPosition *   newRefPosition(Interval * theInterval, LsraLocation theLocation,
-                                   RefType theRefType, GenTree * theTreeNode,
-                                   regMaskTP mask);
-
-    RefPosition *   newRefPosition(regNumber reg, LsraLocation theLocation,
-                                   RefType theRefType, GenTree * theTreeNode,
+    RefPosition*    newRefPosition(Interval* theInterval, 
+                                   LsraLocation theLocation,
+                                   RefType theRefType, 
+                                   GenTree* theTreeNode,
+                                   regMaskTP mask,
+                                   unsigned multiRegIdx = 0);
+
+    RefPosition*    newRefPosition(regNumber reg, 
+                                   LsraLocation theLocation,
+                                   RefType theRefType, 
+                                   GenTree* theTreeNode,
                                    regMaskTP mask);
 
     void applyCalleeSaveHeuristics(RefPosition* rp);
@@ -942,13 +949,10 @@ private:
     }
 
 #ifdef DEBUG
-    unsigned int        intervalCount;
     // This is used for dumping
     RefPosition*        activeRefPosition;
 #endif // DEBUG
 
-    unsigned int        refPositionCount;
-
     IntervalList        intervals;
 
     RegRecord           physRegs[REG_COUNT];
@@ -1274,6 +1278,7 @@ public:
         , nodeLocation(nodeLocation)
         , registerAssignment(RBM_NONE)
         , refType(refType)
+        , multiRegIdx(0)
         , lastUse(false)
         , reload(false)
         , spillAfter(false)
@@ -1334,6 +1339,21 @@ public:
                );
     }
 
+    // Used by RefTypeDef/Use positions of a multi-reg call node.
+    // Indicates the position of the register that this ref position refers to.
+    // The max bits needed is based on max value of MAX_RET_REG_COUNT value
+    // across all targets and that happens 4 on on Arm.  Hence index value
+    // would be 0..MAX_RET_REG_COUNT-1. 
+    unsigned        multiRegIdx  : 2;
+
+    void            setMultiRegIdx(unsigned idx)
+    {
+        multiRegIdx = idx;
+        assert(multiRegIdx == idx);
+    }
+
+    unsigned        getMultiRegIdx() { return multiRegIdx;  }
+
     // Last Use - this may be true for multiple RefPositions in the same Interval
     bool            lastUse      : 1;
 
diff --git a/src/jit/lsra_reftypes.h b/src/jit/lsra_reftypes.h
new file mode 100644 (file)
index 0000000..20780bd
--- /dev/null
@@ -0,0 +1,21 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+//  memberName - enum member name
+//  memberValue - enum member value
+//  shortName - short name string
+//  DEF_REFTYPE(memberName               , memberValue        , shortName )
+    DEF_REFTYPE(RefTypeInvalid           , 0x00               , "Invl"    )
+    DEF_REFTYPE(RefTypeDef               , 0x01               , "Def "    )
+    DEF_REFTYPE(RefTypeUse               , 0x02               , "Use "    )
+    DEF_REFTYPE(RefTypeKill              , 0x04               , "Kill"    )
+    DEF_REFTYPE(RefTypeBB                , 0x08               , "BB  "    )
+    DEF_REFTYPE(RefTypeFixedReg          , 0x10               , "Fixd"    )
+    DEF_REFTYPE(RefTypeExpUse            , (0x20 | RefTypeUse), "ExpU"    )
+    DEF_REFTYPE(RefTypeParamDef          , (0x10 | RefTypeDef), "Parm"    )
+    DEF_REFTYPE(RefTypeDummyDef          , (0x20 | RefTypeDef), "DDef"    )
+    DEF_REFTYPE(RefTypeZeroInit          , (0x30 | RefTypeDef), "Zero"    )
+    DEF_REFTYPE(RefTypeUpperVectorSaveDef, (0x40 | RefTypeDef), "UVSv"    )
+    DEF_REFTYPE(RefTypeUpperVectorSaveUse, (0x40 | RefTypeUse), "UVRs"    )
+    DEF_REFTYPE(RefTypeKillGCRefs        , 0x80               , "KlGC"    )
index d32f6f8..2dbadfc 100644 (file)
@@ -2696,12 +2696,12 @@ GenTreeCall* Compiler::fgMorphArgs(GenTreeCall* callNode)
         // convention for x86/SSE.
         if (!lateArgsComputed)
         {
-            if (call->IsUnmanaged())
+            if (call->IsUnmanaged() && !opts.ShouldUsePInvokeHelpers())
             {
                 assert(!call->gtCallCookie);
                 // Add a conservative estimate of the stack size in a special parameter (r11) at the call site.
                 // It will be used only on the intercepted-for-host code path to copy the arguments.             
-                
+
                 GenTree* cns = new (this, GT_CNS_INT) GenTreeIntCon(TYP_I_IMPL, fgEstimateCallStackSize(call));
                 call->gtCallArgs = gtNewListNode(cns, call->gtCallArgs);
                 NonStandardArg nsa = {REG_PINVOKE_COOKIE_PARAM, cns};
@@ -2868,7 +2868,6 @@ GenTreeCall* Compiler::fgMorphArgs(GenTreeCall* callNode)
             maxRegArgs++;
     }
 
-#if INLINE_NDIRECT
     if (call->IsUnmanaged())
     {
         noway_assert(intArgRegNum == 0);
@@ -2889,7 +2888,6 @@ GenTreeCall* Compiler::fgMorphArgs(GenTreeCall* callNode)
         if (callHasRetBuffArg)
             maxRegArgs++;
     }
-#endif // INLINE_NDIRECT
 #endif // _TARGET_X86_
 
     /* Morph the user arguments */
@@ -6217,30 +6215,31 @@ bool                Compiler::fgCanFastTailCall(GenTreeCall* callee)
             // Get the size of the struct and see if it is register passable.
             if (argx->OperGet() == GT_OBJ)
             {
-#ifdef _TARGET_AMD64_
+#if defined(_TARGET_AMD64_) || defined(_TARGET_ARM64_)
 
                 unsigned typeSize = 0;
                 hasMultiByteArgs = !VarTypeIsMultiByteAndCanEnreg(argx->TypeGet(), argx->gtObj.gtClass, &typeSize, false);
 
-#if defined(FEATURE_UNIX_AMD64_STRUCT_PASSING)
-                // On System V the args could be a 2 eightbyte struct that is passed in two registers.
+#if defined(FEATURE_UNIX_AMD64_STRUCT_PASSING) || defined(_TARGET_ARM64_)
+                // On System V/arm64 the args could be a 2 eightbyte struct that is passed in two registers.
                 // Account for the second eightbyte in the nCalleeArgs.
-                // TODO-CQ-Amd64-Unix:  Structs of size between 9 to 16 bytes are conservatively estimated
-                //                      as two args, since they need two registers. Whereas nCallerArgs is
-                //                      counting such an arg as one.This would mean we will not be optimizing 
-                //                      certain calls  though technically possible.
+                // https://github.com/dotnet/coreclr/issues/2666
+                // TODO-CQ-Amd64-Unix/arm64:  Structs of size between 9 to 16 bytes are conservatively estimated
+                //                            as two args, since they need two registers whereas nCallerArgs is
+                //                            counting such an arg as one. This would mean we will not be optimizing
+                //                            certain calls though technically possible.
 
                 if (typeSize > TARGET_POINTER_SIZE)
                 {
                     unsigned extraArgRegsToAdd = (typeSize / TARGET_POINTER_SIZE);
                     nCalleeArgs += extraArgRegsToAdd;
                 }
-#endif // defined(FEATURE_UNIX_AMD64_STRUCT_PASSING)
+#endif // FEATURE_UNIX_AMD64_STRUCT_PASSING || _TARGET_ARM64_
 
 #else
                 assert(!"Target platform ABI rules regarding passing struct type args in registers");
                 unreached();
-#endif //_TARGET_AMD64_
+#endif //_TARGET_AMD64_ || _TARGET_ARM64_
 
             }
             else
@@ -6962,6 +6961,14 @@ GenTreePtr          Compiler::fgMorphCall(GenTreeCall* call)
                     // in Stublinkerx86.cpp.
                     szFailReason = "Method with non-standard args passed in callee trash register cannot be tail called via helper";
                 }
+#ifdef _TARGET_ARM64_
+                else
+                {
+                    // NYI - TAILCALL_RECURSIVE/TAILCALL_HELPER.
+                    // So, bail out if we can't make fast tail call.
+                    szFailReason = "Non-qualified fast tail call";
+                }
+#endif
 #endif //LEGACY_BACKEND
             }
         }
@@ -12593,7 +12600,7 @@ bool Compiler::fgShouldUseMagicNumberDivide(GenTreeOp* tree)
         return false;
 
     // codegen will expand these
-    if (isPow2(cons))
+    if (cons == SSIZE_T_MIN || isPow2(abs(cons)))
         return false;
 
     // someone else will fold this away, so don't make it complicated for them
@@ -14707,12 +14714,10 @@ void                Compiler::fgSetOptions()
         codeGen->setFramePointerRequiredGCInfo(true);
     }
 
-#if INLINE_NDIRECT
     if (info.compCallUnmanaged)
     {
         codeGen->setFramePointerRequired(true);  // Setup of Pinvoke frame currently requires an EBP style frame
     }
-#endif
 
     if (info.compPublishStubParam)
     {
@@ -15555,43 +15560,54 @@ void                Compiler::fgPromoteStructs()
     //
 
     lvaStructPromotionInfo structPromotionInfo;
+    bool tooManyLocals = false;
 
     for (unsigned lclNum = 0;
-        lclNum < startLvaCount;
-        lclNum++)
+         lclNum < startLvaCount;
+         lclNum++)
     {
+        // Whether this var got promoted
+        bool promotedVar = false;
         LclVarDsc*  varDsc = &lvaTable[lclNum];
 
+#ifdef FEATURE_SIMD
+        if (varDsc->lvSIMDType && varDsc->lvUsedInSIMDIntrinsic)
+        {
+            // If we have marked this as lvUsedInSIMDIntrinsic, then we do not want to promote
+            // its fields.  Instead, we will attempt to enregister the entire struct.
+            varDsc->lvRegStruct = true;
+        }
+        else
+#endif //FEATURE_SIMD
         // Don't promote if we have reached the tracking limit.
         if (lvaHaveManyLocals())
         {
-            JITDUMP("Stopped promoting struct fields, due to too many locals.\n");
-            break;
+            // Print the message first time when we detected this condition
+            if (!tooManyLocals)
+            {
+                JITDUMP("Stopped promoting struct fields, due to too many locals.\n");
+            }
+            tooManyLocals = true;
         }
 #if !FEATURE_MULTIREG_STRUCT_PROMOTE
-        if (varDsc->lvIsMultiRegArgOrRet)
+        else if (varDsc->lvIsMultiRegArgOrRet)
         {
             JITDUMP("Skipping V%02u: marked lvIsMultiRegArgOrRet.\n", lclNum);
-            continue;
         }
 #endif // !FEATURE_MULTIREG_STRUCT_PROMOTE
-
-#ifdef FEATURE_SIMD
-        if (varDsc->lvSIMDType && varDsc->lvUsedInSIMDIntrinsic)
-        {
-            // If we have marked this as lvUsedInSIMDIntrinsic, then we do not want to promote
-            // its fields.  Instead, we will attempt to enregister the entire struct.
-            // Note, however, that if the code below does not decide to promote this struct,
-            // we will still set lvRegStruct if its fields have not been accessed.
-            varDsc->lvRegStruct = true;
-        }
-        else
-#endif // FEATURE_SIMD
-        if (varTypeIsStruct(varDsc))
+        else if (varTypeIsStruct(varDsc))
         {
             lvaCanPromoteStructVar(lclNum, &structPromotionInfo);
-            if (structPromotionInfo.canPromote)
+            bool canPromote = structPromotionInfo.canPromote;            
+
+            // We start off with shouldPromote same as canPromote.
+            // Based on further profitablity checks done below, shouldPromote
+            // could be set to false.
+            bool shouldPromote = canPromote;
+
+            if (canPromote)
             {
+                
                 // We *can* promote; *should* we promote?
                 // We should only do so if promotion has potential savings.  One source of savings
                 // is if a field of the struct is accessed, since this access will be turned into
@@ -15605,7 +15621,7 @@ void                Compiler::fgPromoteStructs()
                 {
                     JITDUMP("Not promoting promotable struct local V%02u: #fields = %d, fieldAccessed = %d.\n",
                         lclNum, structPromotionInfo.fieldCnt, varDsc->lvFieldAccessed);
-                    continue;
+                    shouldPromote = false;
                 }
 #if defined(_TARGET_AMD64_) || defined(_TARGET_ARM64_)
                 // TODO-PERF - Only do this when the LclVar is used in an argument context
@@ -15616,29 +15632,29 @@ void                Compiler::fgPromoteStructs()
                 // Promoting it can cause us to shuffle it back and forth between the int and 
                 //  the float regs when it is used as a argument, which is very expensive for XARCH
                 //
-                if (structPromotionInfo.fieldCnt==1
-                    && varTypeIsFloating(structPromotionInfo.fields[0].fldType))
+                else if ((structPromotionInfo.fieldCnt == 1) &&
+                          varTypeIsFloating(structPromotionInfo.fields[0].fldType))
                 {
                     JITDUMP("Not promoting promotable struct local V%02u: #fields = %d because it is a struct with single float field.\n",
                             lclNum, structPromotionInfo.fieldCnt);
-                    continue;
+                    shouldPromote = false;
                 }
 #endif // _TARGET_AMD64_ || _TARGET_ARM64_
+
 #if !FEATURE_MULTIREG_STRUCT_PROMOTE
 #if defined(_TARGET_ARM64_)
                 //
                 // For now we currently don't promote structs that could be passed in registers
                 //
-                if (varDsc->lvIsMultiregStruct())
+                else if (varDsc->lvIsMultiregStruct())
                 {
                     JITDUMP("Not promoting promotable struct local V%02u (size==%d): ",
                             lclNum, lvaLclExactSize(lclNum));
-                    continue;
+                    shouldPromote = false;
                 }
 #endif // _TARGET_ARM64_
 #endif // !FEATURE_MULTIREG_STRUCT_PROMOTE
-
-                if (varDsc->lvIsParam)
+                else if (varDsc->lvIsParam)
                 {
 #if FEATURE_MULTIREG_STRUCT_PROMOTE                   
                     if (varDsc->lvIsMultiregStruct() &&         // Is this a variable holding a value that is passed in multiple registers?
@@ -15646,8 +15662,9 @@ void                Compiler::fgPromoteStructs()
                     {
                         JITDUMP("Not promoting multireg struct local V%02u, because lvIsParam is true and #fields != 2\n",
                                 lclNum);
-                        continue;
+                        shouldPromote = false;
                     }
+                    else
 #endif  // !FEATURE_MULTIREG_STRUCT_PROMOTE
 
                     // TODO-PERF - Implement struct promotion for incoming multireg structs
@@ -15657,7 +15674,7 @@ void                Compiler::fgPromoteStructs()
                     {
                         JITDUMP("Not promoting promotable struct local V%02u, because lvIsParam is true and #fields = %d.\n",
                                 lclNum, structPromotionInfo.fieldCnt);
-                        continue;
+                        shouldPromote = false;
                     }
                 }
 
@@ -15676,9 +15693,14 @@ void                Compiler::fgPromoteStructs()
                 if (atoi(getenv("structpromovarnumlo")) <= structPromoVarNum && structPromoVarNum <= atoi(getenv("structpromovarnumhi")))
 #endif // 0
 
+                if (shouldPromote)
                 {
+                    assert(canPromote);
+
                     // Promote the this struct local var.
                     lvaPromoteStructVar(lclNum, &structPromotionInfo);
+                    promotedVar = true;
+
 #ifdef _TARGET_ARM_
                     if (structPromotionInfo.requiresScratchVar)
                     {
@@ -15694,15 +15716,17 @@ void                Compiler::fgPromoteStructs()
 #endif // _TARGET_ARM_
                 }
             }
+        }
+
 #ifdef FEATURE_SIMD
-            else if (varDsc->lvSIMDType && !varDsc->lvFieldAccessed)
-            {
-                // Even if we have not used this in a SIMD intrinsic, if it is not being promoted,
-                // we will treat it as a reg struct.
-                varDsc->lvRegStruct = true;
-            }
-#endif // FEATURE_SIMD
+        if (!promotedVar && varDsc->lvSIMDType && !varDsc->lvFieldAccessed)
+        {
+            // Even if we have not used this in a SIMD intrinsic, if it is not being promoted,
+            // we will treat it as a reg struct.
+            varDsc->lvRegStruct = true;
         }
+#endif // FEATURE_SIMD
+
     }
 }
 
index 3297358..5b6fab8 100644 (file)
@@ -38,7 +38,7 @@ public:
         int dstCount;
     void setDstCount(int count)
     {
-        assert(count == 0 || count == 1);
+        assert(count <= MAX_RET_REG_COUNT);
         _dstCount = (char) count;
     }
     int getDstCount() { return _dstCount; }
index 7977f2d..6a832dc 100644 (file)
@@ -754,7 +754,7 @@ void RangeCheck::MergeAssertion(BasicBlock* block, GenTreePtr stmt, GenTreePtr o
             if (m_pCompiler->bbJtrueAssertionOut != NULL)
             {
                 assertions = m_pCompiler->bbJtrueAssertionOut[pred->bbNum];
-                JITDUMP("Merge assertions from pred BB%02d JTrue edge: %0I64X\n", pred->bbNum, assertions);
+                JITDUMP("Merge assertions from pred BB%02d JTrue edge: %s\n", pred->bbNum, BitVecOps::ToString(m_pCompiler->apTraits, assertions));
             }
         }
     }
@@ -858,7 +858,7 @@ Range RangeCheck::ComputeRangeForLocalDef(BasicBlock* block, GenTreePtr stmt, Ge
     case GT_ASG:
         {
             Range range = GetRange(loc->block, loc->stmt, asg->gtGetOp2(), path, monotonic DEBUGARG(indent));
-            JITDUMP("Merge assertions from BB%02d:%016I64X for assignment about %p\n", block->bbNum, block->bbAssertionIn, dspPtr(asg->gtGetOp1()));
+            JITDUMP("Merge assertions from BB%02d:%s for assignment about %p\n", block->bbNum, BitVecOps::ToString(m_pCompiler->apTraits, block->bbAssertionIn), dspPtr(asg->gtGetOp1()));
             MergeEdgeAssertions(asg->gtGetOp1(), block->bbAssertionIn, &range);
             JITDUMP("done merging\n");
             return range;
index 867a0ac..4d10ea0 100644 (file)
@@ -4896,7 +4896,6 @@ HANDLE_SHIFT_COUNT:
                                                  lockedRegs | regArgMask);
         }
 
-#if INLINE_NDIRECT
         if (tree->gtFlags & GTF_CALL_UNMANAGED)
         {
             // Need a register for tcbReg
@@ -4906,7 +4905,6 @@ HANDLE_SHIFT_COUNT:
             callAddrMask |= rpPredictRegPick(TYP_I_IMPL, PREDICT_SCRATCH_REG, lockedRegs | regArgMask | callAddrMask);
 #endif
         }
-#endif
 
         tree->gtUsedRegs |= callAddrMask;
 
index c1b9018..a188461 100644 (file)
@@ -1415,19 +1415,47 @@ void                RegSet::rsSpillRegIfUsed(regNumber reg)
 #endif // LEGACY_BACKEND
 
 
-/*****************************************************************************
- *
- *  Spill the tree held in 'reg'
- */
-
-void                RegSet::rsSpillTree(regNumber reg, GenTreePtr tree)
-{
-    SpillDsc   *    spill;
-    TempDsc    *    temp;
+//------------------------------------------------------------
+// rsSpillTree: Spill the tree held in 'reg'.
+//
+// Arguments:
+//   reg     -   Register of tree node that is to be spilled
+//   tree    -   GenTree node that is being spilled
+//   regIdx  -   Register index identifying the specific result 
+//               register of a multi-reg call node. For single-reg
+//               producing tree nodes its value is zero.
+//
+// Return Value:
+//   None.
+//
+// Assumption:
+//    RyuJIT backend specific: in case of multi-reg call nodes, GTF_SPILL
+//    flag associated with the reg that is being spilled is cleared.  The
+//    caller of this method is expected to clear GTF_SPILL flag on call
+//    node after all of its registers marked for spilling are spilled.
+//
+void                RegSet::rsSpillTree(regNumber reg, 
+                                        GenTreePtr tree,
+                                        unsigned regIdx /* =0 */)
+{    
+    assert(tree != nullptr);
+        
+    GenTreeCall* call = nullptr;
+    var_types    treeType;
 
-    assert(tree);
+#ifndef LEGACY_BACKEND
+    if (tree->IsMultiRegCall())
+    {
+        call = tree->AsCall();
+        ReturnTypeDesc* retTypeDesc = call->GetReturnTypeDesc();
+        treeType = retTypeDesc->GetReturnRegType(regIdx);
+    }
+    else
+#endif
+    {
+        treeType = tree->TypeGet();
+    }
 
-    var_types       treeType = tree->TypeGet();
     var_types       tempType = Compiler::tmpNormalizeType(treeType);
     regMaskTP       mask;
     bool            floatSpill = false;
@@ -1445,8 +1473,8 @@ void                RegSet::rsSpillTree(regNumber reg, GenTreePtr tree)
     rsNeededSpillReg = true;
 
 #ifdef LEGACY_BACKEND
-    /* The register we're spilling must be used but not locked
-       or an enregistered variable. */
+    // The register we're spilling must be used but not locked
+    // or an enregistered variable. 
 
     assert((mask & rsMaskUsed) == mask);
     assert((mask & rsMaskLock) == 0);
@@ -1455,17 +1483,31 @@ void                RegSet::rsSpillTree(regNumber reg, GenTreePtr tree)
 
 #ifndef LEGACY_BACKEND
     // We should only be spilling nodes marked for spill,
-    // vars should be handled elsewhere,
-    // and we shouldn't spill nodes twice so we reset GTF_SPILL
+    // vars should be handled elsewhere, and to prevent
+    // spilling twice clear GTF_SPILL flag on tree node.
+    //
+    // In case of multi-reg call nodes only the spill flag
+    // associated with the reg is cleared. Spill flag on
+    // call node should be cleared by the caller of this method.
     assert(tree->gtOper != GT_REG_VAR);
-    assert(!varTypeIsMultiReg(tree));
-    assert(tree->gtFlags & GTF_SPILL);
-    tree->gtFlags &= ~GTF_SPILL;
+    assert((tree->gtFlags & GTF_SPILL) != 0);
+
+    unsigned regFlags = 0;
+    if (call != nullptr)
+    {
+        regFlags = call->GetRegSpillFlagByIdx(regIdx);
+        assert((regFlags & GTF_SPILL) != 0);
+        regFlags &= ~GTF_SPILL;
+    }
+    else
+    {
+        assert(!varTypeIsMultiReg(tree));
+        tree->gtFlags &= ~GTF_SPILL;
+    }  
 #endif // !LEGACY_BACKEND
 
 #if CPU_LONG_USES_REGPAIR
-    /* Are we spilling a part of a register pair? */
-
+    // Are we spilling a part of a register pair? 
     if  (treeType == TYP_LONG)
     {
         tempType = TYP_I_IMPL;
@@ -1479,20 +1521,18 @@ void                RegSet::rsSpillTree(regNumber reg, GenTreePtr tree)
     }
 #else
     assert(tree->InReg());
-    assert(tree->gtRegNum == reg);
+    assert(tree->gtRegNum == reg || (call != nullptr && call->GetRegNumByIdx(regIdx) == reg));
 #endif // CPU_LONG_USES_REGPAIR
 
-    /* Are any registers free for spillage? */
-
-    spill = SpillDsc::alloc(m_rsCompiler, this, tempType);
+    // Are any registers free for spillage?
+    SpillDsc* spill = SpillDsc::alloc(m_rsCompiler, this, tempType);
 
-    /* Grab a temp to store the spilled value */
-
-    spill->spillTemp = temp = m_rsCompiler->tmpGetTemp(tempType);
+    // Grab a temp to store the spilled value
+    TempDsc* temp = m_rsCompiler->tmpGetTemp(tempType);
+    spill->spillTemp = temp;
     tempType = temp->tdTempType();
 
-    /* Remember what it is we have spilled */
-
+    // Remember what it is we have spilled
     spill->spillTree = tree;
 #ifdef LEGACY_BACKEND
     spill->spillAddr = rsUsedAddr[reg];
@@ -1512,15 +1552,13 @@ void                RegSet::rsSpillTree(regNumber reg, GenTreePtr tree)
 #endif
 
 #ifdef LEGACY_BACKEND
-    /* Is the register part of a complex address mode? */
-
+    // Is the register part of a complex address mode?
     rsAddrSpillOper(rsUsedAddr[reg]);
 #endif // LEGACY_BACKEND
 
-    /* 'lastDsc' is 'spill' for simple cases, and will point to the last
-       multi-use descriptor if 'reg' is being multi-used */
-
-    SpillDsc *  lastDsc = spill;
+    // 'lastDsc' is 'spill' for simple cases, and will point to the last
+    // multi-use descriptor if 'reg' is being multi-used
+    SpillDsc*  lastDsc = spill;
 
 #ifdef LEGACY_BACKEND
     if  ((rsMaskMult & mask) == 0)
@@ -1529,31 +1567,27 @@ void                RegSet::rsSpillTree(regNumber reg, GenTreePtr tree)
     }
     else
     {
-        /* The register is being multi-used and will have entries in
-           rsMultiDesc[reg]. Spill all of them (ie. move them to
-           rsSpillDesc[reg]).
-           When we unspill the reg, they will all be moved back to
-           rsMultiDesc[].
-         */
+        // The register is being multi-used and will have entries in
+        // rsMultiDesc[reg]. Spill all of them (ie. move them to
+        // rsSpillDesc[reg]).
+        // When we unspill the reg, they will all be moved back to
+        // rsMultiDesc[].
 
         spill->spillMoreMultis = true;
 
-        SpillDsc * nextDsc = rsMultiDesc[reg];
+        SpillDsc* nextDsc = rsMultiDesc[reg];
 
         do
         {
-            assert(nextDsc);
-
-            /* Is this multi-use part of a complex address mode? */
+            assert(nextDsc != nullptr);
 
+            // Is this multi-use part of a complex address mode?
             rsAddrSpillOper(nextDsc->spillAddr);
 
-            /* Mark the tree node as having been spilled */
-
+            // Mark the tree node as having been spilled 
             rsMarkSpill(nextDsc->spillTree, reg);
 
-            /* lastDsc points to the last of the multi-spill descrs for 'reg' */
-
+            // lastDsc points to the last of the multi-spill descrs for 'reg'
             nextDsc->spillTemp = temp;
 
 #ifdef  DEBUG
@@ -1575,15 +1609,13 @@ void                RegSet::rsSpillTree(regNumber reg, GenTreePtr tree)
 
         rsMultiDesc[reg] = nextDsc;
 
-        /* 'reg' is no longer considered to be multi-used. We will set this
-           mask again when this value gets unspilled */
-
+        // 'reg' is no longer considered to be multi-used. We will set this
+        // mask again when this value gets unspilled 
         rsMaskMult &= ~mask;
     }
 #endif // LEGACY_BACKEND
 
-    /* Insert the spill descriptor(s) in the list */
-
+    // Insert the spill descriptor(s) in the list
     lastDsc->spillNext = rsSpillDesc[reg];
                          rsSpillDesc[reg] = spill;
 
@@ -1591,20 +1623,26 @@ void                RegSet::rsSpillTree(regNumber reg, GenTreePtr tree)
     if  (m_rsCompiler->verbose)     printf("\n");
 #endif
 
-     /* Generate the code to spill the register */
+    // Generate the code to spill the register
     var_types  storeType = floatSpill ? treeType : tempType;
 
     m_rsCompiler->codeGen->spillReg(storeType, temp, reg);
 
-    /* Mark the tree node as having been spilled */
-
+    // Mark the tree node as having been spilled
     rsMarkSpill(tree, reg);
 
 #ifdef LEGACY_BACKEND
-    /* The register is now free */
-
+    // The register is now free
     rsMarkRegFree(mask);
-#endif // LEGACY_BACKEND
+#else
+    // In case of multi-reg call node also mark the specific
+    // result reg as spilled.
+    if (call != nullptr)
+    {
+        regFlags |= GTF_SPILLED;
+        call->SetRegSpillFlagByIdx(regFlags, regIdx);
+    }
+#endif //!LEGACY_BACKEND
 }
 
 #if defined(_TARGET_X86_) && !FEATURE_STACK_FP_X87
@@ -2208,30 +2246,51 @@ regNumber           RegSet::rsUnspillOneReg(GenTreePtr    tree,
 }
 #endif // LEGACY_BACKEND
 
-/*****************************************************************************
- *  The given tree operand has been spilled; just mark it as unspilled so
- *  that we can use it as "normal" local.
- *  It is the responsibility of the caller to free the spill temp.
- */
-
-TempDsc *     RegSet::rsUnspillInPlace(GenTreePtr    tree)
+//---------------------------------------------------------------------
+//  rsUnspillInPlace: The given tree operand has been spilled; just mark
+//  it as unspilled so that we can use it as "normal" local.
+//
+//  Arguments:
+//     tree    -  GenTree that needs to be marked as unspilled.
+//     oldReg  -  reg of tree that was spilled.
+//
+//  Return Value:
+//     None.
+//
+//  Assumptions:
+//  1. It is the responsibility of the caller to free the spill temp.
+//  2. RyuJIT backend specific: In case of multi-reg call node 
+//     GTF_SPILLED flag associated with reg is cleared.  It is the
+//     responsibility of caller to clear GTF_SPILLED flag on call node
+//     itself after ensuring there are no outstanding regs in GTF_SPILLED
+//     state.
+//
+TempDsc*     RegSet::rsUnspillInPlace(GenTreePtr tree, 
+                                      regNumber  oldReg,
+                                      unsigned   regIdx /* =0 */)
 {
-    /* Get the tree's SpillDsc */
-
     assert(!isRegPairType(tree->gtType));
-    regNumber   oldReg = tree->gtRegNum;
 
+    // Get the tree's SpillDsc  
     SpillDsc* prevDsc;
     SpillDsc* spillDsc = rsGetSpillInfo(tree, oldReg, &prevDsc);
     PREFIX_ASSUME(spillDsc != nullptr);
 
-    /* Get the temp */
-
+    // Get the temp
     TempDsc* temp = rsGetSpillTempWord(oldReg, spillDsc, prevDsc);
 
-    /* The value is now unspilled */
-
-    tree->gtFlags &= ~GTF_SPILLED;
+    // The value is now unspilled
+    if (tree->IsMultiRegCall())
+    {
+        GenTreeCall* call = tree->AsCall();
+        unsigned flags = call->GetRegSpillFlagByIdx(regIdx);
+        flags &= ~GTF_SPILLED;
+        call->SetRegSpillFlagByIdx(flags, regIdx);
+    }
+    else
+    {
+        tree->gtFlags &= ~GTF_SPILLED;
+    }
 
 #ifdef  DEBUG
     if  (m_rsCompiler->verbose) 
index 2f1c5af..a2ea3fe 100644 (file)
@@ -75,17 +75,17 @@ private:
     // The same descriptor is also used for 'multi-use' register tracking, BTW.
     struct  SpillDsc
     {
-        SpillDsc   *        spillNext;    // next spilled value of same reg
+        SpillDsc*           spillNext;    // next spilled value of same reg
 
         union
         {
             GenTreePtr      spillTree;    // the value that was spilled
 #ifdef LEGACY_BACKEND
-            LclVarDsc *     spillVarDsc;  // variable if it's an enregistered variable
+            LclVarDsc     spillVarDsc;  // variable if it's an enregistered variable
 #endif // LEGACY_BACKEND
         };
 
-        TempDsc    *        spillTemp;    // the temp holding the spilled value
+        TempDsc*            spillTemp;    // the temp holding the spilled value
 
 #ifdef LEGACY_BACKEND
         GenTreePtr          spillAddr;    // owning complex address mode or nullptr
@@ -98,8 +98,8 @@ private:
         };
 #endif // LEGACY_BACKEND
 
-        static SpillDsc   * alloc   (Compiler * pComp, RegSet *regSet, var_types type);
-        static void         freeDsc (RegSet *regSet, SpillDsc *spillDsc);
+        static SpillDsc*    alloc   (Compiler* pComp, RegSet* regSet, var_types type);
+        static void         freeDsc (RegSet *regSet, SpillDscspillDsc);
     };
 
 #ifdef LEGACY_BACKEND
@@ -351,7 +351,8 @@ private:
     void                rsSpillEnd      ();
 
     void                rsSpillTree     (regNumber      reg,
-                                         GenTreePtr     tree);
+                                         GenTreePtr     tree,
+                                         unsigned       regIdx = 0);
 
 #if defined(_TARGET_X86_) && !FEATURE_STACK_FP_X87
     void                rsSpillFPStack(GenTreePtr tree);
@@ -385,7 +386,9 @@ private:
                                         regMaskTP      needReg);
 #endif // LEGACY_BACKEND
 
-    TempDsc *           rsUnspillInPlace(GenTreePtr     tree);
+    TempDsc*            rsUnspillInPlace(GenTreePtr     tree,
+                                         regNumber      oldReg,
+                                         unsigned       regIdx = 0);
 
 #ifdef LEGACY_BACKEND
     void                rsUnspillReg    (GenTreePtr     tree,
index 5c3936d..cd03315 100644 (file)
@@ -337,7 +337,16 @@ typedef unsigned short          regPairNoSmall; // arm: need 12 bits
 #if defined(_TARGET_X86_)
 
   #define CPU_LOAD_STORE_ARCH      0
+
+#ifdef LEGACY_BACKEND
   #define CPU_LONG_USES_REGPAIR    1
+#else
+  #define CPU_LONG_USES_REGPAIR    0       // RyuJIT x86 doesn't use the regPairNo field to record register pairs for long
+                                           // type tree nodes, and instead either decomposes them (for non-atomic operations)
+                                           // or stores multiple regNumber values for operations such as calls where the
+                                           // register definitions are effectively "atomic".
+#endif // LEGACY_BACKEND
+
   #define CPU_HAS_FP_SUPPORT       1
   #define ROUND_FLOAT              1       // round intermed float expression results
   #define CPU_HAS_BYTE_REGS        1
@@ -558,7 +567,7 @@ typedef unsigned short          regPairNoSmall; // arm: need 12 bits
   // We don't allow using ebp as a source register. Maybe we should only prevent this for ETW_EBP_FRAMED (but that is always set right now).
   #define RBM_WRITE_BARRIER_SRC    (RBM_EAX|RBM_ECX|RBM_EBX|RBM_ESI|RBM_EDI)
 
-  #define RBM_CALLEE_TRASH_NOGC    RBM_NONE
+  #define RBM_CALLEE_TRASH_NOGC    RBM_EDX
 #endif // NOGC_WRITE_BARRIERS
 
   // IL stub's secret parameter (CORJIT_FLG_PUBLISH_SECRET_PARAM)
@@ -1451,7 +1460,7 @@ typedef unsigned short          regPairNoSmall; // arm: need 12 bits
   #define FEATURE_FIXED_OUT_ARGS   1       // Preallocate the outgoing arg area in the prolog
   #define FEATURE_STRUCTPROMOTE    1       // JIT Optimization to promote fields of structs into registers
   #define FEATURE_MULTIREG_STRUCT_PROMOTE 1  // True when we want to promote fields of a multireg struct into registers
-  #define FEATURE_FASTTAILCALL     0       // Tail calls made as epilog+jmp
+  #define FEATURE_FASTTAILCALL     1       // Tail calls made as epilog+jmp
   #define FEATURE_TAILCALL_OPT     0       // opportunistic Tail calls (i.e. without ".tail" prefix) made as fast tail calls.
   #define FEATURE_SET_FLAGS        1       // Set to true to force the JIT to mark the trees with GTF_SET_FLAGS when the flags need to be set
   #define FEATURE_MULTIREG_ARGS_OR_RET  1  // Support for passing and/or returning single values in more than one register  
@@ -1685,8 +1694,26 @@ typedef unsigned short          regPairNoSmall; // arm: need 12 bits
   #define RBM_ARG_6                RBM_R6
   #define RBM_ARG_7                RBM_R7
 
+  #define REG_FLTARG_0             REG_V0
+  #define REG_FLTARG_1             REG_V1
+  #define REG_FLTARG_2             REG_V2
+  #define REG_FLTARG_3             REG_V3
+  #define REG_FLTARG_4             REG_V4
+  #define REG_FLTARG_5             REG_V5
+  #define REG_FLTARG_6             REG_V6
+  #define REG_FLTARG_7             REG_V7
+
+  #define RBM_FLTARG_0             RBM_V0
+  #define RBM_FLTARG_1             RBM_V1
+  #define RBM_FLTARG_2             RBM_V2
+  #define RBM_FLTARG_3             RBM_V3
+  #define RBM_FLTARG_4             RBM_V4
+  #define RBM_FLTARG_5             RBM_V5
+  #define RBM_FLTARG_6             RBM_V6
+  #define RBM_FLTARG_7             RBM_V7
+
   #define RBM_ARG_REGS            (RBM_ARG_0|RBM_ARG_1|RBM_ARG_2|RBM_ARG_3|RBM_ARG_4|RBM_ARG_5|RBM_ARG_6|RBM_ARG_7)
-  #define RBM_FLTARG_REGS         (RBM_V0|RBM_V1|RBM_V2|RBM_V3|RBM_V4|RBM_V5|RBM_V6|RBM_V7)
+  #define RBM_FLTARG_REGS         (RBM_FLTARG_0|RBM_FLTARG_1|RBM_FLTARG_2|RBM_FLTARG_3|RBM_FLTARG_4|RBM_FLTARG_5|RBM_FLTARG_6|RBM_FLTARG_7)
 
   SELECTANY const regNumber fltArgRegs [] = {REG_V0, REG_V1, REG_V2, REG_V3, REG_V4, REG_V5, REG_V6, REG_V7 };
   SELECTANY const regMaskTP fltArgMasks[] = {RBM_V0, RBM_V1, RBM_V2, RBM_V3, RBM_V4, RBM_V5, RBM_V6, RBM_V7 };
@@ -1695,13 +1722,21 @@ typedef unsigned short          regPairNoSmall; // arm: need 12 bits
   #define LBL_DIST_SMALL_MAX_POS  (+1048575)
 
   #define LBL_SIZE_SMALL          (4)
-  #define LBL_SIZE_LARGE          (8)   // NYI
+  #define LBL_SIZE_LARGE          (8)
 
   #define JCC_DIST_SMALL_MAX_NEG  (-1048576)
-  #define JCC_DIST_SMALL_MAX_POS  (+1048572)
+  #define JCC_DIST_SMALL_MAX_POS  (+1048575)
 
   #define JCC_SIZE_SMALL          (4)
-  #define JCC_SIZE_LARGE          (8)   // NYI
+  #define JCC_SIZE_LARGE          (8)
+
+  #define LDC_DIST_SMALL_MAX_NEG  (-1048576)
+  #define LDC_DIST_SMALL_MAX_POS  (+1048575)
+
+  #define LDC_SIZE_SMALL          (4)
+  #define LDC_SIZE_LARGE          (8)
+
+  #define JMP_SIZE_SMALL          (4)
 
 #else
   #error Unsupported or unset target architecture
index cc07d6c..603f797 100644 (file)
@@ -24,9 +24,7 @@
 #include "mscoree.h"
 #include "corhost.h"
 
-#ifdef FEATURE_HOSTED_BINDER
 #include "clrprivhosting.h"
-#endif
 
 extern HRESULT TypeNameFactoryCreateObject(REFIID riid, void **ppUnk);
 
@@ -49,9 +47,7 @@ const COCLASS_REGISTER g_CoClasses[] =
 
     { &CLSID_CorRuntimeHost,              W("CorRuntimeHost"),              CorHost::CreateObject },
     { &CLSID_CLRRuntimeHost,              W("CLRRuntimeHost"),              CorHost2::CreateObject },
-#ifdef FEATURE_HOSTED_BINDER
     { &__uuidof(CLRPrivRuntime),          W("CLRPrivRuntime"),              CorHost2::CreateObject },
-#endif
     { &CLSID_TypeNameFactory,             NULL,                           (PFN_CREATE_OBJ)TypeNameFactoryCreateObject },
 #endif // FEATURE_CORECLR && !CROSSGEN_COMPILE
     { NULL,                               NULL,                           NULL }
diff --git a/src/mscorlib/Common/Preprocessed/AssemblyRefs.CoreLib.g.cs b/src/mscorlib/Common/Preprocessed/AssemblyRefs.CoreLib.g.cs
new file mode 100644 (file)
index 0000000..24a1866
--- /dev/null
@@ -0,0 +1,1082 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+// #line 1 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\assemblyrefs.cspp"
+
+/*
+ * Assembly attributes. This file is preprocessed to generate a .cs file
+ * with the correct information.  The original lives in VBL\Tools\DevDiv\
+ */
+
+using System;
+using System.Reflection;
+using System.Resources;
+using System.Diagnostics;
+using System.Runtime.InteropServices;
+using System.Runtime.CompilerServices;
+
+
+// #line 1 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+/**
+ * Version strings for Frameworks.
+ * 
+ */
+
+//
+// Insert just the #defines in winver.h, so that the
+// C# compiler can include this file after macro preprocessing.
+//
+
+
+
+
+
+
+
+
+
+// #line 21 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+
+//
+// winver.h is bad for rc.exe & csc.exe whereas verrsrc.h does not have an include guard
+// yet defines the same structure twice if RC_INVOKED is not #defined.
+// Temporarily enable RC_INVOKED protection around the #include.
+//
+
+
+
+
+
+
+// #line 1 "c:\\program files (x86)\\windows kits\\8.1\\include\\um\\verrsrc.h"
+// #line 1 "c:\\program files (x86)\\windows kits\\8.1\\include\\shared\\winapifamily.h"
+/*
+
+
+
+Module Name:
+
+    winapifamily.h
+
+Abstract:
+
+    Master include file for API family partitioning.
+
+*/
+
+
+
+
+
+// #pragma once
+// #line 21 "c:\\program files (x86)\\windows kits\\8.1\\include\\shared\\winapifamily.h"
+
+/*
+ * When compiling C and C++ code using SDK header files, the development
+ * environment can specify a target platform by #define-ing the
+ * pre-processor symbol WINAPI_FAMILY to one of the following values.
+ * Each FAMILY value denotes an application family for which a different
+ * subset of the total set of header-file-defined APIs are available.
+ * Setting the WINAPI_FAMILY value will effectively hide from the
+ * editing and compilation environments the existence of APIs that
+ * are not applicable to the family of applications targeting a
+ * specific platform.
+ */
+
+/*
+ * The WINAPI_FAMILY values of 0 and 1 are reserved to ensure that
+ * an error will occur if WINAPI_FAMILY is set to any
+ * WINAPI_PARTITION value (which must be 0 or 1, see below).
+ */
+
+
+
+/* The value of WINAPI_FAMILY_DESKTOP_APP may change in future SDKs. */
+/* Additional WINAPI_FAMILY values may be defined in future SDKs. */
+
+/*
+ * For compatibility with Windows 8 header files, the following
+ * synonym for WINAPI_FAMILY_PC_APP is temporarily #define'd.
+ * Use of this symbol should be considered deprecated.
+ */
+
+
+/*
+ * If no WINAPI_FAMILY value is specified, then all APIs available to
+ * Windows desktop applications are exposed.
+ */
+
+
+// #line 59 "c:\\program files (x86)\\windows kits\\8.1\\include\\shared\\winapifamily.h"
+
+/*
+ * API PARTITONs are part of an indirection mechanism for mapping between
+ * individual APIs and the FAMILYs to which they apply.
+ * Each PARTITION is a category or subset of named APIs.  PARTITIONs
+ * are permitted to have overlapping membership -- some single API
+ * might be part of more than one PARTITION.  In support of new
+ * FAMILYs that might be added in future SDKs, any single current
+ * PARTITION might in that future SDK be split into two or more new PARTITIONs.
+ * Accordingly, application developers should avoid taking dependencies on
+ * PARTITION names; developers' only dependency upon the symbols defined
+ * in this file should be their reliance on the WINAPI_FAMILY names and values.
+ */
+
+/*
+ * Current PARTITIONS are each #undef'ed below, and then will be #define-ed
+ * to be either 1 or 0 or depending on the active WINAPI_FAMILY.
+ */
+
+
+
+
+
+
+
+/*
+ * The mapping between families and partitions is summarized here.
+ * An X indicates that the given partition is active for the given
+ * platform/family.
+ *
+ *                             +---------------+
+ *                             |  *Partition*  |
+ *                             +---+---+---+---+
+ *                             |   |   |   | P |
+ *                             |   |   |   | H |
+ *                             | D |   |   | O |
+ *                             | E |   | P | N |
+ *                             | S |   | C | E |
+ *                             | K |   | _ | _ |
+ *                             | T | A | A | A |
+ * +-------------------------+-+ O | P | P | P |
+ * |     *Platform/Family*    \| P | P | P | P |
+ * +---------------------------+---+---+---+---+
+ * | WINAPI_FAMILY_DESKTOP_APP | X | X | X |   |
+ * +---------------------------+---+---+---+---+
+ * |      WINAPI_FAMILY_PC_APP |   | X | X |   |
+ * +---------------------------+---+---+---+---+
+ * |   WINAPI_FAMILY_PHONE_APP |   | X |   | X |
+ * +---------------------------+---+---+---+---+
+ *
+ * The table above is encoded in the following expressions,
+ * each of which evaluates to 1 or 0.
+ *
+ * Whenever a new family is added, all of these expressions
+ * need to be reconsidered.
+ */
+
+
+// #line 118 "c:\\program files (x86)\\windows kits\\8.1\\include\\shared\\winapifamily.h"
+
+
+
+
+
+/*
+ * For compatibility with Windows Phone 8 header files, the following
+ * synonym for WINAPI_PARTITION_PHONE_APP is temporarily #define'd.
+ * Use of this symbol should be regarded as deprecated.
+ */
+
+
+/*
+ * Header files use the WINAPI_FAMILY_PARTITION macro to assign one or
+ * more declarations to some group of partitions.  The macro chooses
+ * whether the preprocessor will emit or omit a sequence of declarations
+ * bracketed by an #if/#endif pair.  All header file references to the
+ * WINAPI_PARTITION_* values should be in the form of occurrences of
+ * WINAPI_FAMILY_PARTITION(...).
+ *
+ * For example, the following usage of WINAPI_FAMILY_PARTITION identifies
+ * a sequence of declarations that are part of both the Windows Desktop
+ * Partition and the Windows-Phone-Specific Store Partition:
+ *
+ *     #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_PHONE_APP)
+ *     ...
+ *     #endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_PHONE_APP)
+ *
+ * The comment on the closing #endif allow tools as well as people to find the
+ * matching #ifdef properly.
+ *
+ * Usages of WINAPI_FAMILY_PARTITION may be combined, when the partitition definitions are
+ * related.  In particular one might use declarations like
+ * 
+ *     #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ *
+ * or
+ *
+ *     #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP)
+ *
+ * Direct references to WINAPI_PARTITION_ values (eg #if !WINAPI_FAMILY_PARTITION_...)
+ * should not be used.
+ */ 
+
+
+/*
+ * Macro used to #define or typedef a symbol used for selective deprecation
+ * of individual methods of a COM interfaces that are otherwise available
+ * for a given set of partitions.
+ */
+
+
+/*
+ * For compatibility with Windows 8 header files, the following
+ * symbol is temporarily conditionally #define'd.  Additional symbols
+ * like this should be not defined in winapifamily.h, but rather should be
+ * introduced locally to the header files of the component that needs them.
+ */
+
+
+// #line 179 "c:\\program files (x86)\\windows kits\\8.1\\include\\shared\\winapifamily.h"
+
+// #line 181 "c:\\program files (x86)\\windows kits\\8.1\\include\\shared\\winapifamily.h"
+// #line 2 "c:\\program files (x86)\\windows kits\\8.1\\include\\um\\verrsrc.h"
+
+/****************************************************************************
+**                                                                             *
+* verrsrc.h -   Version Resource definitions                                  *
+*                                                                             *
+*               Include file declaring version resources in rc files          *
+*                                                                             *
+*               *
+*                                                                             *
+\*****************************************************************************/
+
+// #pragma region Application Family
+
+
+/* ----- Symbols ----- */
+
+
+
+
+/* ----- VS_VERSION.dwFileFlags ----- */
+
+
+
+
+// #line 27 "c:\\program files (x86)\\windows kits\\8.1\\include\\um\\verrsrc.h"
+
+
+
+/* ----- VS_VERSION.dwFileFlags ----- */
+
+
+
+
+
+
+
+/* ----- VS_VERSION.dwFileOS ----- */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* ----- VS_VERSION.dwFileType ----- */
+
+
+
+
+
+
+
+
+/* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV ----- */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT ----- */
+
+
+
+
+// #line 88 "c:\\program files (x86)\\windows kits\\8.1\\include\\um\\verrsrc.h"
+// // #pragma region 
+
+// #pragma region Desktop Family
+
+
+/* ----- VerFindFile() flags ----- */
+
+
+
+
+
+
+/* ----- VerInstallFile() flags ----- */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// #line 171 "c:\\program files (x86)\\windows kits\\8.1\\include\\um\\verrsrc.h"
+// #pragma region 
+
+// #line 37 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+
+
+
+//
+// Include the definitions for rmj, rmm, rup, rpt
+//
+
+// #line 1 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\product_version.h"
+
+
+
+
+// #line 6 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\product_version.h"
+
+// #line 1 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\version.h"
+// #line 1 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\ndpversion_generated.h"
+
+
+
+
+// #line 6 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\ndpversion_generated.h"
+
+
+
+
+
+// #line 1 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\buildnumber.h"
+
+
+
+
+// #line 6 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\buildnumber.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// #line 12 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\ndpversion_generated.h"
+// #line 2 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\version.h"
+
+
+
+
+
+
+
+
+
+
+
+
+// #line 8 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\product_version.h"
+
+
+
+// #line 1 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\asm_version.h"
+
+
+
+
+
+
+
+
+
+
+
+// #line 13 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\asm_version.h"
+
+
+
+
+
+// #line 19 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\asm_version.h"
+
+// #line 12 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\product_version.h"
+// #line 13 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\product_version.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// #line 161 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\product_version.h"
+
+
+
+
+
+// #line 167 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\product_version.h"
+
+
+
+
+
+// #line 173 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\product_version.h"
+
+
+
+
+
+
+// #line 180 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\product_version.h"
+
+// #line 48 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+/*
+ * Product version, name and copyright
+ */
+
+// #line 1 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxverstrings.h"
+
+    
+        
+
+// #line 6 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxverstrings.h"
+            
+        
+
+// #line 10 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxverstrings.h"
+    
+
+
+
+// #line 15 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxverstrings.h"
+// #line 16 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxverstrings.h"
+
+// The following copyright is intended for display in the Windows Explorer property box for a DLL or EXE
+// See \\lca\pdm\TMGUIDE\Copyright\Crt_Tmk_Notices.xls for copyright guidelines
+//
+
+    
+        
+
+// #line 25 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxverstrings.h"
+            
+        
+
+// #line 29 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxverstrings.h"
+    
+
+
+
+
+
+
+// #line 37 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxverstrings.h"
+// #line 38 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxverstrings.h"
+
+// VSWhidbey #495749
+// Note: The following legal copyright is intended for situations where the copyright symbol doesn't display 
+//       properly.  For example, the following copyright should be displayed as part of the logo for DOS command-line 
+//       applications.  If you change the format or wording of the following copyright, you should apply the same
+//       change to fxresstrings.txt (for managed applications).
+
+    
+    
+// #line 48 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxverstrings.h"
+// #line 54 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+/*
+ * File version, names, description.
+ */
+
+// FX_VER_INTERNALNAME_STR is passed in by the build environment.
+
+
+
+
+
+
+
+// FX_VER_FILEDESCRIPTION_STR is defined in RC files that include fxver.h
+
+
+
+// #line 72 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+
+
+// #line 78 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+
+
+
+// #line 85 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+//URT_VFT passed in by the build environment.
+
+
+
+
+
+
+
+/* default is nodebug */
+
+
+
+
+// #line 102 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+// DEBUG flag is set for debug build, not set for retail build
+// #if defined(DEBUG) || defined(_DEBUG)
+// #define VER_DEBUG        VS_FF_DEBUG
+// #else  // DEBUG
+// #define VER_DEBUG        0
+// #endif // DEBUG
+
+
+/* default is prerelease */
+
+
+// #line 115 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+// #line 117 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+// PRERELEASE flag is always set unless building SHIP version
+// #ifndef _SHIP
+// #define VER_PRERELEASE   VS_FF_PRERELEASE
+// #else
+// #define VER_PRERELEASE   0
+// #endif // _SHIP
+
+
+
+// #line 128 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+// #line 130 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+// PRIVATEBUILD flag is set if not built by build lab
+// #ifndef _VSBUILD
+// #define VER_PRIVATEBUILD VS_FF_PRIVATEBUILD
+// #else  // _VSBUILD
+// #define VER_PRIVATEBUILD 0
+// #endif // _VSBUILD
+
+
+
+// #line 141 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+// #line 143 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// #line 164 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+
+
+
+
+
+
+// #line 174 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+
+
+// #line 180 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+
+
+
+
+
+// #line 189 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+// #line 193 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// #line 248 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+// #line 250 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+
+
+// #line 254 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+
+// #line 256 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\include\\fxver.h"
+// #line 24 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\assemblyrefs.cspp"
+
+internal static class FXAssembly {
+    internal const string Version = "4.0.0.0";
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// #line 44 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\assemblyrefs.cspp"
+
+internal static class ThisAssembly {
+    internal const string Title = "System.Private.CoreLib.dll";
+    internal const string Description = "System.Private.CoreLib.dll";
+    internal const string DefaultAlias = "System.Private.CoreLib.dll";
+    internal const string Copyright = "\u00A9 Microsoft Corporation.  All rights reserved.";
+    internal const string Version = "4.0.0.0";
+    internal const string InformationalVersion = "4.0.22306.0";
+    internal const string DailyBuildNumberStr = "22306";
+    internal const string BuildRevisionStr = "0";
+    internal const int DailyBuildNumber = 22306;
+}
+
+
+#pragma warning disable 436
+internal static class AssemblyRef {
+    internal const string EcmaPublicKey                              = "b77a5c561934e089";
+    internal const string EcmaPublicKeyToken                         = "b77a5c561934e089";
+    internal const string EcmaPublicKeyFull                          = "00000000000000000400000000000000";
+
+    internal const string SilverlightPublicKey                       = "31bf3856ad364e35";
+    internal const string SilverlightPublicKeyToken                  = "31bf3856ad364e35";
+    internal const string SilverlightPublicKeyFull                   = "0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9";
+
+    internal const string SilverlightPlatformPublicKey               = "7cec85d7bea7798e";
+    internal const string SilverlightPlatformPublicKeyToken          = "7cec85d7bea7798e";
+    internal const string SilverlightPlatformPublicKeyFull           = "00240000048000009400000006020000002400005253413100040000010001008D56C76F9E8649383049F383C44BE0EC204181822A6C31CF5EB7EF486944D032188EA1D3920763712CCB12D75FB77E9811149E6148E5D32FBAAB37611C1878DDC19E20EF135D0CB2CFF2BFEC3D115810C3D9069638FE4BE215DBF795861920E5AB6F7DB2E2CEEF136AC23D5DD2BF031700AEC232F6C6B1C785B4305C123B37AB";
+
+
+    internal const string PlatformPublicKey                          = SilverlightPlatformPublicKey;
+    internal const string PlatformPublicKeyToken                     = SilverlightPlatformPublicKeyToken;
+    internal const string PlatformPublicKeyFull                      = SilverlightPlatformPublicKeyFull;
+
+
+
+
+// #line 81 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\assemblyrefs.cspp"
+
+    internal const string Mscorlib                                   = "mscorlib, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + PlatformPublicKey;
+    internal const string SystemData                                 = "System.Data, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + EcmaPublicKey;
+    internal const string SystemDataOracleClient                     = "System.Data.OracleClient, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + EcmaPublicKey;
+    internal const string System                                     = "System, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + PlatformPublicKey;
+    internal const string SystemCore                                 = "System.Core, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + PlatformPublicKey;
+    internal const string SystemNumerics                             = "System.Numerics, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + PlatformPublicKey;
+    internal const string SystemRuntimeRemoting                      = "System.Runtime.Remoting, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + EcmaPublicKey;
+    internal const string SystemThreadingTasksDataflow               = "System.Threading.Tasks.Dataflow, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + PlatformPublicKey;
+    internal const string SystemWindowsForms                         = "System.Windows.Forms, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + EcmaPublicKey;
+    internal const string SystemXml                                  = "System.Xml, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + EcmaPublicKey;
+    
+    internal const string MicrosoftPublicKey                         = "b03f5f7f11d50a3a";
+    internal const string MicrosoftPublicKeyToken                    = "b03f5f7f11d50a3a";
+    internal const string MicrosoftPublicKeyFull                     = "002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293";
+
+    internal const string SharedLibPublicKey                         = "31bf3856ad364e35";
+    internal const string SharedLibPublicKeyToken                    = "31bf3856ad364e35";
+    internal const string SharedLibPublicKeyFull                     = "0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9";
+
+    internal const string SystemComponentModelDataAnnotations        = "System.ComponentModel.DataAnnotations, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + SharedLibPublicKey;
+    internal const string SystemConfiguration                        = "System.Configuration, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemConfigurationInstall                 = "System.Configuration.Install, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemDeployment                           = "System.Deployment, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemDesign                               = "System.Design, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemDirectoryServices                    = "System.DirectoryServices, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemDrawingDesign                        = "System.Drawing.Design, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemDrawing                              = "System.Drawing, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemEnterpriseServices                   = "System.EnterpriseServices, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemManagement                           = "System.Management, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemMessaging                            = "System.Messaging, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemNetHttp                              = "System.Net.Http, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemNetHttpWebRequest                    = "System.Net.Http.WebRequest, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemRuntimeSerializationFormattersSoap   = "System.Runtime.Serialization.Formatters.Soap, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemRuntimeWindowsRuntime                = "System.Runtime.WindowsRuntime, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + EcmaPublicKey;
+    internal const string SystemRuntimeWindowsRuntimeUIXaml          = "System.Runtime.WindowsRuntimeUIXaml, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + EcmaPublicKey;
+    internal const string SystemSecurity                             = "System.Security, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemServiceModelWeb                      = "System.ServiceModel.Web, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + SharedLibPublicKey;
+    internal const string SystemServiceProcess                       = "System.ServiceProcess, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemWeb                                  = "System.Web, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemWebAbstractions                      = "System.Web.Abstractions, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + SharedLibPublicKey;
+    internal const string SystemWebDynamicData                       = "System.Web.DynamicData, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + SharedLibPublicKey;
+    internal const string SystemWebDynamicDataDesign                 = "System.Web.DynamicData.Design, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + SharedLibPublicKey;
+    internal const string SystemWebEntityDesign                      = "System.Web.Entity.Design, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + EcmaPublicKey;
+    internal const string SystemWebExtensions                        = "System.Web.Extensions, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + SharedLibPublicKey;
+    internal const string SystemWebExtensionsDesign                  = "System.Web.Extensions.Design, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + SharedLibPublicKey;
+    internal const string SystemWebMobile                            = "System.Web.Mobile, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemWebRegularExpressions                = "System.Web.RegularExpressions, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string SystemWebRouting                           = "System.Web.Routing, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + SharedLibPublicKey;
+    internal const string SystemWebServices                          = "System.Web.Services, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    
+    internal const string WindowsBase                                = "WindowsBase, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + SharedLibPublicKey;
+    
+    internal const string MicrosoftVisualStudio                      = "Microsoft.VisualStudio, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string MicrosoftVisualStudioWindowsForms          = "Microsoft.VisualStudio.Windows.Forms, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string VJSharpCodeProvider                        = "VJSharpCodeProvider, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+
+    internal const string ASPBrowserCapsPublicKey                    = "b7bd7678b977bd8f";
+    internal const string ASPBrowserCapsFactory                      = "ASP.BrowserCapsFactory, Version=" + FXAssembly.Version + ", Culture=neutral, PublicKeyToken=" + ASPBrowserCapsPublicKey;
+
+
+    // We do not want these sitting in non-VS specific files.  If you need them,
+    // add this line to sources:  
+    // C_DEFINES=$(C_DEFINES) /DINCLUDE_VSREFS
+    //
+    // M.VS.dll and M.VSDesigner.dll should also be included here, but it
+    // turns out that everyone, from Data, to XSP to Winforms to diagnostics
+    // has thrown some designer-specific code into M.VS.dll or M.VSDesigner.dll.
+    //
+    
+
+
+
+
+
+// #line 157 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\assemblyrefs.cspp"
+
+    // VS Provided Assemblies... we can't strong bind to these, they 
+    // update their assembly versions too often
+    //
+    internal const string MicrosoftVSDesigner                        = "Microsoft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string MicrosoftVisualStudioWeb                   = "Microsoft.VisualStudio.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string MicrosoftWebDesign                         = "Microsoft.Web.Design.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string MicrosoftVSDesignerMobile                  = "Microsoft.VSDesigner.Mobile, Version=8.0.0.0, Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    internal const string MicrosoftJScript                           = "Microsoft.JScript, Version=8.0.0.0, Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    
+    //internal const string MicrosoftVSDesigner                        = "Microsoft.VSDesigner, Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;
+    //internal const string MicrosoftJScript                           = "Microsoft.JScript, Culture=neutral, PublicKeyToken=" + MicrosoftPublicKey;   
+}
+#pragma warning restore 436
+// #line 172 "d:\\projectk_2\\src\\ndp\\clr\\src\\bcl.oss\\open\\src\\common\\assemblyrefs.cspp"
diff --git a/src/mscorlib/System.Private.CoreLib.csproj b/src/mscorlib/System.Private.CoreLib.csproj
new file mode 100644 (file)
index 0000000..e1e6d3b
--- /dev/null
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  
+  <!-- Include common build properties -->
+  <Import Project="..\..\dir.props" />
+  <!-- Compilation options -->
+  <PropertyGroup>
+    <AvailablePlatforms>amd64,x86,arm,arm64</AvailablePlatforms>
+    <Configuration Condition=" '$(Configuration)' == '' ">$(BuildType)</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">$(BuildArch)</Platform>
+    <!-- The CLR properties use amd64 as their platform string, we want to keep in sync with those, so set Platform appropriately,
+         though still use the 'x64' output path (see use of BuildArch below) -->
+    <Platform Condition=" '$(Platform)' == 'x64' ">amd64</Platform>
+    <ProjectGuid>{3DA06C3A-2E7B-4CB7-80ED-9B12916013F9}</ProjectGuid>
+
+    <OutputType>Library</OutputType>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    
+    <!-- This prevents the default MsBuild targets from referencing System.Core.dll -->
+    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
+    <!-- These prevent the default MsBuild targets from referencing System.dll and mscorlib.dll -->
+    <NoStdLib>true</NoStdLib>
+    <NoCompilerStandardLib>true</NoCompilerStandardLib>
+    
+    <SubsystemVersion>6.00</SubsystemVersion>
+    <UTF8OutPut>true</UTF8OutPut>
+    <HighEntropyVA>true</HighEntropyVA>
+    <ErrorReport>prompt</ErrorReport>
+    <Optimize Condition="'$(Optimize)' == ''">true</Optimize>
+    <GenerateNativeVersionInfo Condition="'$(OsEnvironment)'=='Windows_NT'">true</GenerateNativeVersionInfo>
+    <CLSCompliant>true</CLSCompliant>
+    <WarningLevel>4</WarningLevel>
+    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+    <WarningsNotAsErrors>$(WarningsNotAsErrors);618</WarningsNotAsErrors>
+    <NoWarn>649,3019,414,169,3015</NoWarn>
+    <GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>
+
+    <BclRewriterModelFile>model.CoreLib.xml</BclRewriterModelFile>
+
+    <SignAssembly>true</SignAssembly>
+    <DelaySign>true</DelaySign>
+
+    <DefineConstants>$(DefineConstants);_USE_NLS_PLUS_TABLE;RESOURCE_SATELLITE_CONFIG;INSIDE_CLR;CODE_ANALYSIS_BASELINE</DefineConstants>
+  </PropertyGroup>
+
+  <!-- Add Serviceable attribute to the project's metadata -->
+  <ItemGroup>
+    <AssemblyMetadata Include="Serviceable">
+        <Value>True</Value>
+    </AssemblyMetadata>
+  </ItemGroup>
+
+  <!-- Platform specific properties -->
+  <PropertyGroup Condition="'$(Platform)' == 'amd64'">
+    <PlatformTarget>x64</PlatformTarget>
+    <Prefer32Bit>false</Prefer32Bit>
+    <BaseAddress>0x180000000</BaseAddress>
+    <DefineConstants>WIN64;AMD64;$(DefineConstants)</DefineConstants>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)' == 'x86'">
+    <PlatformTarget>x86</PlatformTarget>
+    <BaseAddress>0x10000000</BaseAddress>
+    <DefineConstants>WIN32;$(DefineConstants)</DefineConstants>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)' == 'arm'">
+    <PlatformTarget>arm</PlatformTarget>
+    <DefineConstants>WIN32;ARM;$(DefineConstants)</DefineConstants>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Platform)' == 'arm64'">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DefineConstants>WIN64;ARM64;$(DefineConstants)</DefineConstants>
+  </PropertyGroup>
+  
+  <!-- Configuration specific properties -->
+  <PropertyGroup Condition="'$(Configuration)' == 'Debug' or '$(Configuration)' == 'Checked'">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <DefineConstants>DBG;_DEBUG;_LOGGING;DEBUG;TRACE;$(DefineConstants)</DefineConstants>
+    <DefineConstants Condition="'$(Platform)' == 'x86' or '$(Platform)' == 'amd64'">CODE_ANALYSIS;$(DefineConstants)</DefineConstants>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>pdbOnly</DebugType>
+    <DefineConstants>TRACE;$(DefineConstants)</DefineConstants>
+  </PropertyGroup>
+
+  <!-- Roslyn does not support writing PDBs on Unix -->
+  <PropertyGroup Condition="'$(OsEnvironment)' == 'Unix'">
+    <DebugSymbols>false</DebugSymbols>
+    <DebugType>none</DebugType>
+  </PropertyGroup>
+
+  <!-- Assembly attributes -->
+  <PropertyGroup>
+    <AssemblyName>System.Private.CoreLib</AssemblyName>
+    <AssemblyVersion>4.0.0.0</AssemblyVersion>
+    <MajorVersion>4</MajorVersion>
+    <MinorVersion>6</MinorVersion>
+  </PropertyGroup>
+  <ItemGroup>
+    <AssemblyInfoLines Include="[assembly: System.Resources.SatelliteContractVersion(&quot;$(AssemblyVersion)&quot;)]" />
+    <AssemblyInfoLines Include="[assembly: System.Security.AllowPartiallyTrustedCallers]" />
+    <AssemblyInfoLines Include="[assembly: System.Runtime.InteropServices.ComVisible(false)]" />
+    <AssemblyInfoLines Include="[assembly: System.Resources.NeutralResourcesLanguage(&quot;en-US&quot;)]" />
+  </ItemGroup>
+
+  <!--
+    Helper Paths
+  -->
+  <PropertyGroup>
+    <PostProcessingToolsPath Condition="'$(PostProcessingToolsPath)'==''">$(MSBuildThisFileDirectory)Tools\PostProcessingTools.targets</PostProcessingToolsPath>
+    <CommonPath>$(MSBuildThisFileDirectory)Common</CommonPath>
+    <BclSourcesRoot>$(MSBuildThisFileDirectory)src</BclSourcesRoot>
+    <CoreFxSourcesRoot>$(MSBuildThisFileDirectory)corefx</CoreFxSourcesRoot>
+    <MscorlibDir>$(MSBuildThisFileDirectory)</MscorlibDir>
+    <NlpObjDir>$(BclSourcesRoot)\System\Globalization\Tables</NlpObjDir>
+  </PropertyGroup>
+  
+  <!-- Output paths -->
+  <PropertyGroup>
+    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$(RootBinDir)obj</BaseIntermediateOutputPath>
+    <IntermediateOutputPath Condition="'$(IntermediateOutputPath)' == ''">$(BaseIntermediateOutputPath)\$(BuildOS).$(BuildArch).$(Configuration)</IntermediateOutputPath>
+    <OutputPath Condition="'$(OutputPath)' == ''">$(BaseIntermediateOutputPath)\$(BuildOS).$(BuildArch).$(Configuration)</OutputPath>
+    <FinalOutputPath Condition="'$(FinalOutputPath)' == ''">$(BinDir)</FinalOutputPath>
+  </PropertyGroup>
+  
+  <!-- Msbuild variables needed to get CoreCLR features to be set properly. -->
+  <PropertyGroup>
+    <ClrProduct>core_clr</ClrProduct>
+    <BuildForCoreSystem>true</BuildForCoreSystem>
+    
+    <!-- These are needed by BCLRewriter -->
+    <_BuildType Condition="'$(Configuration)' == 'Debug'">chk</_BuildType>
+    <_BuildType Condition="'$(Configuration)' == 'Checked'">chk</_BuildType>
+    <_BuildType Condition="'$(Configuration)' == 'Release'">ret</_BuildType>
+
+    <!-- These are needed to make sure we have the right set of defines -->
+    <TargetArch Condition="'$(Platform)'=='x86'">i386</TargetArch>
+    <TargetArch Condition="'$(Platform)'!='x86'">$(Platform)</TargetArch>
+  </PropertyGroup>
+  
+  <!-- CLR Features -->
+  <Import Project="$(MSBuildThisFileDirectory)..\..\clr.coreclr.props" />
+  <Import Project="$(MSBuildThisFileDirectory)..\..\clr.defines.targets" />
+
+  <!-- Sources -->
+  <Import Project="$(MSBuildThisFileDirectory)\mscorlib.shared.sources.props" />
+
+  <!-- Include additional sources shared files in the compilation -->
+  <ItemGroup>
+    <!-- These are files are preprocessed  -->
+    <MscorlibSources Include="$(CommonPath)\Preprocessed\AssemblyRefs.CoreLib.g.cs" />
+
+    <!-- These files are shared with other framework components and don't live the same folder as the rest of them-->
+    <MscorlibSources Include="$(CommonPath)\PinnableBufferCache.cs" />
+
+    <!-- Include Internals visible to file in the compilation -->
+    <MscorlibSources Include="$(BclSourcesRoot)\mscorlib.Friends.cs" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <!-- We want the sources to show up nicely in VS-->
+    <Compile Include="@(MscorlibSources)">
+    </Compile>
+  </ItemGroup>
+  
+  <!-- Resources -->
+  <ItemGroup>
+    <SplitTextStringResource Include="$(BclSourcesRoot)\mscorlib.txt">
+      <ResFile>System.Private.CoreLib</ResFile>
+      <ResGenDefines>$(DefineConstants)</ResGenDefines>
+    </SplitTextStringResource>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="$(NlpObjDir)\charinfo.nlp">
+      <LogicalName>charinfo.nlp</LogicalName>
+    </EmbeddedResource>
+  </ItemGroup>
+
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.Targets" />
+
+  <!-- Import signing tools -->
+  <Import Condition="Exists('$(ToolsDir)\sign.targets')" Project="$(ToolsDir)\sign.targets" />
+
+  <!-- Overwrite the key that we are going to use for signing -->
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)Tools\Signing\mscorlib.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+
+  <Import Project="$(MSBuildThisFileDirectory)Tools\Versioning\GenerateVersionInfo.targets"/>
+  <!-- Override versioning targets -->
+  <Import Condition="Exists('$(ToolsDir)versioning.targets')" Project="$(ToolsDir)versioning.targets" />
+
+  <PropertyGroup>
+    <!-- Use a different nativeresource file to avoid conflicts with mscorlib-->
+    <Win32Resource Condition="'$(GenerateNativeVersionInfo)'=='true'">$(IntermediateOutputPath)\System.Private.CoreLib.res</Win32Resource>
+  </PropertyGroup>
+
+  <Import Project="GenerateSplitStringResources.targets"/>
+  <Import Project="GenerateCompilerResponseFile.targets"/>
+  <Import Project="$(PostProcessingToolsPath)" />
+</Project>
index 5299852..75c5f59 100644 (file)
@@ -5,7 +5,7 @@
   <!-- ********************************************************************************************* -->
 
   <PropertyGroup>
-    <BclRewriterModelFile>$(MscorlibDir)model.xml</BclRewriterModelFile>
+    <BclRewriterModelFile Condition="'$(BclRewriterModelFile)'==''">$(MscorlibDir)model.xml</BclRewriterModelFile>
     <BclRewriterWorkDir>$(IntermediateOutputPath)\BclRewriter</BclRewriterWorkDir>
     <BclRewriterSymbolOutput>$(IntermediateOutputPath)\BclRewriter\$(TargetName).pdb</BclRewriterSymbolOutput>
     <BclRewriterOutput>$(IntermediateOutputPath)\BclRewriter\$(TargetName)$(TargetExt)</BclRewriterOutput>
index 2431e38..9041fc1 100644 (file)
@@ -21,7 +21,7 @@ namespace System.Globalization
         {
             m_name = culture.m_name;
             m_sortName = culture.SortName;
-            m_sortHandle = Interop.GlobalizationInterop.GetSortHandle(System.Text.Encoding.UTF8.GetBytes(m_sortName));
+            m_sortHandle = Interop.GlobalizationInterop.GetSortHandle(GetNullTerminatedUtf8String(m_sortName));
             m_isAsciiEqualityOrdinal = (m_sortName == "en-US" || m_sortName == "");
         }
 
@@ -165,7 +165,7 @@ namespace System.Globalization
                 return IndexOfOrdinal(source, target, startIndex, count, ignoreCase: false);
             }
 
-            if (m_isAsciiEqualityOrdinal && CanUseAsciiOrdinalForOptions(options) && source.IsAscii() && target.IsAscii())
+            if (m_isAsciiEqualityOrdinal && CanUseAsciiOrdinalForOptions(options) && source.IsFastSort() && target.IsFastSort())
             {
                 return IndexOf(source, target, startIndex, count, GetOrdinalCompareOptions(options));
             }
@@ -195,7 +195,7 @@ namespace System.Globalization
                 return LastIndexOfOrdinal(source, target, startIndex, count, ignoreCase: false);
             }
 
-            if (m_isAsciiEqualityOrdinal && CanUseAsciiOrdinalForOptions(options) && source.IsAscii() && target.IsAscii())
+            if (m_isAsciiEqualityOrdinal && CanUseAsciiOrdinalForOptions(options) && source.IsFastSort() && target.IsFastSort())
             {
                 return LastIndexOf(source, target, startIndex, count, GetOrdinalCompareOptions(options));
             }
@@ -219,7 +219,7 @@ namespace System.Globalization
             Contract.Assert(!string.IsNullOrEmpty(prefix));
             Contract.Assert((options & (CompareOptions.Ordinal | CompareOptions.OrdinalIgnoreCase)) == 0);
 
-            if (m_isAsciiEqualityOrdinal && CanUseAsciiOrdinalForOptions(options) && source.IsAscii() && prefix.IsAscii())
+            if (m_isAsciiEqualityOrdinal && CanUseAsciiOrdinalForOptions(options) && source.IsFastSort() && prefix.IsFastSort())
             {
                 return IsPrefix(source, prefix, GetOrdinalCompareOptions(options));
             }
@@ -234,7 +234,7 @@ namespace System.Globalization
             Contract.Assert(!string.IsNullOrEmpty(suffix));
             Contract.Assert((options & (CompareOptions.Ordinal | CompareOptions.OrdinalIgnoreCase)) == 0);
 
-            if (m_isAsciiEqualityOrdinal && CanUseAsciiOrdinalForOptions(options) && source.IsAscii() && suffix.IsAscii())
+            if (m_isAsciiEqualityOrdinal && CanUseAsciiOrdinalForOptions(options) && source.IsFastSort() && suffix.IsFastSort())
             {
                 return IsSuffix(source, suffix, GetOrdinalCompareOptions(options));
             }
@@ -298,5 +298,19 @@ namespace System.Globalization
             // Unlike the other Ignore options, IgnoreSymbols impacts ASCII characters (e.g. ').
             return (options & CompareOptions.IgnoreSymbols) == 0;
         }
+
+        private static byte[] GetNullTerminatedUtf8String(string s)
+        {
+            int byteLen = System.Text.Encoding.UTF8.GetByteCount(s);
+
+            // Allocate an extra byte (which defaults to 0) as the null terminator.
+            byte[] buffer = new byte[byteLen + 1];
+
+            int bytesWritten = System.Text.Encoding.UTF8.GetBytes(s, 0, s.Length, buffer, 0);
+
+            Contract.Assert(bytesWritten == byteLen);
+
+            return buffer;
+        }
     }
 }
diff --git a/src/mscorlib/facade/mscorlib.csproj b/src/mscorlib/facade/mscorlib.csproj
new file mode 100644 (file)
index 0000000..21c26dc
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+  <PropertyGroup>
+    <AssemblyName>mscorlib</AssemblyName>
+    <ProjectGuid>{263342A6-FC48-4CFC-B16A-2AF964D3536C}</ProjectGuid>
+    <ClsCompliant>true</ClsCompliant>
+    <AssemblyVersion>4.0.0.0</AssemblyVersion>
+    <IsPartialFacadeAssembly>true</IsPartialFacadeAssembly>
+    <OutputType>Library</OutputType>
+    <ExcludeMscorlibFacade>true</ExcludeMscorlibFacade>
+
+    <!-- This prevents the default MsBuild targets from referencing System.Core.dll -->
+    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
+    <!-- These prevent the default MsBuild targets from referencing System.dll and mscorlib.dll -->
+    <NoStdLib>true</NoStdLib>
+    <NoCompilerStandardLib>true</NoCompilerStandardLib>
+
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+  <!-- Default configurations to help VS understand the options -->
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcore50_Debug|AnyCPU'" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcore50_Release|AnyCPU'" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcore50aot_Debug|AnyCPU'" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcore50aot_Release|AnyCPU'" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'net462_Debug|AnyCPU'" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'net462_Release|AnyCPU'" />
+
+  <!-- Roslyn does not support writing PDBs on Unix -->
+  <PropertyGroup Condition="'$(OsEnvironment)' == 'Unix'">
+    <DebugSymbols>false</DebugSymbols>
+    <DebugType>none</DebugType>
+  </PropertyGroup>
+
+  <!-- Output paths -->
+  <PropertyGroup>
+    <BaseIntermediateOutputPath>$(RootBinDir)\obj</BaseIntermediateOutputPath>
+    <!-- Note the trailing '\\' - they are needed so that genfacade does not fail due to an invalid path
+         In particular, the facadepath is sent in quotes. 
+         And the IntermediateOutputPath is required to end in a '\' in the coreclr repo. This means that the 
+         facadepath ends up being sent as 'mypath\"' and that trips the Path normalization.
+         Introducing a second '\' tricks the normalization logic to treat this '\\"' as '\"' and not complain.    -->
+    <IntermediateOutputPath>$(BaseIntermediateOutputPath)\$(BuildOS).$(BuildArch).$(Configuration)\facade\\</IntermediateOutputPath>
+    <OutputPath>$(BinDir)\facade</OutputPath>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\System.Private.CoreLib.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Include="project.json" />
+  </ItemGroup>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+
+ <PropertyGroup>
+    <!-- Overwrite the key that we are going to use for signing -->
+    <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)..\Tools\Signing\mscorlib.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+</Project>
diff --git a/src/mscorlib/model.CoreLib.xml b/src/mscorlib/model.CoreLib.xml
new file mode 100644 (file)
index 0000000..7b5214b
--- /dev/null
@@ -0,0 +1,10974 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ThinModel>
+  <Assembly Status="ApiRoot" Name="System.Private.CoreLib">
+    <Type Name="System.AccessViolationException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member MemberType="Field" Name="_accessType" />
+      <Member MemberType="Field" Name="_ip" />
+      <Member MemberType="Field" Name="_target" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Action">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke" />
+    </Type>
+    <Type Name="System.Action&lt;T&gt;">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(T,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(T)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Action&lt;T1,T2&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Action&lt;T1,T2,T3&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Action&lt;T1,T2,T3,T4&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,T4,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3,T4)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Action&lt;T1,T2,T3,T4,T5&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,T4,T5,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3,T4,T5)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Action&lt;T1,T2,T3,T4,T5,T6&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,T4,T5,T6,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3,T4,T5,T6)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Action&lt;T1,T2,T3,T4,T5,T6,T7&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,T4,T5,T6,T7,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3,T4,T5,T6,T7)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Action&lt;T1,T2,T3,T4,T5,T6,T7,T8&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,T4,T5,T6,T7,T8,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3,T4,T5,T6,T7,T8)" />
+    </Type>
+    <Type Name="System.Activator">
+      <Member Name="CreateInstance(System.Type)" />
+      <Member Name="CreateInstance(System.Type,System.Object[])" />
+      <Member Name="CreateInstance&lt;T&gt;" />
+      <Member Name="CreateInstance(System.Type,System.Boolean)"/>
+    </Type>
+    <Type Name="System.AppDomain">
+      <Member Name="get_CurrentDomain" />
+      <Member Status="ImplRoot" Name="get_MonitoringIsEnabled" />
+      <Member Status="ImplRoot" Name="set_MonitoringIsEnabled(System.Boolean)" />
+      <Member Status="ImplRoot" Name="get_MonitoringTotalProcessorTime" />
+      <Member Status="ImplRoot" Name="get_MonitoringTotalAllocatedMemorySize" />
+      <Member Status="ImplRoot" Name="get_MonitoringSurvivedMemorySize" />
+      <Member Status="ImplRoot" Name="get_MonitoringSurvivedProcessMemorySize" />
+      <Member Status="ImplRoot" MemberType="Property" Name="MonitoringIsEnabled" />
+      <Member Status="ImplRoot" MemberType="Property" Name="MonitoringTotalProcessorTime" />
+      <Member Status="ImplRoot" MemberType="Property" Name="MonitoringTotalAllocatedMemorySize" />
+      <Member Status="ImplRoot" MemberType="Property" Name="MonitoringSurvivedMemorySize" />
+      <Member Status="ImplRoot" MemberType="Property" Name="MonitoringSurvivedProcessMemorySize" />
+      <Member MemberType="Property" Name="IsFullyTrusted" />
+      <Member Name="GetData(System.String)" />
+      <Member Name="ToString" />
+      <Member Status="ImplRoot" Name="SetupDomainSecurity(System.Security.Policy.Evidence,System.IntPtr,System.Boolean)" />
+      <Member Status="ImplRoot" Name="SetupDomainSecurity(System.AppDomainHandle,System.Runtime.CompilerServices.ObjectHandleOnStack,System.IntPtr,System.Boolean)" />
+      <Member Status="ImplRoot" MemberType="Event" Name="AssemblyResolve" />
+      <Member Status="ImplRoot" Name="OnAssemblyResolveEvent(System.Reflection.RuntimeAssembly,System.String)" />
+      <Member Status="ImplRoot" MemberType="Event" Name="AssemblyLoad" />
+      <Member Status="ImplRoot" MemberType="Event" Name="ResourceResolve" />
+      <Member Status="ImplRoot" MemberType="Event" Name="TypeResolve" />
+      <Member Status="ImplRoot" MemberType="Event" Name="DomainUnload" />
+      <Member Status="ImplRoot" MemberType="Field" Name="_applicationTrust" />
+      <Member Status="ImplRoot" MemberType="Field" Name="_FusionStore" />
+      <Member Status="ImplRoot" MemberType="Field" Name="_HasSetPolicy" />
+      <Member Status="ImplRoot" MemberType="Field" Name="_LocalStore" />
+      <Member Status="ImplRoot" MemberType="Field" Name="_processExit" />
+      <Member Status="ImplRoot" MemberType="Field" Name="_SecurityIdentity" />
+      <Member Status="ImplRoot" MemberType="Field" Name="_unhandledException" />
+      <Member Status="ImplRoot" Name="OnAssemblyLoadEvent(System.Reflection.RuntimeAssembly)" />
+      <Member Status="ImplRoot" Name="OnResourceResolveEvent(System.Reflection.RuntimeAssembly,System.String)" />
+      <Member Status="ImplRoot" Name="OnTypeResolveEvent(System.Reflection.RuntimeAssembly,System.String)" />
+      <Member Status="ImplRoot" Name="PrepareDataForSetup(System.String,System.AppDomainSetup,System.Security.Policy.Evidence,System.Security.Policy.Evidence,System.IntPtr,System.String,System.String[],System.String[])" />
+      <Member Status="ImplRoot" Name="Setup(System.Object)" />
+      <Member Status="ImplRoot" Name="SetupDomain(System.Boolean,System.String,System.String,System.String[],System.String[])" />
+      <Member Status="ImplRoot" Name="nCreateContext" />
+      <Member Name="OnDesignerNamespaceResolveEvent(System.String)" Condition="FEATURE_COMINTEROP" />
+      <Member MemberType="Property" Name="BaseDirectory" />
+      <Member Name="get_BaseDirectory" />
+    </Type>
+    <Type Name="System.AppDomainManager">
+      <Member Name="#ctor" />
+      <Member Name="InitializeNewDomain(System.AppDomainSetup)" />
+      <Member Name="CheckSecuritySettings(System.Security.SecurityState)" />
+    </Type>
+    <Type Name="System.AppDomainUnloadedException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.AppContext">
+      <Member Name="get_BaseDirectory" />
+      <Member MemberType="Property" Name="BaseDirectory" />
+      <Member Name="get_TargetFrameworkName" />
+      <Member MemberType="Property" Name="TargetFrameworkName" />
+      <Member Name="DefineSwitchDefault(System.String,System.Boolean)" />
+      <Member Name="SetSwitch(System.String,System.Boolean)" />
+      <Member Name="TryGetSwitch(System.String,System.Boolean@)" />
+      <Member Name="GetData(System.String)" />
+    </Type>
+    <Type Name="System.ApplicationException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Collections.ArrayList">
+      <Member Name="ReadOnly(System.Collections.IList)" />
+    </Type>
+    <Type Name="System.ArgumentException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member Name="#ctor(System.String,System.String,System.Exception)" />
+      <Member Name="get_ParamName" />
+      <Member MemberType="Property" Name="ParamName" />
+    </Type>
+    <Type Name="System.ArgumentNullException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.ArgumentOutOfRangeException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="#ctor(System.String,System.Object,System.String)" />
+      <Member Name="get_ActualValue" />
+      <Member MemberType="Property" Name="ActualValue" />
+    </Type>
+    <Type Name="System.ArithmeticException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Array">
+      <Member Name="AsReadOnly&lt;T&gt;(T[])" />
+      <Member Name="BinarySearch(System.Array,System.Int32,System.Int32,System.Object)" />
+      <Member Name="BinarySearch(System.Array,System.Int32,System.Int32,System.Object,System.Collections.IComparer)" />
+      <Member Name="BinarySearch(System.Array,System.Object)" />
+      <Member Name="BinarySearch(System.Array,System.Object,System.Collections.IComparer)" />
+      <Member Name="BinarySearch&lt;T&gt;(T[],System.Int32,System.Int32,T)" />
+      <Member Name="BinarySearch&lt;T&gt;(T[],System.Int32,System.Int32,T,System.Collections.Generic.IComparer&lt;T&gt;)" />
+      <Member Name="BinarySearch&lt;T&gt;(T[],T)" />
+      <Member Name="BinarySearch&lt;T&gt;(T[],T,System.Collections.Generic.IComparer&lt;T&gt;)" />
+      <Member Name="Clear(System.Array,System.Int32,System.Int32)" />
+      <Member Name="Clone" />
+      <Member Name="ConstrainedCopy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />
+      <Member Name="Copy(System.Array,System.Array,System.Int32)" />
+      <Member Name="Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />
+      <Member Name="CopyTo(System.Array,System.Int32)" />
+      <Member Name="CreateInstance(System.Type,System.Int32)" />
+      <Member Name="CreateInstance(System.Type,System.Int32[])" />
+      <Member Name="CreateInstance(System.Type,System.Int32[],System.Int32[])" />
+      <Member Name="ForEach&lt;T&gt;(T[],System.Action&lt;T&gt;)" />
+      <Member Name="Empty&lt;T&gt;" />
+      <Member Name="Exists&lt;T&gt;(T[],System.Predicate&lt;T&gt;)" />
+      <Member Name="Find&lt;T&gt;(T[],System.Predicate&lt;T&gt;)" />
+      <Member Name="FindAll&lt;T&gt;(T[],System.Predicate&lt;T&gt;)" />
+      <Member Name="FindIndex&lt;T&gt;(T[],System.Int32,System.Int32,System.Predicate&lt;T&gt;)" />
+      <Member Name="FindIndex&lt;T&gt;(T[],System.Int32,System.Predicate&lt;T&gt;)" />
+      <Member Name="FindIndex&lt;T&gt;(T[],System.Predicate&lt;T&gt;)" />
+      <Member Name="FindLast&lt;T&gt;(T[],System.Predicate&lt;T&gt;)" />
+      <Member Name="FindLastIndex&lt;T&gt;(T[],System.Int32,System.Int32,System.Predicate&lt;T&gt;)" />
+      <Member Name="FindLastIndex&lt;T&gt;(T[],System.Int32,System.Predicate&lt;T&gt;)" />
+      <Member Name="FindLastIndex&lt;T&gt;(T[],System.Predicate&lt;T&gt;)" />
+      <Member Name="get_IsFixedSize" />
+      <Member Name="get_IsReadOnly" />
+      <Member Name="get_IsSynchronized" />
+      <Member Name="get_Length" />
+      <Member Name="get_Rank" />
+      <Member Name="get_SyncRoot" />
+      <Member Name="GetEnumerator" />
+      <Member Name="GetLength(System.Int32)" />
+      <Member Name="GetLowerBound(System.Int32)" />
+      <Member Name="GetUpperBound(System.Int32)" />
+      <Member Name="GetValue(System.Int32)" />
+      <Member Name="GetValue(System.Int32[])" />
+      <Member Name="IndexOf(System.Array,System.Object)" />
+      <Member Name="IndexOf(System.Array,System.Object,System.Int32)" />
+      <Member Name="IndexOf(System.Array,System.Object,System.Int32,System.Int32)" />
+      <Member Name="IndexOf&lt;T&gt;(T[],T)" />
+      <Member Name="IndexOf&lt;T&gt;(T[],T,System.Int32)" />
+      <Member Name="IndexOf&lt;T&gt;(T[],T,System.Int32,System.Int32)" />
+      <Member Name="Initialize" />
+      <Member Name="LastIndexOf(System.Array,System.Object)" />
+      <Member Name="LastIndexOf(System.Array,System.Object,System.Int32)" />
+      <Member Name="LastIndexOf(System.Array,System.Object,System.Int32,System.Int32)" />
+      <Member Name="LastIndexOf&lt;T&gt;(T[],T)" />
+      <Member Name="LastIndexOf&lt;T&gt;(T[],T,System.Int32)" />
+      <Member Name="LastIndexOf&lt;T&gt;(T[],T,System.Int32,System.Int32)" />
+      <Member Name="Resize&lt;T&gt;(T[]@,System.Int32)" />
+      <Member Name="Reverse(System.Array)" />
+      <Member Name="Reverse(System.Array,System.Int32,System.Int32)" />
+      <Member Name="SetValue(System.Object,System.Int32)" />
+      <Member Name="SetValue(System.Object,System.Int32[])" />
+      <Member Name="Sort(System.Array)" />
+      <Member Name="Sort(System.Array,System.Array)" />
+      <Member Name="Sort(System.Array,System.Array,System.Collections.IComparer)" />
+      <Member Name="Sort(System.Array,System.Array,System.Int32,System.Int32)" />
+      <Member Name="Sort(System.Array,System.Array,System.Int32,System.Int32,System.Collections.IComparer)" />
+      <Member Name="Sort(System.Array,System.Collections.IComparer)" />
+      <Member Name="Sort(System.Array,System.Int32,System.Int32)" />
+      <Member Name="Sort(System.Array,System.Int32,System.Int32,System.Collections.IComparer)" />
+      <Member Name="Sort&lt;T&gt;(T[])" />
+      <Member Name="Sort&lt;T&gt;(T[],System.Collections.Generic.IComparer&lt;T&gt;)" />
+      <Member Name="Sort&lt;T&gt;(T[],System.Comparison&lt;T&gt;)" />
+      <Member Name="Sort&lt;T&gt;(T[],System.Int32,System.Int32)" />
+      <Member Name="Sort&lt;T&gt;(T[],System.Int32,System.Int32,System.Collections.Generic.IComparer&lt;T&gt;)" />
+      <Member Name="Sort&lt;TKey,TValue&gt;(TKey[],TValue[])" />
+      <Member Name="Sort&lt;TKey,TValue&gt;(TKey[],TValue[],System.Collections.Generic.IComparer&lt;TKey&gt;)" />
+      <Member Name="Sort&lt;TKey,TValue&gt;(TKey[],TValue[],System.Int32,System.Int32)" />
+      <Member Name="Sort&lt;TKey,TValue&gt;(TKey[],TValue[],System.Int32,System.Int32,System.Collections.Generic.IComparer&lt;TKey&gt;)" />
+      <Member Name="TrueForAll&lt;T&gt;(T[],System.Predicate&lt;T&gt;)" />
+      <Member MemberType="Property" Name="IsFixedSize" />
+      <Member MemberType="Property" Name="IsReadOnly" />
+      <Member MemberType="Property" Name="IsSynchronized" />
+      <Member MemberType="Property" Name="Length" />
+      <Member MemberType="Property" Name="Rank" />
+      <Member MemberType="Property" Name="SyncRoot" />
+      <Member Status="ImplRoot" Name="GetDataPtrOffsetInternal" /> <!-- EE -->
+    </Type>
+    <Type Name="System.ArraySegment&lt;T&gt;">
+        <Member Name="#ctor(T[])" />
+        <Member Name="#ctor(T[],System.Int32,System.Int32)" />
+        <Member Name="Equals(System.ArraySegment&lt;T&gt;)" />
+        <Member Name="Equals(System.Object)" />
+        <Member Name="get_Array" />
+        <Member Name="get_Count" />
+        <Member Name="get_Offset" />
+        <Member Name="GetHashCode" />
+        <Member Name="op_Equality(System.ArraySegment&lt;T&gt;,System.ArraySegment&lt;T&gt;)" />
+        <Member Name="op_Inequality(System.ArraySegment&lt;T&gt;,System.ArraySegment&lt;T&gt;)" />
+        <Member MemberType="Property" Name="Array" />
+        <Member MemberType="Property" Name="Count" />
+        <Member MemberType="Property" Name="Offset" />
+    </Type>
+    <Type Name="System.ArrayTypeMismatchException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.AsyncCallback">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(System.IAsyncResult,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(System.IAsyncResult)" />
+    </Type>
+    <Type Name="System.Attribute">
+      <Member Name="#ctor" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetCustomAttribute(System.Reflection.Assembly,System.Type)" />
+      <Member Name="GetCustomAttribute(System.Reflection.Assembly,System.Type,System.Boolean)" />
+      <Member Name="GetCustomAttribute(System.Reflection.MemberInfo,System.Type)" />
+      <Member Name="GetCustomAttribute(System.Reflection.MemberInfo,System.Type,System.Boolean)" />
+      <Member Name="GetCustomAttribute(System.Reflection.Module,System.Type)" />
+      <Member Name="GetCustomAttribute(System.Reflection.Module,System.Type,System.Boolean)" />
+      <Member Name="GetCustomAttribute(System.Reflection.ParameterInfo,System.Type)" />
+      <Member Name="GetCustomAttribute(System.Reflection.ParameterInfo,System.Type,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Assembly)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Assembly,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Assembly,System.Type)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Assembly,System.Type,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.MemberInfo)" />
+      <Member Name="GetCustomAttributes(System.Reflection.MemberInfo,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.MemberInfo,System.Type)" />
+      <Member Name="GetCustomAttributes(System.Reflection.MemberInfo,System.Type,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Module)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Module,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Module,System.Type)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Module,System.Type,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.ParameterInfo)" />
+      <Member Name="GetCustomAttributes(System.Reflection.ParameterInfo,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.ParameterInfo,System.Type)" />
+      <Member Name="GetCustomAttributes(System.Reflection.ParameterInfo,System.Type,System.Boolean)" />
+      <Member Name="GetHashCode" />
+      <Member Name="IsDefined(System.Reflection.Assembly,System.Type)" />
+      <Member Name="IsDefined(System.Reflection.Assembly,System.Type,System.Boolean)" />
+      <Member Name="IsDefined(System.Reflection.MemberInfo,System.Type)" />
+      <Member Name="IsDefined(System.Reflection.MemberInfo,System.Type,System.Boolean)" />
+      <Member Name="IsDefined(System.Reflection.Module,System.Type)" />
+      <Member Name="IsDefined(System.Reflection.Module,System.Type,System.Boolean)" />
+      <Member Name="IsDefined(System.Reflection.ParameterInfo,System.Type)" />
+      <Member Name="IsDefined(System.Reflection.ParameterInfo,System.Type,System.Boolean)" />
+      <Member Name="Match(System.Object)" />
+    </Type>
+    <Type Name="System.AttributeTargets">
+      <Member MemberType="Field" Name="All" />
+      <Member MemberType="Field" Name="Assembly" />
+      <Member MemberType="Field" Name="Class" />
+      <Member MemberType="Field" Name="Constructor" />
+      <Member MemberType="Field" Name="Delegate" />
+      <Member MemberType="Field" Name="Enum" />
+      <Member MemberType="Field" Name="Event" />
+      <Member MemberType="Field" Name="Field" />
+      <Member MemberType="Field" Name="GenericParameter" />
+      <Member MemberType="Field" Name="Interface" />
+      <Member MemberType="Field" Name="Method" />
+      <Member MemberType="Field" Name="Module" />
+      <Member MemberType="Field" Name="Parameter" />
+      <Member MemberType="Field" Name="Property" />
+      <Member MemberType="Field" Name="ReturnValue" />
+      <Member MemberType="Field" Name="Struct" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.AttributeUsageAttribute">
+      <Member Name="#ctor(System.AttributeTargets)" />
+      <Member Name="get_AllowMultiple" />
+      <Member Name="get_Inherited" />
+      <Member Name="get_ValidOn" />
+      <Member Name="set_AllowMultiple(System.Boolean)" />
+      <Member Name="set_Inherited(System.Boolean)" />
+      <Member MemberType="Property" Name="AllowMultiple" />
+      <Member MemberType="Property" Name="Inherited" />
+      <Member MemberType="Property" Name="ValidOn" />
+    </Type>
+    <Type Name="System.BitConverter">
+      <Member Name="DoubleToInt64Bits(System.Double)" />
+      <Member Name="Int64BitsToDouble(System.Int64)" />
+      <Member MemberType="Field" Name="IsLittleEndian" />
+      <Member Name="GetBytes(System.Boolean)" />
+      <Member Name="GetBytes(System.Char)" />
+      <Member Name="GetBytes(System.Double)" />
+      <Member Name="GetBytes(System.Single)" />
+      <Member Name="GetBytes(System.Int32)" />
+      <Member Name="GetBytes(System.Int64)" />
+      <Member Name="GetBytes(System.Int16)" />
+      <Member Name="GetBytes(System.UInt32)" />
+      <Member Name="GetBytes(System.UInt64)" />
+      <Member Name="GetBytes(System.UInt16)" />
+      <Member Name="ToBoolean(System.Byte[],System.Int32)" />
+      <Member Name="ToChar(System.Byte[],System.Int32)" />
+      <Member Name="ToDouble(System.Byte[],System.Int32)" />
+      <Member Name="ToInt16(System.Byte[],System.Int32)" />
+      <Member Name="ToInt32(System.Byte[],System.Int32)" />
+      <Member Name="ToInt64(System.Byte[],System.Int32)" />
+      <Member Name="ToSingle(System.Byte[],System.Int32)" />
+      <Member Name="ToString(System.Byte[])" />
+      <Member Name="ToString(System.Byte[],System.Int32)" />
+      <Member Name="ToString(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="ToUInt16(System.Byte[],System.Int32)" />
+      <Member Name="ToUInt32(System.Byte[],System.Int32)" />
+      <Member Name="ToUInt64(System.Byte[],System.Int32)" />
+    </Type>
+    <Type Name="System.BadImageFormatException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Status="ImplRoot" Name="#ctor(System.String,System.String,System.Int32)" />
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member Name="#ctor(System.String,System.String,System.Exception)" />
+      <Member Name="get_FileName" />
+      <Member MemberType="Property" Name="FileName" />
+    </Type>
+    <Type Name="System.Boolean">
+      <Member MemberType="Field" Name="FalseString" />
+      <Member MemberType="Field" Name="TrueString" />
+      <Member Name="CompareTo(System.Boolean)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="Equals(System.Boolean)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="TryParse(System.String,System.Boolean@)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.Buffer">
+      <Member Name="BlockCopy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />
+      <Member Name="ByteLength(System.Array)" />
+      <Member Name="GetByte(System.Array,System.Int32)" />
+      <Member Name="SetByte(System.Array,System.Int32,System.Byte)" />
+      <Member Name="MemoryCopy(System.Void*,System.Void*,System.Int64,System.Int64)" />
+      <Member Name="MemoryCopy(System.Void*,System.Void*,System.UInt64,System.UInt64)" />
+    </Type>
+    <Type Name="System.Byte">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member Name="CompareTo(System.Byte)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="Equals(System.Byte)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.Byte@)" />
+      <Member Name="TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Byte@)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.CannotUnloadAppDomainException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Char">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member Name="CompareTo(System.Char)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="ConvertFromUtf32(System.Int32)" />
+      <Member Name="ConvertToUtf32(System.Char,System.Char)" />
+      <Member Name="ConvertToUtf32(System.String,System.Int32)" />
+      <Member Name="Equals(System.Char)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetNumericValue(System.Char)" />
+      <Member Name="GetNumericValue(System.String,System.Int32)" />
+      <Member Name="GetTypeCode" />
+      <Member Name="GetUnicodeCategory(System.Char)" />
+      <Member Name="GetUnicodeCategory(System.String,System.Int32)" />
+      <Member Name="IsControl(System.Char)" />
+      <Member Name="IsControl(System.String,System.Int32)" />
+      <Member Name="IsDigit(System.Char)" />
+      <Member Name="IsDigit(System.String,System.Int32)" />
+      <Member Name="IsHighSurrogate(System.Char)" />
+      <Member Name="IsHighSurrogate(System.String,System.Int32)" />
+      <Member Name="IsLetter(System.Char)" />
+      <Member Name="IsLetter(System.String,System.Int32)" />
+      <Member Name="IsLetterOrDigit(System.Char)" />
+      <Member Name="IsLetterOrDigit(System.String,System.Int32)" />
+      <Member Name="IsLower(System.Char)" />
+      <Member Name="IsLower(System.String,System.Int32)" />
+      <Member Name="IsLowSurrogate(System.Char)" />
+      <Member Name="IsLowSurrogate(System.String,System.Int32)" />
+      <Member Name="IsNumber(System.Char)" />
+      <Member Name="IsNumber(System.String,System.Int32)" />
+      <Member Name="IsPunctuation(System.Char)" />
+      <Member Name="IsPunctuation(System.String,System.Int32)" />
+      <Member Name="IsSeparator(System.Char)" />
+      <Member Name="IsSeparator(System.String,System.Int32)" />
+      <Member Name="IsSurrogate(System.Char)" />
+      <Member Name="IsSurrogate(System.String,System.Int32)" />
+      <Member Name="IsSurrogatePair(System.Char,System.Char)" />
+      <Member Name="IsSurrogatePair(System.String,System.Int32)" />
+      <Member Name="IsSymbol(System.Char)" />
+      <Member Name="IsSymbol(System.String,System.Int32)" />
+      <Member Name="IsUpper(System.Char)" />
+      <Member Name="IsUpper(System.String,System.Int32)" />
+      <Member Name="IsWhiteSpace(System.Char)" />
+      <Member Name="IsWhiteSpace(System.String,System.Int32)" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="ToLower(System.Char)" />
+      <Member Name="ToLower(System.Char,System.Globalization.CultureInfo)" />
+      <Member Name="ToLowerInvariant(System.Char)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.Char)" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToUpper(System.Char)" />
+      <Member Name="ToUpper(System.Char,System.Globalization.CultureInfo)" />
+      <Member Name="ToUpperInvariant(System.Char)" />
+      <Member Name="TryParse(System.String,System.Char@)" />
+    </Type>
+    <Type Name="System.CLSCompliantAttribute">
+      <Member Name="#ctor(System.Boolean)" />
+      <Member Name="get_IsCompliant" />
+      <Member MemberType="Property" Name="IsCompliant" />
+    </Type>
+    <Type Name="System.Collections.BitArray">
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Boolean)" />
+      <Member Name="#ctor(System.Byte[])" />
+      <Member Name="#ctor(System.Boolean[])" />
+      <Member Name="#ctor(System.Int32[])" />
+      <Member Name="#ctor(System.Collections.BitArray)" />
+      <Member Name="Get(System.Int32)" />
+      <Member Name="Set(System.Int32,System.Boolean)" />
+      <Member Name="SetAll(System.Boolean)" />
+      <Member Name="And(System.Collections.BitArray)" />
+      <Member Name="Or(System.Collections.BitArray)" />
+      <Member Name="Xor(System.Collections.BitArray)" />
+      <Member Name="Not" />
+      <Member Name="set_Item(System.Int32,System.Boolean)" />
+      <Member Name="get_Item(System.Int32)" /> 
+      <Member MemberType="Property" Name="Item(System.Int32)" />
+      <Member Name="get_Length" />
+      <Member Name="set_Length(System.Int32)" />
+      <Member MemberType="Property" Name="Length" />
+      <Member Name="CopyTo(System.Array,System.Int32)" />
+      <Member Name="get_Count" />
+      <Member MemberType="Property" Name="Count" />
+      <Member Name="get_IsReadOnly" />
+      <Member MemberType="Property" Name="IsReadOnly" />
+      <Member Name="get_IsSynchronized" />
+      <Member MemberType="Property" Name="IsSynchronized" />
+      <Member Name="get_SyncRoot" />
+      <Member MemberType="Property" Name="SyncRoot" />
+      <Member Name="Clone" />
+      <Member Name="GetEnumerator" />
+    </Type>
+    <Type Name="System.Collections.CollectionBase">
+      <Member Name="#ctor" />
+      <Member Name="get_List" />
+      <Member MemberType="Property" Name="List" />
+    </Type>
+    <Type Name="System.Collections.DictionaryEntry">
+      <Member Name="#ctor(System.Object,System.Object)" />
+      <Member Name="get_Key" />
+      <Member Name="get_Value" />
+      <Member Name="set_Key(System.Object)" />
+      <Member Name="set_Value(System.Object)" />
+      <Member MemberType="Property" Name="Key" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Collections.Generic.Comparer&lt;T&gt;">
+      <Member Name="#ctor" />
+      <Member Name="Compare(T,T)" />
+      <Member Name="Create(System.Comparison&lt;T&gt;)"  />
+      <Member Name="get_Default" />
+      <Member MemberType="Property" Name="Default" />
+    </Type>
+    <Type Name="System.Collections.Generic.Dictionary&lt;TKey,TValue&gt;">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Collections.Generic.IDictionary&lt;TKey,TValue&gt;)" />
+      <Member Name="#ctor(System.Collections.Generic.IDictionary&lt;TKey,TValue&gt;,System.Collections.Generic.IEqualityComparer&lt;TKey&gt;)" />
+      <Member Name="#ctor(System.Collections.Generic.IEqualityComparer&lt;TKey&gt;)" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Collections.Generic.IEqualityComparer&lt;TKey&gt;)" />
+      <Member Name="Add(TKey,TValue)" />
+      <Member Name="Clear" />
+      <Member Name="ContainsKey(TKey)" />
+      <Member Name="ContainsValue(TValue)" />
+      <Member Name="get_Comparer" />
+      <Member Name="get_Count" />
+      <Member Name="get_Item(TKey)" />
+      <Member Name="get_Keys" />
+      <Member Name="get_Values" />
+      <Member Name="GetEnumerator" />
+      <Member Name="Remove(TKey)" />
+      <Member Name="set_Item(TKey,TValue)" />
+      <Member Name="TryGetValue(TKey,TValue@)" />
+      <Member MemberType="Property" Name="Comparer" />
+      <Member MemberType="Property" Name="Count" />
+      <Member MemberType="Property" Name="Item(TKey)" />
+      <Member MemberType="Property" Name="Keys" />
+      <Member MemberType="Property" Name="Values" />
+    </Type>
+    <Type Name="System.Collections.Generic.Dictionary&lt;TKey,TValue&gt;+Enumerator">
+      <Member Name="Dispose" />
+      <Member Name="get_Current" />
+      <Member Name="MoveNext" />
+      <Member MemberType="Property" Name="Current" />
+    </Type>
+    <Type Name="System.Collections.Generic.Dictionary&lt;TKey,TValue&gt;+KeyCollection">
+      <Member Name="#ctor(System.Collections.Generic.Dictionary&lt;TKey,TValue&gt;)" />
+      <Member Name="CopyTo(TKey[],System.Int32)" />
+      <Member Name="get_Count" />
+      <Member Name="GetEnumerator" />
+      <Member MemberType="Property" Name="Count" />
+    </Type>
+    <Type Name="System.Collections.Generic.Dictionary&lt;TKey,TValue&gt;+KeyCollection+Enumerator">
+      <Member Name="Dispose" />
+      <Member Name="get_Current" />
+      <Member Name="MoveNext" />
+      <Member MemberType="Property" Name="Current" />
+    </Type>
+    <Type Name="System.Collections.Generic.Dictionary&lt;TKey,TValue&gt;+ValueCollection">
+      <Member Name="#ctor(System.Collections.Generic.Dictionary&lt;TKey,TValue&gt;)" />
+      <Member Name="CopyTo(TValue[],System.Int32)" />
+      <Member Name="get_Count" />
+      <Member Name="GetEnumerator" />
+      <Member MemberType="Property" Name="Count" />
+    </Type>
+    <Type Name="System.Collections.Generic.Dictionary&lt;TKey,TValue&gt;+ValueCollection+Enumerator">
+      <Member Name="Dispose" />
+      <Member Name="get_Current" />
+      <Member Name="MoveNext" />
+      <Member MemberType="Property" Name="Current" />
+    </Type>
+    <Type Name="System.Collections.Generic.EqualityComparer&lt;T&gt;">
+      <Member Name="#ctor" />
+      <Member Name="Equals(T,T)" />
+      <Member Name="get_Default" />
+      <Member Name="GetHashCode(T)" />
+      <Member MemberType="Property" Name="Default" />
+    </Type>
+    <Type Name="System.Collections.Generic.ICollection&lt;T&gt;">
+      <Member Name="Add(T)" />
+      <Member Name="Clear" />
+      <Member Name="Contains(T)" />
+      <Member Name="CopyTo(T[],System.Int32)" />
+      <Member Name="get_Count" />
+      <Member Name="get_IsReadOnly" />
+      <Member Name="Remove(T)" />
+      <Member MemberType="Property" Name="Count" />
+      <Member MemberType="Property" Name="IsReadOnly" />
+    </Type>
+    <Type Name="System.Collections.Generic.IComparer&lt;T&gt;">
+      <Member Name="Compare(T,T)" />
+    </Type>
+    <Type Name="System.Collections.Generic.IDictionary&lt;TKey,TValue&gt;">
+      <Member Name="Add(TKey,TValue)" />
+      <Member Name="ContainsKey(TKey)" />
+      <Member Name="get_Item(TKey)" />
+      <Member Name="get_Keys" />
+      <Member Name="get_Values" />
+      <Member Name="Remove(TKey)" />
+      <Member Name="set_Item(TKey,TValue)" />
+      <Member Name="TryGetValue(TKey,TValue@)" />
+      <Member MemberType="Property" Name="Item(TKey)" />
+      <Member MemberType="Property" Name="Keys" />
+      <Member MemberType="Property" Name="Values" />
+    </Type>
+    <Type Name="System.Collections.Generic.IEnumerable&lt;T&gt;">
+      <Member Name="GetEnumerator" />
+    </Type>
+    <Type Name="System.Collections.Generic.IEnumerator&lt;T&gt;">
+      <Member Name="get_Current" />
+      <Member MemberType="Property" Name="Current" />
+    </Type>
+    <Type Name="System.Collections.Generic.IEqualityComparer&lt;T&gt;">
+      <Member Name="Equals(T,T)" />
+      <Member Name="GetHashCode(T)" />
+    </Type>
+    <Type Name="System.Collections.Generic.IList&lt;T&gt;">
+      <Member Name="get_Item(System.Int32)" />
+      <Member Name="IndexOf(T)" />
+      <Member Name="Insert(System.Int32,T)" />
+      <Member Name="RemoveAt(System.Int32)" />
+      <Member Name="set_Item(System.Int32,T)" />
+      <Member MemberType="Property" Name="Item(System.Int32)" />
+    </Type>
+    <Type Name="System.Collections.Generic.IReadOnlyDictionary&lt;TKey,TValue&gt;">
+      <Member Name="ContainsKey(TKey)" />
+      <Member Name="get_Item(TKey)" />
+      <Member Name="get_Keys" />
+      <Member Name="get_Values" />
+      <Member Name="TryGetValue(TKey,TValue@)" />
+      <Member MemberType="Property" Name="Item(TKey)" />
+      <Member MemberType="Property" Name="Keys" />
+      <Member MemberType="Property" Name="Values" />
+    </Type>
+    <Type Name="System.Collections.Generic.IReadOnlyList&lt;T&gt;">
+      <Member Name="get_Item(System.Int32)" />
+      <Member MemberType="Property" Name="Item(System.Int32)" />
+    </Type>
+    <Type Name="System.Collections.Generic.IReadOnlyCollection&lt;T&gt;">
+      <Member MemberType="Property" Name="Count" />
+    </Type>
+    <Type Name="System.Collections.Generic.KeyNotFoundException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Collections.Generic.KeyValuePair&lt;TKey,TValue&gt;">
+      <Member Name="#ctor(TKey,TValue)" />
+      <Member Name="get_Key" />
+      <Member Name="get_Value" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Key" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Collections.Generic.List&lt;T&gt;">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Collections.Generic.IEnumerable&lt;T&gt;)" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="Add(T)" />
+      <Member Name="AddRange(System.Collections.Generic.IEnumerable&lt;T&gt;)" />
+      <Member Name="AsReadOnly" />
+      <Member Name="BinarySearch(System.Int32,System.Int32,T,System.Collections.Generic.IComparer&lt;T&gt;)" />
+      <Member Name="BinarySearch(T)" />
+      <Member Name="BinarySearch(T,System.Collections.Generic.IComparer&lt;T&gt;)" />
+      <Member Name="Clear" />
+      <Member Name="Contains(T)" />
+      <Member Name="CopyTo(System.Int32,T[],System.Int32,System.Int32)" />
+      <Member Name="CopyTo(T[])" />
+      <Member Name="CopyTo(T[],System.Int32)" />
+      <Member Name="Exists(System.Predicate&lt;T&gt;)" />
+      <Member Name="Find(System.Predicate&lt;T&gt;)" />
+      <Member Name="FindAll(System.Predicate&lt;T&gt;)" />
+      <Member Name="FindIndex(System.Int32,System.Int32,System.Predicate&lt;T&gt;)" />
+      <Member Name="FindIndex(System.Int32,System.Predicate&lt;T&gt;)" />
+      <Member Name="FindIndex(System.Predicate&lt;T&gt;)" />
+      <Member Name="FindLast(System.Predicate&lt;T&gt;)" />
+      <Member Name="FindLastIndex(System.Int32,System.Int32,System.Predicate&lt;T&gt;)" />
+      <Member Name="FindLastIndex(System.Int32,System.Predicate&lt;T&gt;)" />
+      <Member Name="FindLastIndex(System.Predicate&lt;T&gt;)" />
+      <Member Name="ForEach(System.Action&lt;T&gt;)" />
+      <Member Name="get_Capacity" />
+      <Member Name="get_Count" />
+      <Member Name="get_Item(System.Int32)" />
+      <Member Name="GetEnumerator" />
+      <Member Name="GetRange(System.Int32,System.Int32)" />
+      <Member Name="IndexOf(T)" />
+      <Member Name="IndexOf(T,System.Int32)" />
+      <Member Name="IndexOf(T,System.Int32,System.Int32)" />
+      <Member Name="Insert(System.Int32,T)" />
+      <Member Name="InsertRange(System.Int32,System.Collections.Generic.IEnumerable&lt;T&gt;)" />
+      <Member Name="LastIndexOf(T)" />
+      <Member Name="LastIndexOf(T,System.Int32)" />
+      <Member Name="LastIndexOf(T,System.Int32,System.Int32)" />
+      <Member Name="Remove(T)" />
+      <Member Name="RemoveAll(System.Predicate&lt;T&gt;)" />
+      <Member Name="RemoveAt(System.Int32)" />
+      <Member Name="RemoveRange(System.Int32,System.Int32)" />
+      <Member Name="Reverse" />
+      <Member Name="Reverse(System.Int32,System.Int32)" />
+      <Member Name="set_Capacity(System.Int32)" />
+      <Member Name="set_Item(System.Int32,T)" />
+      <Member Name="Sort" />
+      <Member Name="Sort(System.Collections.Generic.IComparer&lt;T&gt;)" />
+      <Member Name="Sort(System.Comparison&lt;T&gt;)" />
+      <Member Name="Sort(System.Int32,System.Int32,System.Collections.Generic.IComparer&lt;T&gt;)" />
+      <Member Name="ToArray" />
+      <Member Name="TrimExcess" />
+      <Member MemberType="Property" Name="Capacity" />
+      <Member MemberType="Property" Name="Count" />
+      <Member MemberType="Property" Name="Item(System.Int32)" />
+      <Member Name="TrueForAll(System.Predicate&lt;T&gt;)" />
+    </Type>
+    <Type Name="System.Collections.Generic.List&lt;T&gt;+Enumerator">
+      <Member Name="Dispose" />
+      <Member Name="get_Current" />
+      <Member Name="MoveNext" />
+      <Member MemberType="Property" Name="Current" />
+      <Member Name="System.Collections.IEnumerator.Reset" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Collections.Generic.Mscorlib_CollectionDebugView&lt;T&gt;">
+      <Member Status="ImplRoot" Name="#ctor(System.Collections.Generic.ICollection&lt;T&gt;)" />
+      <Member Status="ImplRoot" Name="get_Items" />
+      <Member Status="ImplRoot" MemberType="Property" Name="Items" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Collections.Generic.Mscorlib_DictionaryKeyCollectionDebugView&lt;TKey,TValue&gt;">
+      <Member Status="ImplRoot" Name="#ctor(System.Collections.Generic.ICollection&lt;TKey&gt;)" />
+      <Member Status="ImplRoot" Name="get_Items" />
+      <Member Status="ImplRoot" MemberType="Property" Name="Items" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Collections.Generic.Mscorlib_DictionaryValueCollectionDebugView&lt;TKey,TValue&gt;">
+      <Member Status="ImplRoot" Name="#ctor(System.Collections.Generic.ICollection&lt;TValue&gt;)" />
+      <Member Status="ImplRoot" Name="get_Items" />
+      <Member Status="ImplRoot" MemberType="Property" Name="Items" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Collections.Generic.Mscorlib_DictionaryDebugView&lt;K,V&gt;">
+      <Member Status="ImplRoot" Name="#ctor(System.Collections.Generic.IDictionary&lt;K,V&gt;)" />
+      <Member Status="ImplRoot" Name="get_Items" />
+      <Member Status="ImplRoot" MemberType="Property" Name="Items" />
+    </Type>    
+    <Type Status="ImplRoot" Name="System.Collections.Generic.Mscorlib_KeyedCollectionDebugView&lt;K,T&gt;">
+      <Member Status="ImplRoot" Name="#ctor(System.Collections.ObjectModel.KeyedCollection&lt;K,T&gt;)" />
+      <Member Status="ImplRoot" Name="get_Items" />
+      <Member Status="ImplRoot" MemberType="Property" Name="Items" />
+    </Type> 
+    <Type Name="System.Collections.ICollection">
+      <Member Name="CopyTo(System.Array,System.Int32)" />
+      <Member Name="get_Count" />
+      <Member Name="get_IsSynchronized" />
+      <Member Name="get_SyncRoot" />
+      <Member MemberType="Property" Name="Count" />
+      <Member MemberType="Property" Name="IsSynchronized" />
+      <Member MemberType="Property" Name="SyncRoot" />
+    </Type>
+    <Type Name="System.Collections.IComparer">
+      <Member Name="Compare(System.Object,System.Object)" />
+    </Type>
+    <Type Name="System.Collections.IDictionary">
+      <Member Name="Add(System.Object,System.Object)" />
+      <Member Name="Clear" />
+      <Member Name="Contains(System.Object)" />
+      <Member Name="get_IsFixedSize" />
+      <Member Name="get_IsReadOnly" />
+      <Member Name="get_Item(System.Object)" />
+      <Member Name="get_Keys" />
+      <Member Name="get_Values" />
+      <Member Name="GetEnumerator" />
+      <Member Name="Remove(System.Object)" />
+      <Member Name="set_Item(System.Object,System.Object)" />
+      <Member MemberType="Property" Name="IsFixedSize" />
+      <Member MemberType="Property" Name="IsReadOnly" />
+      <Member MemberType="Property" Name="Item(System.Object)" />
+      <Member MemberType="Property" Name="Keys" />
+      <Member MemberType="Property" Name="Values" />
+    </Type>
+    <Type Name="System.Collections.IDictionaryEnumerator">
+      <Member Name="get_Entry" />
+      <Member Name="get_Key" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Entry" />
+      <Member MemberType="Property" Name="Key" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Collections.IEnumerable">
+      <Member Name="GetEnumerator" />
+    </Type>
+    <Type Name="System.Collections.IEnumerator">
+      <Member Name="get_Current" />
+      <Member Name="MoveNext" />
+      <Member Name="Reset" />
+      <Member MemberType="Property" Name="Current" />
+    </Type>
+    <Type Name="System.Collections.IEqualityComparer">
+      <Member Name="Equals(System.Object,System.Object)" />
+      <Member Name="GetHashCode(System.Object)" />
+    </Type>
+    <Type Name="System.Collections.IList">
+      <Member Name="Add(System.Object)" />
+      <Member Name="Clear" />
+      <Member Name="Contains(System.Object)" />
+      <Member Name="get_IsFixedSize" />
+      <Member Name="get_IsReadOnly" />
+      <Member Name="get_Item(System.Int32)" />
+      <Member Name="IndexOf(System.Object)" />
+      <Member Name="Insert(System.Int32,System.Object)" />
+      <Member Name="Remove(System.Object)" />
+      <Member Name="RemoveAt(System.Int32)" />
+      <Member Name="set_Item(System.Int32,System.Object)" />
+      <Member MemberType="Property" Name="IsFixedSize" />
+      <Member MemberType="Property" Name="IsReadOnly" />
+      <Member MemberType="Property" Name="Item(System.Int32)" />
+    </Type>
+    <Type Name="System.Collections.IStructuralComparable">
+      <Member Name="CompareTo(System.Object,System.Collections.IComparer)" />
+    </Type>
+    <Type Name="System.Collections.IStructuralEquatable">
+      <Member Name="Equals(System.Object,System.Collections.IEqualityComparer)" />
+      <Member Name="GetHashCode(System.Collections.IEqualityComparer)" />
+    </Type>
+    <Type Name="System.Collections.ObjectModel.Collection&lt;T&gt;">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Collections.Generic.IList&lt;T&gt;)" />
+      <Member Name="Add(T)" />
+      <Member Name="Clear" />
+      <Member Name="ClearItems" />
+      <Member Name="Contains(T)" />
+      <Member Name="CopyTo(T[],System.Int32)" />
+      <Member Name="get_Count" />
+      <Member Name="get_Item(System.Int32)" />
+      <Member Name="get_Items" />
+      <Member Name="GetEnumerator" />
+      <Member Name="IndexOf(T)" />
+      <Member Name="Insert(System.Int32,T)" />
+      <Member Name="InsertItem(System.Int32,T)" />
+      <Member Name="Remove(T)" />
+      <Member Name="RemoveAt(System.Int32)" />
+      <Member Name="RemoveItem(System.Int32)" />
+      <Member Name="set_Item(System.Int32,T)" />
+      <Member Name="SetItem(System.Int32,T)" />
+      <Member MemberType="Property" Name="Count" />
+      <Member MemberType="Property" Name="Item(System.Int32)" />
+      <Member MemberType="Property" Name="Items" />
+    </Type>
+    <Type Name="System.Collections.ObjectModel.KeyedCollection&lt;TKey,TItem&gt;">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Collections.Generic.IEqualityComparer&lt;TKey&gt;)" />
+      <Member Name="#ctor(System.Collections.Generic.IEqualityComparer&lt;TKey&gt;,System.Int32)" />
+      <Member Name="ChangeItemKey(TItem,TKey)" />
+      <Member Name="ClearItems" />
+      <Member Name="Contains(TKey)" />
+      <Member Name="get_Comparer" />
+      <Member Name="get_Dictionary" />
+      <Member Name="get_Item(TKey)" />
+      <Member Name="GetKeyForItem(TItem)" />
+      <Member Name="InsertItem(System.Int32,TItem)" />
+      <Member Name="Remove(TKey)" />
+      <Member Name="RemoveItem(System.Int32)" />
+      <Member Name="SetItem(System.Int32,TItem)" />
+      <Member MemberType="Property" Name="Comparer" />
+      <Member MemberType="Property" Name="Dictionary" />
+      <Member MemberType="Property" Name="Item(TKey)" />
+    </Type>
+    <Type Name="System.Collections.ObjectModel.ReadOnlyCollection&lt;T&gt;">
+      <Member Name="#ctor(System.Collections.Generic.IList&lt;T&gt;)" />
+      <Member Name="Contains(T)" />
+      <Member Name="CopyTo(T[],System.Int32)" />
+      <Member Name="get_Count" />
+      <Member Name="get_Item(System.Int32)" />
+      <Member Name="get_Items" />
+      <Member Name="GetEnumerator" />
+      <Member Name="IndexOf(T)" />
+      <Member MemberType="Property" Name="Count" />
+      <Member MemberType="Property" Name="Item(System.Int32)" />
+      <Member MemberType="Property" Name="Items" />
+    </Type>
+    
+    <Type Name="System.Collections.ObjectModel.ReadOnlyDictionary&lt;TKey,TValue&gt;">
+      <Member Name="#ctor(System.Collections.Generic.IDictionary&lt;TKey,TValue&gt;)" />
+      <Member Name="ContainsKey(TKey)" />
+      <Member Name="get_Count" />
+      <Member Name="get_Item(TKey)" />
+      <Member Name="GetEnumerator" />
+      <Member Name="TryGetValue(TKey,TValue@)" />
+      <Member MemberType="Property" Name="Count" />
+      <Member MemberType="Property" Name="Keys" />
+      <Member MemberType="Property" Name="Values" />
+      <Member MemberType="Property" Name="Dictionary" />
+      <Member MemberType="Property" Name="Item(TKey)" />
+    </Type>
+
+    <Type Name="System.GCCollectionMode">
+        <Member MemberType="Field" Name="Default" />
+        <Member MemberType="Field" Name="Optimized" />
+        <Member MemberType="Field" Name="Forced" />
+    </Type>
+    
+    <Type Name="System.Comparison&lt;T&gt;">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(T,T,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(T,T)" />
+    </Type>
+    <Type Name="System.Runtime.Loader.AssemblyLoadContext" condition="FEATURE_HOST_ASSEMBLY_RESOLVER">
+      <Member Name="#ctor" />
+      <Member MemberType="Property" Name="Default" />
+      <Member Name="GetAssemblyName(System.String)" />
+      <Member Name="GetLoadContext(System.Reflection.Assembly)" />
+      <Member Name="InitializeDefaultContext(System.Runtime.Loader.AssemblyLoadContext)" />
+      <Member Name="LoadFromAssemblyName(System.Reflection.AssemblyName)" />
+      <Member Name="Load(System.Reflection.AssemblyName)" />
+      <Member Name="LoadFromAssemblyPath(System.String)" />
+      <Member Name="LoadFromNativeImagePath(System.String,System.String)" />
+      <Member Name="LoadFromStream(System.IO.Stream)" />
+      <Member Name="LoadFromStream(System.IO.Stream,System.IO.Stream)" />
+      <Member Name="Resolve(System.IntPtr,System.Reflection.AssemblyName)" />
+      <Member Name="ResolveUsingResolvingEvent(System.IntPtr,System.Reflection.AssemblyName)" />
+      <Member Name="ResolveUnmanagedDll(System.String,System.IntPtr)" />
+      <Member Name="LoadUnmanagedDll(System.String)" />
+      <Member Name="LoadUnmanagedDllFromPath(System.String)" />
+      <Member Name="get_Default" />
+      <Member Name="SetProfileOptimizationRoot(System.String)" />
+      <Member Name="StartProfileOptimization(System.String)" />
+      <Member MemberType="Event" Name="Resolving" />
+      <Member MemberType="Event" Name="Unloading" />
+    </Type>
+    <Type Name="System.Reflection.Metadata.AssemblyExtensions">
+      <Member Name="TryGetRawMetadata(System.Reflection.Assembly,System.Byte*@,System.Int32@)"/>
+    </Type>
+    <Type Name="System.ContextMarshalException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.ContextStaticAttribute">
+        <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Convert">
+      <Member MemberType="Field" Name="DBNull" />
+      <Member Name="ChangeType(System.Object,System.Type)"  />
+      <Member Name="ChangeType(System.Object,System.Type,System.IFormatProvider)" />
+      <Member Name="ChangeType(System.Object,System.TypeCode,System.IFormatProvider)" />
+      <Member Name="FromBase64CharArray(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="FromBase64String(System.String)" />
+      <Member Name="GetTypeCode(System.Object)" />
+      <Member Name="IsDBNull(System.Object)" />
+      <Member Name="ToBase64CharArray(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" />
+      <Member Name="ToBase64String(System.Byte[])" />
+      <Member Name="ToBase64String(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="ToBoolean(System.Boolean)" />
+      <Member Name="ToBoolean(System.Byte)" />
+      <Member Name="ToBoolean(System.Char)" />
+      <Member Name="ToBoolean(System.Decimal)" />
+      <Member Name="ToBoolean(System.Double)" />
+      <Member Name="ToBoolean(System.Int16)" />
+      <Member Name="ToBoolean(System.Int32)" />
+      <Member Name="ToBoolean(System.Int64)" />
+      <Member Name="ToBoolean(System.Object)" />
+      <Member Name="ToBoolean(System.Object,System.IFormatProvider)" />
+      <Member Name="ToBoolean(System.SByte)" />
+      <Member Name="ToBoolean(System.Single)" />
+      <Member Name="ToBoolean(System.String)" />
+      <Member Name="ToBoolean(System.String,System.IFormatProvider)" />
+      <Member Name="ToBoolean(System.UInt16)" />
+      <Member Name="ToBoolean(System.UInt32)" />
+      <Member Name="ToBoolean(System.UInt64)" />
+      <Member Name="ToByte(System.Boolean)" />
+      <Member Name="ToByte(System.Byte)" />
+      <Member Name="ToByte(System.Char)" />
+      <Member Name="ToByte(System.Decimal)" />
+      <Member Name="ToByte(System.Double)" />
+      <Member Name="ToByte(System.Int16)" />
+      <Member Name="ToByte(System.Int32)" />
+      <Member Name="ToByte(System.Int64)" />
+      <Member Name="ToByte(System.Object)" />
+      <Member Name="ToByte(System.Object,System.IFormatProvider)" />
+      <Member Name="ToByte(System.SByte)" />
+      <Member Name="ToByte(System.Single)" />
+      <Member Name="ToByte(System.String)" />
+      <Member Name="ToByte(System.String,System.IFormatProvider)" />
+      <Member Name="ToByte(System.String,System.Int32)" />
+      <Member Name="ToByte(System.UInt16)" />
+      <Member Name="ToByte(System.UInt32)" />
+      <Member Name="ToByte(System.UInt64)" />
+      <Member Name="ToChar(System.Byte)" />
+      <Member Name="ToChar(System.Char)" />
+      <Member Name="ToChar(System.Decimal)" />
+      <Member Name="ToChar(System.Double)" />
+      <Member Name="ToChar(System.Int16)" />
+      <Member Name="ToChar(System.Int32)" />
+      <Member Name="ToChar(System.Int64)" />
+      <Member Name="ToChar(System.Object)" />
+      <Member Name="ToChar(System.Object,System.IFormatProvider)" />
+      <Member Name="ToChar(System.SByte)" />
+      <Member Name="ToChar(System.Single)" />
+      <Member Name="ToChar(System.String)" />
+      <Member Name="ToChar(System.String,System.IFormatProvider)" />
+      <Member Name="ToChar(System.UInt16)" />
+      <Member Name="ToChar(System.UInt32)" />
+      <Member Name="ToChar(System.UInt64)" />
+      <Member Name="ToDateTime(System.Object)" />
+      <Member Name="ToDateTime(System.Object,System.IFormatProvider)" />
+      <Member Name="ToDateTime(System.String)" />
+      <Member Name="ToDateTime(System.String,System.IFormatProvider)" />
+      <Member Name="ToDecimal(System.Boolean)" />
+      <Member Name="ToDecimal(System.Byte)" />
+      <Member Name="ToDecimal(System.Char)" />
+      <Member Name="ToDecimal(System.DateTime)" />
+      <Member Name="ToDecimal(System.Decimal)" />
+      <Member Name="ToDecimal(System.Double)" />
+      <Member Name="ToDecimal(System.Int16)" />
+      <Member Name="ToDecimal(System.Int32)" />
+      <Member Name="ToDecimal(System.Int64)" />
+      <Member Name="ToDecimal(System.Object)" />
+      <Member Name="ToDecimal(System.Object,System.IFormatProvider)" />
+      <Member Name="ToDecimal(System.SByte)" />
+      <Member Name="ToDecimal(System.Single)" />
+      <Member Name="ToDecimal(System.String)" />
+      <Member Name="ToDecimal(System.String,System.IFormatProvider)" />
+      <Member Name="ToDecimal(System.UInt16)" />
+      <Member Name="ToDecimal(System.UInt32)" />
+      <Member Name="ToDecimal(System.UInt64)" />
+      <Member Name="ToDouble(System.Boolean)" />
+      <Member Name="ToDouble(System.Byte)" />
+      <Member Name="ToDouble(System.Char)" />
+      <Member Name="ToDouble(System.Decimal)" />
+      <Member Name="ToDouble(System.Double)" />
+      <Member Name="ToDouble(System.Int16)" />
+      <Member Name="ToDouble(System.Int32)" />
+      <Member Name="ToDouble(System.Int64)" />
+      <Member Name="ToDouble(System.Object)" />
+      <Member Name="ToDouble(System.Object,System.IFormatProvider)" />
+      <Member Name="ToDouble(System.SByte)" />
+      <Member Name="ToDouble(System.Single)" />
+      <Member Name="ToDouble(System.String)" />
+      <Member Name="ToDouble(System.String,System.IFormatProvider)" />
+      <Member Name="ToDouble(System.UInt16)" />
+      <Member Name="ToDouble(System.UInt32)" />
+      <Member Name="ToDouble(System.UInt64)" />
+      <Member Name="ToInt16(System.Boolean)" />
+      <Member Name="ToInt16(System.Byte)" />
+      <Member Name="ToInt16(System.Char)" />
+      <Member Name="ToInt16(System.Decimal)" />
+      <Member Name="ToInt16(System.Double)" />
+      <Member Name="ToInt16(System.Int16)" />
+      <Member Name="ToInt16(System.Int32)" />
+      <Member Name="ToInt16(System.Int64)" />
+      <Member Name="ToInt16(System.Object)" />
+      <Member Name="ToInt16(System.Object,System.IFormatProvider)" />
+      <Member Name="ToInt16(System.SByte)" />
+      <Member Name="ToInt16(System.Single)" />
+      <Member Name="ToInt16(System.String)" />
+      <Member Name="ToInt16(System.String,System.IFormatProvider)" />
+      <Member Name="ToInt16(System.String,System.Int32)" />
+      <Member Name="ToInt16(System.UInt16)" />
+      <Member Name="ToInt16(System.UInt32)" />
+      <Member Name="ToInt16(System.UInt64)" />
+      <Member Name="ToInt32(System.Boolean)" />
+      <Member Name="ToInt32(System.Byte)" />
+      <Member Name="ToInt32(System.Char)" />
+      <Member Name="ToInt32(System.Decimal)" />
+      <Member Name="ToInt32(System.Double)" />
+      <Member Name="ToInt32(System.Int16)" />
+      <Member Name="ToInt32(System.Int32)" />
+      <Member Name="ToInt32(System.Int64)" />
+      <Member Name="ToInt32(System.Object)" />
+      <Member Name="ToInt32(System.Object,System.IFormatProvider)" />
+      <Member Name="ToInt32(System.SByte)" />
+      <Member Name="ToInt32(System.Single)" />
+      <Member Name="ToInt32(System.String)" />
+      <Member Name="ToInt32(System.String,System.IFormatProvider)" />
+      <Member Name="ToInt32(System.String,System.Int32)" />
+      <Member Name="ToInt32(System.UInt16)" />
+      <Member Name="ToInt32(System.UInt32)" />
+      <Member Name="ToInt32(System.UInt64)" />
+      <Member Name="ToInt64(System.Boolean)" />
+      <Member Name="ToInt64(System.Byte)" />
+      <Member Name="ToInt64(System.Char)" />
+      <Member Name="ToInt64(System.Decimal)" />
+      <Member Name="ToInt64(System.Double)" />
+      <Member Name="ToInt64(System.Int16)" />
+      <Member Name="ToInt64(System.Int32)" />
+      <Member Name="ToInt64(System.Int64)" />
+      <Member Name="ToInt64(System.Object)" />
+      <Member Name="ToInt64(System.Object,System.IFormatProvider)" />
+      <Member Name="ToInt64(System.SByte)" />
+      <Member Name="ToInt64(System.Single)" />
+      <Member Name="ToInt64(System.String)" />
+      <Member Name="ToInt64(System.String,System.IFormatProvider)" />
+      <Member Name="ToInt64(System.String,System.Int32)" />
+      <Member Name="ToInt64(System.UInt16)" />
+      <Member Name="ToInt64(System.UInt32)" />
+      <Member Name="ToInt64(System.UInt64)" />
+      <Member Name="ToSByte(System.Boolean)" />
+      <Member Name="ToSByte(System.Byte)" />
+      <Member Name="ToSByte(System.Char)" />
+      <Member Name="ToSByte(System.Decimal)" />
+      <Member Name="ToSByte(System.Double)" />
+      <Member Name="ToSByte(System.Int16)" />
+      <Member Name="ToSByte(System.Int32)" />
+      <Member Name="ToSByte(System.Int64)" />
+      <Member Name="ToSByte(System.Object)" />
+      <Member Name="ToSByte(System.Object,System.IFormatProvider)" />
+      <Member Name="ToSByte(System.SByte)" />
+      <Member Name="ToSByte(System.Single)" />
+      <Member Name="ToSByte(System.String)" />
+      <Member Name="ToSByte(System.String,System.IFormatProvider)" />
+      <Member Name="ToSByte(System.String,System.Int32)" />
+      <Member Name="ToSByte(System.UInt16)" />
+      <Member Name="ToSByte(System.UInt32)" />
+      <Member Name="ToSByte(System.UInt64)" />
+      <Member Name="ToSingle(System.Boolean)" />
+      <Member Name="ToSingle(System.Byte)" />
+      <Member Name="ToSingle(System.Char)" />
+      <Member Name="ToSingle(System.Decimal)" />
+      <Member Name="ToSingle(System.Double)" />
+      <Member Name="ToSingle(System.Int16)" />
+      <Member Name="ToSingle(System.Int32)" />
+      <Member Name="ToSingle(System.Int64)" />
+      <Member Name="ToSingle(System.Object)" />
+      <Member Name="ToSingle(System.Object,System.IFormatProvider)" />
+      <Member Name="ToSingle(System.SByte)" />
+      <Member Name="ToSingle(System.Single)" />
+      <Member Name="ToSingle(System.String)" />
+      <Member Name="ToSingle(System.String,System.IFormatProvider)" />
+      <Member Name="ToSingle(System.UInt16)" />
+      <Member Name="ToSingle(System.UInt32)" />
+      <Member Name="ToSingle(System.UInt64)" />
+      <Member Name="ToString(System.Boolean)" />
+      <Member Name="ToString(System.Boolean,System.IFormatProvider)" />
+      <Member Name="ToString(System.Byte)" />
+      <Member Name="ToString(System.Byte,System.IFormatProvider)" />
+      <Member Name="ToString(System.Byte,System.Int32)" />
+      <Member Name="ToString(System.Char)" />
+      <Member Name="ToString(System.Char,System.IFormatProvider)" />
+      <Member Name="ToString(System.DateTime)" />
+      <Member Name="ToString(System.DateTime,System.IFormatProvider)" />
+      <Member Name="ToString(System.Decimal)" />
+      <Member Name="ToString(System.Decimal,System.IFormatProvider)" />
+      <Member Name="ToString(System.Double)" />
+      <Member Name="ToString(System.Double,System.IFormatProvider)" />
+      <Member Name="ToString(System.Int16)" />
+      <Member Name="ToString(System.Int16,System.IFormatProvider)" />
+      <Member Name="ToString(System.Int16,System.Int32)" />
+      <Member Name="ToString(System.Int32)" />
+      <Member Name="ToString(System.Int32,System.IFormatProvider)" />
+      <Member Name="ToString(System.Int32,System.Int32)" />
+      <Member Name="ToString(System.Int64)" />
+      <Member Name="ToString(System.Int64,System.IFormatProvider)" />
+      <Member Name="ToString(System.Int64,System.Int32)" />
+      <Member Name="ToString(System.Object)" />
+      <Member Name="ToString(System.Object,System.IFormatProvider)" />
+      <Member Name="ToString(System.SByte)" />
+      <Member Name="ToString(System.SByte,System.IFormatProvider)" />
+      <Member Name="ToString(System.Single)" />
+      <Member Name="ToString(System.Single,System.IFormatProvider)" />
+      <Member Name="ToString(System.UInt16)" />
+      <Member Name="ToString(System.UInt16,System.IFormatProvider)" />
+      <Member Name="ToString(System.UInt32)" />
+      <Member Name="ToString(System.UInt32,System.IFormatProvider)" />
+      <Member Name="ToString(System.UInt64)" />
+      <Member Name="ToString(System.UInt64,System.IFormatProvider)" />
+      <Member Name="ToUInt16(System.Boolean)" />
+      <Member Name="ToUInt16(System.Byte)" />
+      <Member Name="ToUInt16(System.Char)" />
+      <Member Name="ToUInt16(System.Decimal)" />
+      <Member Name="ToUInt16(System.Double)" />
+      <Member Name="ToUInt16(System.Int16)" />
+      <Member Name="ToUInt16(System.Int32)" />
+      <Member Name="ToUInt16(System.Int64)" />
+      <Member Name="ToUInt16(System.Object)" />
+      <Member Name="ToUInt16(System.Object,System.IFormatProvider)" />
+      <Member Name="ToUInt16(System.SByte)" />
+      <Member Name="ToUInt16(System.Single)" />
+      <Member Name="ToUInt16(System.String)" />
+      <Member Name="ToUInt16(System.String,System.IFormatProvider)" />
+      <Member Name="ToUInt16(System.String,System.Int32)" />
+      <Member Name="ToUInt16(System.UInt16)" />
+      <Member Name="ToUInt16(System.UInt32)" />
+      <Member Name="ToUInt16(System.UInt64)" />
+      <Member Name="ToUInt32(System.Boolean)" />
+      <Member Name="ToUInt32(System.Byte)" />
+      <Member Name="ToUInt32(System.Char)" />
+      <Member Name="ToUInt32(System.Decimal)" />
+      <Member Name="ToUInt32(System.Double)" />
+      <Member Name="ToUInt32(System.Int16)" />
+      <Member Name="ToUInt32(System.Int32)" />
+      <Member Name="ToUInt32(System.Int64)" />
+      <Member Name="ToUInt32(System.Object)" />
+      <Member Name="ToUInt32(System.Object,System.IFormatProvider)" />
+      <Member Name="ToUInt32(System.SByte)" />
+      <Member Name="ToUInt32(System.Single)" />
+      <Member Name="ToUInt32(System.String)" />
+      <Member Name="ToUInt32(System.String,System.IFormatProvider)" />
+      <Member Name="ToUInt32(System.String,System.Int32)" />
+      <Member Name="ToUInt32(System.UInt16)" />
+      <Member Name="ToUInt32(System.UInt32)" />
+      <Member Name="ToUInt32(System.UInt64)" />
+      <Member Name="ToUInt64(System.Boolean)" />
+      <Member Name="ToUInt64(System.Byte)" />
+      <Member Name="ToUInt64(System.Char)" />
+      <Member Name="ToUInt64(System.Decimal)" />
+      <Member Name="ToUInt64(System.Double)" />
+      <Member Name="ToUInt64(System.Int16)" />
+      <Member Name="ToUInt64(System.Int32)" />
+      <Member Name="ToUInt64(System.Int64)" />
+      <Member Name="ToUInt64(System.Object)" />
+      <Member Name="ToUInt64(System.Object,System.IFormatProvider)" />
+      <Member Name="ToUInt64(System.SByte)" />
+      <Member Name="ToUInt64(System.Single)" />
+      <Member Name="ToUInt64(System.String)" />
+      <Member Name="ToUInt64(System.String,System.IFormatProvider)" />
+      <Member Name="ToUInt64(System.String,System.Int32)" />
+      <Member Name="ToUInt64(System.UInt16)" />
+      <Member Name="ToUInt64(System.UInt32)" />
+      <Member Name="ToUInt64(System.UInt64)" />
+    </Type>
+    <Type Name="System.Converter&lt;TInput,TOutput&gt;">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(TInput,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(TInput)" />
+    </Type>
+    <Type Name="System.DataMisalignedException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.DateTime">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Globalization.Calendar)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.DateTimeKind)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Globalization.Calendar)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.DateTimeKind)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Globalization.Calendar)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Globalization.Calendar,System.DateTimeKind)" />
+      <Member Name="#ctor(System.Int64)" />
+      <Member Name="#ctor(System.Int64,System.DateTimeKind)" />
+      <Member Name="Add(System.TimeSpan)" />
+      <Member Name="AddDays(System.Double)" />
+      <Member Name="AddHours(System.Double)" />
+      <Member Name="AddMilliseconds(System.Double)" />
+      <Member Name="AddMinutes(System.Double)" />
+      <Member Name="AddMonths(System.Int32)" />
+      <Member Name="AddSeconds(System.Double)" />
+      <Member Name="AddTicks(System.Int64)" />
+      <Member Name="AddYears(System.Int32)" />
+      <Member Name="Compare(System.DateTime,System.DateTime)" />
+      <Member Name="CompareTo(System.DateTime)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="DaysInMonth(System.Int32,System.Int32)" />
+      <Member Name="Equals(System.DateTime)" />
+      <Member Name="Equals(System.DateTime,System.DateTime)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="FromBinary(System.Int64)" />
+      <Member Name="FromFileTime(System.Int64)" />
+      <Member Name="FromFileTimeUtc(System.Int64)" />
+      <Member Name="FromOADate(System.Double)" />
+      <Member Name="get_Date" />
+      <Member Name="get_Day" />
+      <Member Name="get_DayOfWeek" />
+      <Member Name="get_DayOfYear" />
+      <Member Name="get_Hour" />
+      <Member Name="get_Kind" />
+      <Member Name="get_Millisecond" />
+      <Member Name="get_Minute" />
+      <Member Name="get_Month" />
+      <Member Name="get_Now" />
+      <Member Name="get_Second" />
+      <Member Name="get_Ticks" />
+      <Member Name="get_TimeOfDay" />
+      <Member Name="get_Today" />
+      <Member Name="get_UtcNow" />
+      <Member Name="get_Year" />
+      <Member Name="GetDateTimeFormats" />
+      <Member Name="GetDateTimeFormats(System.Char)" />
+      <Member Name="GetDateTimeFormats(System.Char,System.IFormatProvider)" />
+      <Member Name="GetDateTimeFormats(System.IFormatProvider)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="IsDaylightSavingTime" />
+      <Member Name="IsLeapYear(System.Int32)" />
+      <Member Name="op_Addition(System.DateTime,System.TimeSpan)" />
+      <Member Name="op_Equality(System.DateTime,System.DateTime)" />
+      <Member Name="op_GreaterThan(System.DateTime,System.DateTime)" />
+      <Member Name="op_GreaterThanOrEqual(System.DateTime,System.DateTime)" />
+      <Member Name="op_Inequality(System.DateTime,System.DateTime)" />
+      <Member Name="op_LessThan(System.DateTime,System.DateTime)" />
+      <Member Name="op_LessThanOrEqual(System.DateTime,System.DateTime)" />
+      <Member Name="op_Subtraction(System.DateTime,System.DateTime)" />
+      <Member Name="op_Subtraction(System.DateTime,System.TimeSpan)" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles)" />
+      <Member Name="ParseExact(System.String,System.String,System.IFormatProvider)" />
+      <Member Name="ParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles)" />
+      <Member Name="ParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles)" />
+      <Member Name="TryParse(System.String,System.DateTime@)" />
+      <Member Name="TryParse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTime@)" />
+      <Member Name="TryParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTime@)" />
+      <Member Name="TryParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTime@)" />
+      <Member Name="SpecifyKind(System.DateTime,System.DateTimeKind)" />
+      <Member Name="Subtract(System.DateTime)" />
+      <Member Name="Subtract(System.TimeSpan)" />
+      <Member Name="ToBinary" />
+      <Member Name="ToFileTime" />
+      <Member Name="ToFileTimeUtc" />
+      <Member Name="ToLocalTime" />
+      <Member Name="ToLongDateString" />
+      <Member Name="ToLongTimeString" />
+      <Member Name="ToOADate" />
+      <Member Name="ToShortDateString" />
+      <Member Name="ToShortTimeString" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+      <Member Name="ToUniversalTime" />
+      <Member MemberType="Property" Name="Date" />
+      <Member MemberType="Property" Name="Day" />
+      <Member MemberType="Property" Name="DayOfWeek" />
+      <Member MemberType="Property" Name="DayOfYear" />
+      <Member MemberType="Property" Name="Hour" />
+      <Member MemberType="Property" Name="Kind" />
+      <Member MemberType="Property" Name="Millisecond" />
+      <Member MemberType="Property" Name="Minute" />
+      <Member MemberType="Property" Name="Month" />
+      <Member MemberType="Property" Name="Now" />
+      <Member MemberType="Property" Name="Second" />
+      <Member MemberType="Property" Name="Ticks" />
+      <Member MemberType="Property" Name="TimeOfDay" />
+      <Member MemberType="Property" Name="Today" />
+      <Member MemberType="Property" Name="UtcNow" />
+      <Member MemberType="Property" Name="Year" />
+    </Type>
+    <Type Name="System.DateTimeOffset">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member Name="#ctor(System.DateTime)" />
+      <Member Name="#ctor(System.DateTime,System.TimeSpan)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.TimeSpan)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.TimeSpan)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Globalization.Calendar,System.TimeSpan)" />
+      <Member Name="#ctor(System.Int64,System.TimeSpan)" />
+      <Member Name="Add(System.TimeSpan)" />
+      <Member Name="AddDays(System.Double)" />
+      <Member Name="AddHours(System.Double)" />
+      <Member Name="AddMilliseconds(System.Double)" />
+      <Member Name="AddMinutes(System.Double)" />
+      <Member Name="AddMonths(System.Int32)" />
+      <Member Name="AddSeconds(System.Double)" />
+      <Member Name="AddTicks(System.Int64)" />
+      <Member Name="AddYears(System.Int32)" />
+      <Member Name="Compare(System.DateTimeOffset,System.DateTimeOffset)" />
+      <Member Name="CompareTo(System.DateTimeOffset)" />
+      <Member Name="Equals(System.DateTimeOffset)" />
+      <Member Name="Equals(System.DateTimeOffset,System.DateTimeOffset)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="EqualsExact(System.DateTimeOffset)" />
+      <Member Name="FromFileTime(System.Int64)" />
+      <Member Name="FromUnixTimeSeconds(System.Int64)" />
+      <Member Name="FromUnixTimeMilliseconds(System.Int64)" />
+      <Member Name="get_DateTime" />
+      <Member Name="get_UtcDateTime" />
+      <Member Name="get_LocalDateTime" />
+      <Member Name="get_UtcTicks" />
+      <Member Name="get_Offset" />
+      <Member Name="get_Date" />
+      <Member Name="get_Day" />
+      <Member Name="get_DayOfWeek" />
+      <Member Name="get_DayOfYear" />
+      <Member Name="get_Hour" />
+      <Member Name="get_Millisecond" />
+      <Member Name="get_Minute" />
+      <Member Name="get_Month" />
+      <Member Name="get_Now" />
+      <Member Name="get_Second" />
+      <Member Name="get_Ticks" />
+      <Member Name="get_TimeOfDay" />
+      <Member Name="get_UtcNow" />
+      <Member Name="get_Year" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Addition(System.DateTimeOffset,System.TimeSpan)" />
+      <Member Name="op_Equality(System.DateTimeOffset,System.DateTimeOffset)" />
+      <Member Name="op_GreaterThan(System.DateTimeOffset,System.DateTimeOffset)" />
+      <Member Name="op_GreaterThanOrEqual(System.DateTimeOffset,System.DateTimeOffset)" />
+      <Member Name="op_Inequality(System.DateTimeOffset,System.DateTimeOffset)" />
+      <Member Name="op_LessThan(System.DateTimeOffset,System.DateTimeOffset)" />
+      <Member Name="op_LessThanOrEqual(System.DateTimeOffset,System.DateTimeOffset)" />
+      <Member Name="op_Subtraction(System.DateTimeOffset,System.DateTimeOffset)" />
+      <Member Name="op_Subtraction(System.DateTimeOffset,System.TimeSpan)" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles)" />
+      <Member Name="ParseExact(System.String,System.String,System.IFormatProvider)" />
+      <Member Name="ParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles)" />
+      <Member Name="ParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles)" />
+      <Member Name="TryParse(System.String,System.DateTimeOffset@)" />
+      <Member Name="TryParse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTimeOffset@)" />
+      <Member Name="TryParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTimeOffset@)" />
+      <Member Name="TryParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTimeOffset@)" />
+      <Member Name="Subtract(System.DateTimeOffset)" />
+      <Member Name="Subtract(System.TimeSpan)" />
+      <Member Name="ToFileTime" />
+      <Member Name="ToUnixTimeSeconds" />
+      <Member Name="ToUnixTimeMilliseconds" />
+      <Member Name="ToLocalTime" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+      <Member Name="ToUniversalTime" />
+      <Member Name="ToOffset(System.TimeSpan)" />
+      <Member Name="op_Implicit(System.DateTime)" ReturnType="System.DateTimeOffset" />
+      <Member MemberType="Property" Name="DateTime" />
+      <Member MemberType="Property" Name="UtcDateTime" />
+      <Member MemberType="Property" Name="LocalDateTime" />
+      <Member MemberType="Property" Name="UtcTicks" />
+      <Member MemberType="Property" Name="Offset" />
+      <Member MemberType="Property" Name="Date" />
+      <Member MemberType="Property" Name="Day" />
+      <Member MemberType="Property" Name="DayOfWeek" />
+      <Member MemberType="Property" Name="DayOfYear" />
+      <Member MemberType="Property" Name="Hour" />
+      <Member MemberType="Property" Name="Millisecond" />
+      <Member MemberType="Property" Name="Minute" />
+      <Member MemberType="Property" Name="Month" />
+      <Member MemberType="Property" Name="Now" />
+      <Member MemberType="Property" Name="Second" />
+      <Member MemberType="Property" Name="Ticks" />
+      <Member MemberType="Property" Name="TimeOfDay" />
+      <Member MemberType="Property" Name="UtcNow" />
+      <Member MemberType="Property" Name="Year" />
+    </Type>
+    <Type Name="System.DateTimeKind">
+      <Member MemberType="Field" Name="Local" />
+      <Member MemberType="Field" Name="Unspecified" />
+      <Member MemberType="Field" Name="Utc" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.DayOfWeek">
+      <Member MemberType="Field" Name="Friday" />
+      <Member MemberType="Field" Name="Monday" />
+      <Member MemberType="Field" Name="Saturday" />
+      <Member MemberType="Field" Name="Sunday" />
+      <Member MemberType="Field" Name="Thursday" />
+      <Member MemberType="Field" Name="Tuesday" />
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="Wednesday" />
+    </Type>
+    <Type Name="System.DBNull" >
+        <Member MemberType="Field" Name="Value" />
+        <Member Name="GetTypeCode" />
+        <Member Name="ToString" />
+        <Member Name="ToString(System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.Diagnostics.StackFrame">
+      <Member MemberType="Field" Name="OFFSET_UNKNOWN" />
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Boolean)" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Boolean)" />
+      <Member Name="#ctor(System.String,System.Int32)" />
+      <Member Name="#ctor(System.String,System.Int32,System.Int32)" />
+      <Member Name="GetFileColumnNumber" />
+      <Member Name="GetFileLineNumber" />
+      <Member Name="GetFileName" />
+      <Member Name="GetILOffset" />
+      <Member Name="GetMethod" />
+      <Member Name="GetNativeOffset" />
+      <Member Name="ToString" />
+    </Type>
+    <Type Name="System.Diagnostics.StackTrace">
+      <Member MemberType="Field" Name="METHODS_TO_SKIP" />
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Boolean)" />
+      <Member Name="#ctor(System.Diagnostics.StackFrame)" />
+      <Member Name="#ctor(System.Exception)" />
+      <Member Name="#ctor(System.Exception,System.Boolean)" />
+      <Member Name="#ctor(System.Exception,System.Int32)" />
+      <Member Name="#ctor(System.Exception,System.Int32,System.Boolean)" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Boolean)" />
+      <Member Name="#ctor(System.Threading.Thread,System.Boolean)" />
+      <Member Name="get_FrameCount" />
+      <Member Name="GetFrame(System.Int32)" />
+      <Member Name="GetFrames" />
+      <Member Name="GetManagedStackTraceStringHelper(System.Boolean)"/>
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="FrameCount" />
+    </Type>
+    <Type Name="System.Decimal">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinusOne" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member MemberType="Field" Name="One" />
+      <Member MemberType="Field" Name="Zero" />
+      <Member Name="#ctor(System.Double)" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Boolean,System.Byte)" />
+      <Member Name="#ctor(System.Int32[])" />
+      <Member Name="#ctor(System.Int64)" />
+      <Member Name="#ctor(System.Single)" />
+      <Member Name="#ctor(System.UInt32)" />
+      <Member Name="#ctor(System.UInt64)" />
+      <Member Status="ImplRoot" Name="#ctor(System.Currency)" /> <!-- EE - il stubs -->
+      <Member Name="Add(System.Decimal,System.Decimal)" />
+      <Member Name="Ceiling(System.Decimal)" />
+      <Member Name="Compare(System.Decimal,System.Decimal)" />
+      <Member Name="CompareTo(System.Decimal)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="Divide(System.Decimal,System.Decimal)" />
+      <Member Name="Equals(System.Decimal)" />
+      <Member Name="Equals(System.Decimal,System.Decimal)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Floor(System.Decimal)" />
+      <Member Name="GetBits(System.Decimal)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="Multiply(System.Decimal,System.Decimal)" />
+      <Member Name="Negate(System.Decimal)" />
+      <Member Name="op_Addition(System.Decimal,System.Decimal)" />
+      <Member Name="op_Decrement(System.Decimal)" />
+      <Member Name="op_Division(System.Decimal,System.Decimal)" />
+      <Member Name="op_Equality(System.Decimal,System.Decimal)" />
+      <Member Name="op_Explicit(System.Decimal)" ReturnType="System.Byte" />
+      <Member Name="op_Explicit(System.Decimal)" ReturnType="System.Char" />
+      <Member Name="op_Explicit(System.Decimal)" ReturnType="System.Double" />
+      <Member Name="op_Explicit(System.Decimal)" ReturnType="System.Int16" />
+      <Member Name="op_Explicit(System.Decimal)" ReturnType="System.Int32" />
+      <Member Name="op_Explicit(System.Decimal)" ReturnType="System.Int64" />
+      <Member Name="op_Explicit(System.Decimal)" ReturnType="System.SByte" />
+      <Member Name="op_Explicit(System.Decimal)" ReturnType="System.Single" />
+      <Member Name="op_Explicit(System.Decimal)" ReturnType="System.UInt16" />
+      <Member Name="op_Explicit(System.Decimal)" ReturnType="System.UInt32" />
+      <Member Name="op_Explicit(System.Decimal)" ReturnType="System.UInt64" />
+      <Member Name="op_Explicit(System.Double)" ReturnType="System.Decimal" />
+      <Member Name="op_Explicit(System.Single)" ReturnType="System.Decimal" />
+      <Member Name="op_GreaterThan(System.Decimal,System.Decimal)" />
+      <Member Name="op_GreaterThanOrEqual(System.Decimal,System.Decimal)" />
+      <Member Name="op_Implicit(System.Byte)" ReturnType="System.Decimal" />
+      <Member Name="op_Implicit(System.Char)" ReturnType="System.Decimal" />
+      <Member Name="op_Implicit(System.Int16)" ReturnType="System.Decimal" />
+      <Member Name="op_Implicit(System.Int32)" ReturnType="System.Decimal" />
+      <Member Name="op_Implicit(System.Int64)" ReturnType="System.Decimal" />
+      <Member Name="op_Implicit(System.SByte)" ReturnType="System.Decimal" />
+      <Member Name="op_Implicit(System.UInt16)" ReturnType="System.Decimal" />
+      <Member Name="op_Implicit(System.UInt32)" ReturnType="System.Decimal" />
+      <Member Name="op_Implicit(System.UInt64)" ReturnType="System.Decimal" />
+      <Member Name="op_Increment(System.Decimal)" />
+      <Member Name="op_Inequality(System.Decimal,System.Decimal)" />
+      <Member Name="op_LessThan(System.Decimal,System.Decimal)" />
+      <Member Name="op_LessThanOrEqual(System.Decimal,System.Decimal)" />
+      <Member Name="op_Modulus(System.Decimal,System.Decimal)" />
+      <Member Name="op_Multiply(System.Decimal,System.Decimal)" />
+      <Member Name="op_Subtraction(System.Decimal,System.Decimal)" />
+      <Member Name="op_UnaryNegation(System.Decimal)" />
+      <Member Name="op_UnaryPlus(System.Decimal)" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.Decimal@)" />
+      <Member Name="TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Decimal@)" />
+      <Member Name="Remainder(System.Decimal,System.Decimal)" />
+      <Member Name="Round(System.Decimal,System.Int32)" />
+      <Member Name="Subtract(System.Decimal,System.Decimal)" />
+      <Member Name="ToByte(System.Decimal)" />
+      <Member Name="ToDouble(System.Decimal)" />
+      <Member Name="ToInt16(System.Decimal)" />
+      <Member Name="ToInt32(System.Decimal)" />
+      <Member Name="ToInt64(System.Decimal)" />
+      <Member Name="ToSByte(System.Decimal)" />
+      <Member Name="ToSingle(System.Decimal)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+      <Member Name="ToUInt16(System.Decimal)" />
+      <Member Name="ToUInt32(System.Decimal)" />
+      <Member Name="ToUInt64(System.Decimal)" />
+      <Member Name="Truncate(System.Decimal)" />
+    </Type>
+    <Type Name="System.Delegate">
+      <Member Name="Combine(System.Delegate,System.Delegate)" />
+      <Member Name="Combine(System.Delegate[])" />
+      <Member Name="CombineImpl(System.Delegate)" />
+      <Member Name="CreateDelegate(System.Type,System.Object,System.Reflection.MethodInfo)" />
+      <Member Name="CreateDelegate(System.Type,System.Object,System.Reflection.MethodInfo,System.Boolean)" />
+      <Member Name="CreateDelegate(System.Type,System.Object,System.String)" />
+      <Member Name="CreateDelegate(System.Type,System.Object,System.String,System.Boolean)" />
+      <Member Name="CreateDelegate(System.Type,System.Object,System.String,System.Boolean,System.Boolean)" />
+      <Member Name="CreateDelegate(System.Type,System.Reflection.MethodInfo)" />
+      <Member Name="CreateDelegate(System.Type,System.Reflection.MethodInfo,System.Boolean)" />
+      <Member Name="CreateDelegate(System.Type,System.Type,System.String)" />
+      <Member Name="CreateDelegate(System.Type,System.Type,System.String,System.Boolean)" />
+      <Member Name="CreateDelegate(System.Type,System.Type,System.String,System.Boolean,System.Boolean)" />
+      <Member Name="DynamicInvoke(System.Object[])" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetInvocationList" />
+      <Member Name="op_Equality(System.Delegate,System.Delegate)" />
+      <Member Name="op_Inequality(System.Delegate,System.Delegate)" />
+      <Member Name="Remove(System.Delegate,System.Delegate)" />
+      <Member Name="RemoveAll(System.Delegate,System.Delegate)" />
+      <Member Name="RemoveImpl(System.Delegate)" />
+      <Member Name="#ctor(System.Object,System.String)" />
+      <Member Name="#ctor(System.Type,System.String)" />
+      <Member Name="get_Target" />
+      <Member Name="get_Method" />
+      <Member MemberType="Property" Name="Target" />
+      <Member MemberType="Property" Name="Method" />
+      <Member Status="ImplRoot" Name="DelegateConstruct(System.Object,System.IntPtr)" /> <!-- EE -->
+    </Type>
+    <Type Name="System.Diagnostics.ConditionalAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_ConditionString" />
+      <Member MemberType="Property" Name="ConditionString" />
+    </Type>    
+    <Type Name="System.Diagnostics.DebuggableAttribute">
+      <Member Name="#ctor(System.Boolean,System.Boolean)" />
+      <Member Name="#ctor(System.Diagnostics.DebuggableAttribute+DebuggingModes)" />
+    </Type>
+    <Type Name="System.Diagnostics.DebuggableAttribute+DebuggingModes">
+      <Member MemberType="Field" Name="Default" />
+      <Member MemberType="Field" Name="DisableOptimizations" />
+      <Member MemberType="Field" Name="EnableEditAndContinue" />
+      <Member MemberType="Field" Name="IgnoreSymbolStoreSequencePoints" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Diagnostics.Debugger">
+      <Member Name="#ctor" />
+      <Member Name="Break" />
+      <Member Name="get_IsAttached" />
+      <Member Name="Launch" />
+      <Member Name="IsLogging" />
+      <Member Name="Log(System.Int32,System.String,System.String)" />
+      <Member MemberType="Property" Name="IsAttached" />
+      <Member Status="ImplRoot" Name="BreakCanThrow" /> <!-- EE -->
+      <Member Name="NotifyOfCrossThreadDependency" />
+    </Type>
+    <Type Name="System.Diagnostics.DebuggerBrowsableAttribute">
+      <Member Name="#ctor(System.Diagnostics.DebuggerBrowsableState)" />
+      <Member Name="get_State" />
+      <Member MemberType="Property" Name="State" />
+    </Type>
+    <Type Name="System.Diagnostics.DebuggerHiddenAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Diagnostics.DebuggerNonUserCodeAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Diagnostics.DebuggerStepThroughAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Diagnostics.DebuggerDisplayAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Name" />
+      <Member Name="get_Target" />
+      <Member Name="get_TargetTypeName" />
+      <Member Name="get_Type" />
+      <Member Name="get_Value" />
+      <Member Name="set_Name(System.String)" />
+      <Member Name="set_Target(System.Type)" />
+      <Member Name="set_TargetTypeName(System.String)" />
+      <Member Name="set_Type(System.String)" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="Target" />
+      <Member MemberType="Property" Name="TargetTypeName" />
+      <Member MemberType="Property" Name="Type" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Diagnostics.DebuggerTypeProxyAttribute">
+      <Member Name="#ctor(System.Type)" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_ProxyTypeName" />
+      <Member Name="get_Target" />
+      <Member Name="get_TargetTypeName" />
+      <Member Name="set_Target(System.Type)" />
+      <Member Name="set_TargetTypeName(System.String)" />
+      <Member MemberType="Property" Name="ProxyTypeName" />
+      <Member MemberType="Property" Name="Target" />
+      <Member MemberType="Property" Name="TargetTypeName" />
+    </Type>
+    <Type Name="System.DivideByZeroException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.DllNotFoundException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Double">
+      <Member MemberType="Field" Name="Epsilon" />
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member MemberType="Field" Name="NaN" />
+      <Member MemberType="Field" Name="NegativeInfinity" />
+      <Member MemberType="Field" Name="PositiveInfinity" />
+      <Member Name="CompareTo(System.Double)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="Equals(System.Double)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="IsInfinity(System.Double)" />
+      <Member Name="IsNaN(System.Double)" />
+      <Member Name="IsNegativeInfinity(System.Double)" />
+      <Member Name="IsPositiveInfinity(System.Double)" />
+      <Member Name="op_Equality(System.Double,System.Double)" />
+      <Member Name="op_GreaterThan(System.Double,System.Double)" />
+      <Member Name="op_GreaterThanOrEqual(System.Double,System.Double)" />
+      <Member Name="op_Inequality(System.Double,System.Double)" />
+      <Member Name="op_LessThan(System.Double,System.Double)" />
+      <Member Name="op_LessThanOrEqual(System.Double,System.Double)" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.Double@)" />
+      <Member Name="TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Double@)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.EntryPointNotFoundException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Enum">
+      <Member Name="#ctor" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Format(System.Type,System.Object,System.String)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetName(System.Type,System.Object)" />
+      <Member Name="GetNames(System.Type)" />      
+      <Member Name="GetTypeCode" />
+      <Member Name="GetValues(System.Type)" />
+      <Member Name="GetUnderlyingType(System.Type)" />
+      <Member Name="HasFlag(System.Enum)" />
+      <Member Name="IsDefined(System.Type,System.Object)" />
+      <Member Name="Parse(System.Type,System.String)" />
+      <Member Name="Parse(System.Type,System.String,System.Boolean)" />
+      <Member Name="ToObject(System.Type,System.Object)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="TryParse&lt;TEnum&gt;(System.String,TEnum@)" />
+      <Member Name="TryParse&lt;TEnum&gt;(System.String,System.Boolean,TEnum@)" />
+    </Type>
+    <Type Name="System.Environment">
+      <Member Name="get_CurrentManagedThreadId"  />
+      <Member Name="get_MachineName"  />
+      <Member Name="get_OSVersion" />
+      <Member Name="get_ProcessorCount" />      
+      <Member Name="get_StackTrace" />
+      <Member Name="GetEnvironmentVariable(System.String)" />
+      <Member Name="GetEnvironmentVariables" />
+      <Member Name="GetCommandLineArgs" />
+      <Member Name="SetEnvironmentVariable(System.String,System.String)" />
+      <Member Name="ExpandEnvironmentVariables(System.String)" />
+      <Member MemberType="Property" Name="OSVersion" />
+      <Member MemberType="Property" Name="ProcessorCount" />
+      <Member MemberType="Property" Name="CurrentManagedThreadId"  />
+      <Member MemberType="Property" Name="HasShutdownStarted" />
+      <Member MemberType="Property" Name="NewLine" />
+      <Member MemberType="Property" Name="StackTrace" />
+      <Member MemberType="Property" Name="TickCount" />
+      <Member MemberType="Property" Name="Version" />
+      <Member MemberType="Property" Name="ExitCode" />
+      <Member Status="ImplRoot" Name="GetResourceStringLocal(System.String)" />
+      <Member Status="ImplRoot" Name="SetCommandLineArgs(System.String[])" />
+      <Member Name="FailFast(System.String)"  />
+      <Member Name="FailFast(System.String,System.Exception)"  />
+      <Member Name="Exit(System.Int32)" />
+    </Type>
+    <Type Name="System.EventArgs">
+      <Member MemberType="Field" Name="Empty" />
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.EventHandler">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(System.Object,System.EventArgs,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(System.Object,System.EventArgs)" />
+    </Type>
+    <Type Name="System.EventHandler&lt;TEventArgs&gt;">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(System.Object,TEventArgs,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(System.Object,TEventArgs)" />
+    </Type>
+    <Type Name="System.Exception">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="get_Data" />
+      <Member Name="get_HelpLink" />
+      <Member Name="get_HResult" />
+      <Member Name="get_InnerException" />
+      <Member Name="get_Message" />
+      <Member Name="get_StackTrace" />
+      <Member Name="get_Source" />
+      <Member Name="GetBaseException" />
+      <Member Name="set_HelpLink(System.String)" />
+      <Member Name="set_HResult(System.Int32)" />
+      <Member Name="set_Source(System.String)" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Data" />
+      <Member MemberType="Property" Name="HelpLink" />
+      <Member MemberType="Property" Name="HResult" />
+      <Member MemberType="Property" Name="InnerException" />
+      <Member MemberType="Property" Name="Message" />
+      <Member MemberType="Property" Name="Source" />
+      <Member MemberType="Property" Name="StackTrace" />
+      <Member Status="ImplRoot" Name="InternalToString" />
+      <Member Status="ImplRoot" Name="InternalPreserveStackTrace" />
+      <Member Status="ImplRoot" MemberType="Field" Name="_remoteStackIndex" /> <!-- EE -->
+      <Member Status="ImplRoot" MemberType="Field" Name="_exceptionMethod" /> <!-- EE -->
+      <Member Status="ImplRoot" MemberType="Field" Name="_exceptionMethodString" /> <!-- EE -->
+      <Member Status="ImplRoot" MemberType="Field" Name="_source" /> <!-- EE -->
+      <Member Status="ImplRoot" MemberType="Field" Name="_xptrs" /> <!-- EE -->
+      <Member Status="ImplRoot" MemberType="Field" Name="_xcode" /> <!-- EE -->
+      <Member Status="ImplRoot" MemberType="Field" Name="_HResult" /> <!-- EE -->
+      <Member Status="ImplRoot" Name="AddExceptionDataForRestrictedErrorInfo(System.String,System.String,System.String,System.Object,System.Boolean)" Condition="FEATURE_COMINTEROP" />
+      <Member Status="ImplRoot" Name="TryGetRestrictedLanguageErrorObject(System.Object@)" Condition="FEATURE_COMINTEROP" />
+
+    </Type>
+    <Type Name="System.ExecutionEngineException" />
+    <Type Name="System.FieldAccessException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.FlagsAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.FormatException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.FormattableString">
+      <Member Name="#ctor" />
+      <Member Name="get_Format" />
+      <Member MemberType="Property" Name="Format" />
+      <Member Name="GetArguments" />
+      <Member Name="get_ArgumentCount" />
+      <Member MemberType="Property" Name="ArgumentCount" />
+      <Member Name="GetArgument(System.Int32)" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="Invariant(System.FormattableString)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Func&lt;TResult&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Func&lt;T,TResult&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Func&lt;T1,T2,TResult&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Func&lt;T1,T2,T3,TResult&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Func&lt;T1,T2,T3,T4,TResult&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,T4,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3,T4)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Func&lt;T1,T2,T3,T4,T5,TResult&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,T4,T5,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3,T4,T5)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Func&lt;T1,T2,T3,T4,T5,T6,TResult&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,T4,T5,T6,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3,T4,T5,T6)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Func&lt;T1,T2,T3,T4,T5,T6,T7,TResult&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,T4,T5,T6,T7,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3,T4,T5,T6,T7)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Func&lt;T1,T2,T3,T4,T5,T6,T7,T8,TResult&gt;">
+      <Member Status="ApiRoot" Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(T1,T2,T3,T4,T5,T6,T7,T8,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(T1,T2,T3,T4,T5,T6,T7,T8)" />
+    </Type>
+    <Type Name="System.GC">
+      <Member Name="AddMemoryPressure(System.Int64)" />
+      <Member Name="Collect" />
+      <Member Name="Collect(System.Int32)" />
+      <Member Name="Collect(System.Int32,System.GCCollectionMode)" />
+      <Member Name="Collect(System.Int32,System.GCCollectionMode,System.Boolean)" />
+      <Member Name="Collect(System.Int32,System.GCCollectionMode,System.Boolean,System.Boolean)" />
+      <Member Name="CollectionCount(System.Int32)" />
+      <Member Name="GetGeneration(System.Object)" />
+      <Member Name="get_MaxGeneration" />
+      <Member Name="GetTotalMemory(System.Boolean)" />
+      <Member Name="KeepAlive(System.Object)" />
+      <Member Name="RemoveMemoryPressure(System.Int64)" />
+      <Member Name="ReRegisterForFinalize(System.Object)" />
+      <Member Name="SuppressFinalize(System.Object)" />
+      <Member Name="WaitForPendingFinalizers" />
+      <Member MemberType="Property" Name="MaxGeneration" />
+    </Type>
+    <Type Name="System.Globalization.Calendar">
+      <Member MemberType="Field" Name="CurrentEra" />
+      <Member Name="#ctor" />
+      <Member Name="AddDays(System.DateTime,System.Int32)" />
+      <Member Name="AddHours(System.DateTime,System.Int32)" />
+      <Member Name="AddMilliseconds(System.DateTime,System.Double)" />
+      <Member Name="AddMinutes(System.DateTime,System.Int32)" />
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddSeconds(System.DateTime,System.Int32)" />
+      <Member Name="AddWeeks(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_Eras" />
+      <Member Name="get_IsReadOnly" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member Name="GetHour(System.DateTime)" />
+      <Member Name="GetMilliseconds(System.DateTime)" />
+      <Member Name="GetMinute(System.DateTime)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetSecond(System.DateTime)" />
+      <Member Name="GetWeekOfYear(System.DateTime,System.Globalization.CalendarWeekRule,System.DayOfWeek)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="IsReadOnly" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+      <Member Status="ImplRoot" MemberType="Field" Name="CAL_GREGORIAN" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+      <Member Status="ImplRoot" MemberType="Field" Name="CAL_GREGORIAN_ARABIC" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+      <Member Status="ImplRoot" MemberType="Field" Name="CAL_GREGORIAN_ME_FRENCH" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+      <Member Status="ImplRoot" MemberType="Field" Name="CAL_GREGORIAN_US" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+      <Member Status="ImplRoot" MemberType="Field" Name="CAL_GREGORIAN_XLIT_ENGLISH" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+      <Member Status="ImplRoot" MemberType="Field" Name="CAL_GREGORIAN_XLIT_FRENCH" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+    </Type>
+    <Type Name="System.Globalization.CalendarWeekRule">
+      <Member MemberType="Field" Name="FirstDay" />
+      <Member MemberType="Field" Name="FirstFourDayWeek" />
+      <Member MemberType="Field" Name="FirstFullWeek" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Globalization.CharUnicodeInfo">
+      <Member Name="GetNumericValue(System.Char)" />
+      <Member Name="GetNumericValue(System.String,System.Int32)" />
+      <Member Name="GetUnicodeCategory(System.Char)" />
+      <Member Name="GetUnicodeCategory(System.String,System.Int32)" />
+    </Type>
+    <Type Name="System.Globalization.ChineseLunisolarCalendar">
+      <Member MemberType="Field" Name="ChineseEra" />
+      <Member Name="#ctor" />
+      <Member Name="get_DaysInYearBeforeMinSupportedYear" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member MemberType="Property" Name="DaysInYearBeforeMinSupportedYear" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+    </Type>
+    <Type Name="System.Globalization.CompareInfo">
+      <Member Name="Compare(System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32)" />
+      <Member Name="Compare(System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32,System.Globalization.CompareOptions)" />
+      <Member Name="Compare(System.String,System.Int32,System.String,System.Int32)" />
+      <Member Name="Compare(System.String,System.Int32,System.String,System.Int32,System.Globalization.CompareOptions)" />
+      <Member Name="Compare(System.String,System.String)" />
+      <Member Name="Compare(System.String,System.String,System.Globalization.CompareOptions)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Name" />
+      <Member Name="GetCompareInfo(System.String)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetHashCode(System.String,System.Globalization.CompareOptions)" />
+      <Member Name="IndexOf(System.String,System.Char)" />
+      <Member Name="IndexOf(System.String,System.Char,System.Globalization.CompareOptions)" />
+      <Member Name="IndexOf(System.String,System.Char,System.Int32,System.Globalization.CompareOptions)" />
+      <Member Name="IndexOf(System.String,System.Char,System.Int32,System.Int32)" />
+      <Member Name="IndexOf(System.String,System.Char,System.Int32,System.Int32,System.Globalization.CompareOptions)" />
+      <Member Name="IndexOf(System.String,System.String)" />
+      <Member Name="IndexOf(System.String,System.String,System.Globalization.CompareOptions)" />
+      <Member Name="IndexOf(System.String,System.String,System.Int32,System.Globalization.CompareOptions)" />
+      <Member Name="IndexOf(System.String,System.String,System.Int32,System.Int32)" />
+      <Member Name="IndexOf(System.String,System.String,System.Int32,System.Int32,System.Globalization.CompareOptions)" />
+      <Member Name="IsPrefix(System.String,System.String)" />
+      <Member Name="IsPrefix(System.String,System.String,System.Globalization.CompareOptions)" />
+      <Member Name="IsSuffix(System.String,System.String)" />
+      <Member Name="IsSuffix(System.String,System.String,System.Globalization.CompareOptions)" />
+      <Member Name="LastIndexOf(System.String,System.Char)" />
+      <Member Name="LastIndexOf(System.String,System.Char,System.Globalization.CompareOptions)" />
+      <Member Name="LastIndexOf(System.String,System.Char,System.Int32,System.Globalization.CompareOptions)" />
+      <Member Name="LastIndexOf(System.String,System.Char,System.Int32,System.Int32)" />
+      <Member Name="LastIndexOf(System.String,System.Char,System.Int32,System.Int32,System.Globalization.CompareOptions)" />
+      <Member Name="LastIndexOf(System.String,System.String)" />
+      <Member Name="LastIndexOf(System.String,System.String,System.Globalization.CompareOptions)" />
+      <Member Name="LastIndexOf(System.String,System.String,System.Int32,System.Globalization.CompareOptions)" />
+      <Member Name="LastIndexOf(System.String,System.String,System.Int32,System.Int32)" />
+      <Member Name="LastIndexOf(System.String,System.String,System.Int32,System.Int32,System.Globalization.CompareOptions)" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Name" />
+    </Type>
+    <Type Name="System.Globalization.CompareOptions">
+      <Member MemberType="Field" Name="IgnoreCase" />
+      <Member MemberType="Field" Name="IgnoreKanaType" />
+      <Member MemberType="Field" Name="IgnoreNonSpace" />
+      <Member MemberType="Field" Name="IgnoreSymbols" />
+      <Member MemberType="Field" Name="IgnoreWidth" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="Ordinal" />
+      <Member MemberType="Field" Name="OrdinalIgnoreCase" />
+      <Member MemberType="Field" Name="StringSort" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Globalization.CultureInfo">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="Clone" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Calendar" />
+      <Member Name="get_CompareInfo" />
+      <Member Name="get_CurrentCulture" />
+      <Member Name="get_CurrentUICulture" />
+      <Member Name="get_DefaultThreadCurrentCulture" />
+      <Member Name="get_DefaultThreadCurrentUICulture" />
+      <Member Name="get_DateTimeFormat" />
+      <Member Name="get_DisplayName" />
+      <Member Name="get_EnglishName" />
+      <Member Name="get_InvariantCulture" />
+      <Member Name="get_IsNeutralCulture" />
+      <Member Name="get_IsReadOnly" />
+      <Member Name="get_Name" />
+      <Member Name="get_NativeName" />
+      <Member Name="get_NumberFormat" />
+      <Member Name="get_OptionalCalendars" />
+      <Member Name="get_Parent" />
+      <Member Name="get_TextInfo" />
+      <Member Name="get_TwoLetterISOLanguageName" />
+      <Member Name="GetFormat(System.Type)" />
+      <Member Name="GetHashCode" />
+      <Member Name="ReadOnly(System.Globalization.CultureInfo)" />
+      <Member Name="set_CurrentCulture(System.Globalization.CultureInfo)" />
+      <Member Name="set_CurrentUICulture(System.Globalization.CultureInfo)" />
+      <Member Name="set_DateTimeFormat(System.Globalization.DateTimeFormatInfo)" />
+      <Member Name="set_DefaultThreadCurrentCulture(System.Globalization.CultureInfo)" />
+      <Member Name="set_DefaultThreadCurrentUICulture(System.Globalization.CultureInfo)" />
+      <Member Name="set_NumberFormat(System.Globalization.NumberFormatInfo)" />
+      <Member Name="ToString" />
+      <Member Status="ImplRoot" Name="get_SortName" />
+      <Member MemberType="Property" Name="Calendar" />
+      <Member MemberType="Property" Name="CompareInfo" />
+      <Member MemberType="Property" Name="CurrentCulture" />
+      <Member MemberType="Property" Name="CurrentUICulture" />
+      <Member MemberType="Property" Name="DateTimeFormat" />
+      <Member MemberType="Property" Name="DefaultThreadCurrentCulture" />
+      <Member MemberType="Property" Name="DefaultThreadCurrentUICulture"/>
+      <Member MemberType="Property" Name="DisplayName" />
+      <Member MemberType="Property" Name="EnglishName" />
+      <Member MemberType="Property" Name="InvariantCulture" />
+      <Member MemberType="Property" Name="IsNeutralCulture" />
+      <Member MemberType="Property" Name="IsReadOnly" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="NativeName" />
+      <Member MemberType="Property" Name="NumberFormat" />
+      <Member MemberType="Property" Name="OptionalCalendars" />
+      <Member MemberType="Property" Name="Parent" />
+      <Member MemberType="Property" Name="TextInfo" />
+      <Member MemberType="Property" Name="TwoLetterISOLanguageName" />
+      <Member Status="ImplRoot" MemberType="Property" Name="SortName" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_parent" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_useUserOverride" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+    </Type>
+    <Type Name="System.Globalization.CultureNotFoundException">
+      <Member Name="#ctor"/>
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="#ctor(System.String,System.String,System.String)" />
+      <Member Name="#ctor(System.String,System.String,System.Exception)" />
+      <Member Name="get_InvalidCultureName" />
+      <Member Name="get_Message" />
+      <Member MemberType="Property" Name="InvalidCultureName" />
+      <Member MemberType="Property" Name="Message" />
+    </Type>
+    <Type Name="System.Globalization.DateTimeFormatInfo">
+      <Member Name="#ctor" />
+      <Member Name="Clone" />
+      <Member Name="get_AbbreviatedDayNames" />
+      <Member Name="get_AbbreviatedMonthGenitiveNames" />
+      <Member Name="get_AbbreviatedMonthNames" />
+      <Member Name="get_AMDesignator" />
+      <Member Name="get_Calendar" />
+      <Member Name="get_CalendarWeekRule" />
+      <Member Name="get_CurrentInfo" />
+      <Member Name="get_DayNames" />
+      <Member Name="get_FirstDayOfWeek" />
+      <Member Name="get_FullDateTimePattern" />
+      <Member Name="get_InvariantInfo" />
+      <Member Name="get_IsReadOnly" />
+      <Member Name="get_LongDatePattern" />
+      <Member Name="get_LongTimePattern" />
+      <Member Name="get_MonthDayPattern" />
+      <Member Name="get_MonthGenitiveNames" />
+      <Member Name="get_MonthNames" />
+      <Member Name="get_PMDesignator" />
+      <Member Name="get_RFC1123Pattern" />
+      <Member Name="get_ShortDatePattern" />
+      <Member Name="get_ShortestDayNames" />
+      <Member Name="get_ShortTimePattern" />
+      <Member Name="get_SortableDateTimePattern" />
+      <Member Name="get_UniversalSortableDateTimePattern" />
+      <Member Name="get_YearMonthPattern" />
+      <Member Name="GetAbbreviatedDayName(System.DayOfWeek)" />
+      <Member Name="GetAbbreviatedEraName(System.Int32)" />
+      <Member Name="GetAbbreviatedMonthName(System.Int32)" />
+      <Member Name="GetDayName(System.DayOfWeek)" />
+      <Member Name="GetEra(System.String)" />
+      <Member Name="GetEraName(System.Int32)" />
+      <Member Name="GetFormat(System.Type)" />
+      <Member Name="GetInstance(System.IFormatProvider)" />
+      <Member Name="GetMonthName(System.Int32)" />
+      <Member Name="ReadOnly(System.Globalization.DateTimeFormatInfo)" />
+      <Member Name="set_AbbreviatedDayNames(System.String[])" />
+      <Member Name="set_AbbreviatedMonthGenitiveNames(System.String[])" />
+      <Member Name="set_AbbreviatedMonthNames(System.String[])" />
+      <Member Name="set_AMDesignator(System.String)" />
+      <Member Name="set_Calendar(System.Globalization.Calendar)" />
+      <Member Name="set_CalendarWeekRule(System.Globalization.CalendarWeekRule)" />
+      <Member Name="set_DayNames(System.String[])" />
+      <Member Name="set_FirstDayOfWeek(System.DayOfWeek)" />
+      <Member Name="set_FullDateTimePattern(System.String)" />
+      <Member Name="set_LongDatePattern(System.String)" />
+      <Member Name="set_LongTimePattern(System.String)" />
+      <Member Name="set_MonthDayPattern(System.String)" />
+      <Member Name="set_MonthGenitiveNames(System.String[])" />
+      <Member Name="set_MonthNames(System.String[])" />
+      <Member Name="set_PMDesignator(System.String)" />
+      <Member Name="set_ShortDatePattern(System.String)" />
+      <Member Name="set_ShortestDayNames(System.String[])" />
+      <Member Name="set_ShortTimePattern(System.String)" />
+      <Member Name="set_YearMonthPattern(System.String)" />
+      <Member MemberType="Property" Name="AbbreviatedDayNames" />
+      <Member MemberType="Property" Name="AbbreviatedMonthGenitiveNames" />
+      <Member MemberType="Property" Name="AbbreviatedMonthNames" />
+      <Member MemberType="Property" Name="AMDesignator" />
+      <Member MemberType="Property" Name="Calendar" />
+      <Member MemberType="Property" Name="CalendarWeekRule" />
+      <Member MemberType="Property" Name="CurrentInfo" />
+      <Member MemberType="Property" Name="DayNames" />
+      <Member MemberType="Property" Name="FirstDayOfWeek" />
+      <Member MemberType="Property" Name="FullDateTimePattern" />
+      <Member MemberType="Property" Name="InvariantInfo" />
+      <Member MemberType="Property" Name="IsReadOnly" />
+      <Member MemberType="Property" Name="LongDatePattern" />
+      <Member MemberType="Property" Name="LongTimePattern" />
+      <Member MemberType="Property" Name="MonthDayPattern" />
+      <Member MemberType="Property" Name="MonthGenitiveNames" />
+      <Member MemberType="Property" Name="MonthNames" />
+      <Member MemberType="Property" Name="PMDesignator" />
+      <Member MemberType="Property" Name="RFC1123Pattern" />
+      <Member MemberType="Property" Name="ShortDatePattern" />
+      <Member MemberType="Property" Name="ShortestDayNames" />
+      <Member MemberType="Property" Name="ShortTimePattern" />
+      <Member MemberType="Property" Name="SortableDateTimePattern" />
+      <Member MemberType="Property" Name="UniversalSortableDateTimePattern" />
+      <Member MemberType="Property" Name="YearMonthPattern" />
+    </Type>
+
+    <Type Name="System.Globalization.DateTimeStyles">
+      <Member MemberType="Field" Name="AdjustToUniversal" />
+      <Member MemberType="Field" Name="AllowInnerWhite" />
+      <Member MemberType="Field" Name="AllowLeadingWhite" />
+      <Member MemberType="Field" Name="AllowTrailingWhite" />
+      <Member MemberType="Field" Name="AllowWhiteSpaces" />
+      <Member MemberType="Field" Name="AssumeLocal" />
+      <Member MemberType="Field" Name="AssumeUniversal" />
+      <Member MemberType="Field" Name="NoCurrentDateDefault" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="RoundtripKind" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    
+    <Type Name="System.Globalization.PersianCalendar">
+      <Member MemberType="Field" Name="PersianEra" />
+      <Member Name="#ctor" />
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_AlgorithmType" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member Name="GetLeapMonth(System.Int32,System.Int32)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="AlgorithmType" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+    </Type>
+        
+    <Type Name="System.Globalization.TimeSpanStyles">
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="AssumeNegative" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Globalization.EastAsianLunisolarCalendar">
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_AlgorithmType" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetCelestialStem(System.Int32)" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetLeapMonth(System.Int32,System.Int32)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetSexagenaryYear(System.DateTime)" />
+      <Member Name="GetTerrestrialBranch(System.Int32)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="AlgorithmType" Condition="not FEATURE_COREFX_GLOBALIZATION"/>
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+    </Type>
+    <Type Name="System.Globalization.GregorianCalendar">
+      <Member MemberType="Field" Name="ADEra" />
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Globalization.GregorianCalendarTypes)" />
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_CalendarType" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_CalendarType(System.Globalization.GregorianCalendarTypes)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="CalendarType" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+    </Type>
+    <Type Name="System.Globalization.GregorianCalendarTypes">
+      <Member MemberType="Field" Name="Arabic" />
+      <Member MemberType="Field" Name="Localized" />
+      <Member MemberType="Field" Name="MiddleEastFrench" />
+      <Member MemberType="Field" Name="TransliteratedEnglish" />
+      <Member MemberType="Field" Name="TransliteratedFrench" />
+      <Member MemberType="Field" Name="USEnglish" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Globalization.JapaneseCalendar">
+      <Member Name="#ctor" />
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetWeekOfYear(System.DateTime,System.Globalization.CalendarWeekRule,System.DayOfWeek)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+    </Type>
+    <Type Name="System.Globalization.JapaneseLunisolarCalendar">
+      <Member MemberType="Field" Name="JapaneseEra" />
+      <Member Name="#ctor" />
+      <Member Name="get_DaysInYearBeforeMinSupportedYear" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member MemberType="Property" Name="DaysInYearBeforeMinSupportedYear" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+    </Type>
+    <Type Name="System.Globalization.JulianCalendar">
+      <Member MemberType="Field" Name="JulianEra" />
+      <Member Name="#ctor" />
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_AlgorithmType" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member Name="GetLeapMonth(System.Int32,System.Int32)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="AlgorithmType" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+    </Type>
+    <Type Name="System.Globalization.HebrewCalendar">
+      <Member Name="#ctor" />
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member Name="GetLeapMonth(System.Int32,System.Int32)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+    </Type>
+    <Type Name="System.Globalization.HijriCalendar">
+      <Member Name="#ctor" />
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_Eras" />
+      <Member Name="get_HijriAdjustment" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member Name="GetLeapMonth(System.Int32,System.Int32)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_HijriAdjustment(System.Int32)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="HijriAdjustment" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+    </Type>    
+    <Type Name="System.Globalization.KoreanCalendar">
+      <Member MemberType="Field" Name="KoreanEra" />
+      <Member Name="#ctor" />
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetWeekOfYear(System.DateTime,System.Globalization.CalendarWeekRule,System.DayOfWeek)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+    </Type>
+    <Type Name="System.Globalization.KoreanLunisolarCalendar">
+      <Member MemberType="Field" Name="GregorianEra" />
+      <Member Name="#ctor" />
+      <Member Name="get_DaysInYearBeforeMinSupportedYear" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member MemberType="Property" Name="DaysInYearBeforeMinSupportedYear" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+    </Type>
+    <Type Name="System.Globalization.UmAlQuraCalendar">
+      <Member Name="#ctor" />
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member Name="GetLeapMonth(System.Int32,System.Int32)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+    </Type>    
+    <Type Name="System.Globalization.NumberFormatInfo">
+      <Member Name="#ctor" />
+      <Member Name="Clone" />
+      <Member Name="get_CurrencyDecimalDigits" />
+      <Member Name="get_CurrencyDecimalSeparator" />
+      <Member Name="get_CurrencyGroupSeparator" />
+      <Member Name="get_CurrencyGroupSizes" />
+      <Member Name="get_CurrencyNegativePattern" />
+      <Member Name="get_CurrencyPositivePattern" />
+      <Member Name="get_CurrencySymbol" />
+      <Member Name="get_CurrentInfo" />
+      <Member Name="get_InvariantInfo" />
+      <Member Name="get_IsReadOnly" />
+      <Member Name="get_NaNSymbol" />
+      <Member Name="get_NegativeInfinitySymbol" />
+      <Member Name="get_NegativeSign" />
+      <Member Name="get_NumberDecimalDigits" />
+      <Member Name="get_NumberDecimalSeparator" />
+      <Member Name="get_NumberGroupSeparator" />
+      <Member Name="get_NumberGroupSizes" />
+      <Member Name="get_NumberNegativePattern" />
+      <Member Name="get_PercentDecimalDigits" />
+      <Member Name="get_PercentDecimalSeparator" />
+      <Member Name="get_PercentGroupSeparator" />
+      <Member Name="get_PercentGroupSizes" />
+      <Member Name="get_PercentNegativePattern" />
+      <Member Name="get_PercentPositivePattern" />
+      <Member Name="get_PercentSymbol" />
+      <Member Name="get_PerMilleSymbol" />
+      <Member Name="get_PositiveInfinitySymbol" />
+      <Member Name="get_PositiveSign" />
+      <Member Name="GetFormat(System.Type)" />
+      <Member Name="GetInstance(System.IFormatProvider)" />
+      <Member Name="ReadOnly(System.Globalization.NumberFormatInfo)" />
+      <Member Name="set_CurrencyDecimalDigits(System.Int32)" />
+      <Member Name="set_CurrencyDecimalSeparator(System.String)" />
+      <Member Name="set_CurrencyGroupSeparator(System.String)" />
+      <Member Name="set_CurrencyGroupSizes(System.Int32[])" />
+      <Member Name="set_CurrencyNegativePattern(System.Int32)" />
+      <Member Name="set_CurrencyPositivePattern(System.Int32)" />
+      <Member Name="set_CurrencySymbol(System.String)" />
+      <Member Name="set_NaNSymbol(System.String)" />
+      <Member Name="set_NegativeInfinitySymbol(System.String)" />
+      <Member Name="set_NegativeSign(System.String)" />
+      <Member Name="set_NumberDecimalDigits(System.Int32)" />
+      <Member Name="set_NumberDecimalSeparator(System.String)" />
+      <Member Name="set_NumberGroupSeparator(System.String)" />
+      <Member Name="set_NumberGroupSizes(System.Int32[])" />
+      <Member Name="set_NumberNegativePattern(System.Int32)" />
+      <Member Name="set_PercentDecimalDigits(System.Int32)" />
+      <Member Name="set_PercentDecimalSeparator(System.String)" />
+      <Member Name="set_PercentGroupSeparator(System.String)" />
+      <Member Name="set_PercentGroupSizes(System.Int32[])" />
+      <Member Name="set_PercentNegativePattern(System.Int32)" />
+      <Member Name="set_PercentPositivePattern(System.Int32)" />
+      <Member Name="set_PercentSymbol(System.String)" />
+      <Member Name="set_PerMilleSymbol(System.String)" />
+      <Member Name="set_PositiveInfinitySymbol(System.String)" />
+      <Member Name="set_PositiveSign(System.String)" />
+      <Member MemberType="Property" Name="CurrencyDecimalDigits" />
+      <Member MemberType="Property" Name="CurrencyDecimalSeparator" />
+      <Member MemberType="Property" Name="CurrencyGroupSeparator" />
+      <Member MemberType="Property" Name="CurrencyGroupSizes" />
+      <Member MemberType="Property" Name="CurrencyNegativePattern" />
+      <Member MemberType="Property" Name="CurrencyPositivePattern" />
+      <Member MemberType="Property" Name="CurrencySymbol" />
+      <Member MemberType="Property" Name="CurrentInfo" />
+      <Member MemberType="Property" Name="InvariantInfo" />
+      <Member MemberType="Property" Name="IsReadOnly" />
+      <Member MemberType="Property" Name="NaNSymbol" />
+      <Member MemberType="Property" Name="NegativeInfinitySymbol" />
+      <Member MemberType="Property" Name="NegativeSign" />
+      <Member MemberType="Property" Name="NumberDecimalDigits" />
+      <Member MemberType="Property" Name="NumberDecimalSeparator" />
+      <Member MemberType="Property" Name="NumberGroupSeparator" />
+      <Member MemberType="Property" Name="NumberGroupSizes" />
+      <Member MemberType="Property" Name="NumberNegativePattern" />
+      <Member MemberType="Property" Name="PercentDecimalDigits" />
+      <Member MemberType="Property" Name="PercentDecimalSeparator" />
+      <Member MemberType="Property" Name="PercentGroupSeparator" />
+      <Member MemberType="Property" Name="PercentGroupSizes" />
+      <Member MemberType="Property" Name="PercentNegativePattern" />
+      <Member MemberType="Property" Name="PercentPositivePattern" />
+      <Member MemberType="Property" Name="PercentSymbol" />
+      <Member MemberType="Property" Name="PerMilleSymbol" />
+      <Member MemberType="Property" Name="PositiveInfinitySymbol" />
+      <Member MemberType="Property" Name="PositiveSign" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_dataItem" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_useUserOverride" Condition="not FEATURE_COREFX_GLOBALIZATION" />
+    </Type>
+    <Type Name="System.Globalization.NumberStyles">
+      <Member MemberType="Field" Name="AllowCurrencySymbol" />
+      <Member MemberType="Field" Name="AllowDecimalPoint" />
+      <Member MemberType="Field" Name="AllowExponent" />
+      <Member MemberType="Field" Name="AllowHexSpecifier" />
+      <Member MemberType="Field" Name="AllowLeadingSign" />
+      <Member MemberType="Field" Name="AllowLeadingWhite" />
+      <Member MemberType="Field" Name="AllowParentheses" />
+      <Member MemberType="Field" Name="AllowThousands" />
+      <Member MemberType="Field" Name="AllowTrailingSign" />
+      <Member MemberType="Field" Name="AllowTrailingWhite" />
+      <Member MemberType="Field" Name="Any" />
+      <Member MemberType="Field" Name="Currency" />
+      <Member MemberType="Field" Name="Float" />
+      <Member MemberType="Field" Name="HexNumber" />
+      <Member MemberType="Field" Name="Integer" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="Number" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Globalization.RegionInfo">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_CurrencySymbol" />
+      <Member Name="get_CurrentRegion" />
+      <Member Name="get_DisplayName" />
+      <Member Name="get_EnglishName" />
+      <Member Name="get_IsMetric" />
+      <Member Name="get_ISOCurrencySymbol" />
+      <Member Name="get_Name" />
+      <Member Name="get_NativeName" />
+      <Member Name="get_TwoLetterISORegionName" />
+      <Member Name="GetHashCode" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="CurrencySymbol" />
+      <Member MemberType="Property" Name="CurrentRegion" />
+      <Member MemberType="Property" Name="DisplayName" />
+      <Member MemberType="Property" Name="EnglishName" />
+      <Member MemberType="Property" Name="IsMetric" />
+      <Member MemberType="Property" Name="ISOCurrencySymbol" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="NativeName" />
+      <Member MemberType="Property" Name="TwoLetterISORegionName" />
+    </Type>
+    <Type Name="System.Globalization.StringInfo">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_LengthInTextElements" />
+      <Member Name="get_String" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetNextTextElement(System.String)" />
+      <Member Name="GetNextTextElement(System.String,System.Int32)" />
+      <Member Name="GetTextElementEnumerator(System.String)" />
+      <Member Name="GetTextElementEnumerator(System.String,System.Int32)" />
+      <Member Name="ParseCombiningCharacters(System.String)" />
+      <Member Name="set_String(System.String)" />
+      <Member MemberType="Property" Name="LengthInTextElements" />
+      <Member MemberType="Property" Name="String" />
+    </Type>
+    <Type Name="System.Globalization.TaiwanCalendar">
+      <Member Name="#ctor" />
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetWeekOfYear(System.DateTime,System.Globalization.CalendarWeekRule,System.DayOfWeek)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+    </Type>
+    <Type Name="System.Globalization.TaiwanLunisolarCalendar">
+      <Member Name="#ctor" />
+      <Member Name="get_DaysInYearBeforeMinSupportedYear" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member MemberType="Property" Name="DaysInYearBeforeMinSupportedYear" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+    </Type>
+    <Type Name="System.Globalization.TextElementEnumerator">
+      <Member Name="get_Current" />
+      <Member Name="get_ElementIndex" />
+      <Member Name="GetTextElement" />
+      <Member Name="MoveNext" />
+      <Member Name="Reset" />
+      <Member MemberType="Property" Name="Current" />
+      <Member MemberType="Property" Name="ElementIndex" />
+    </Type>
+    <Type Name="System.Globalization.TextInfo">
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_CultureName" />
+      <Member Name="get_IsReadOnly" />
+      <Member Name="get_IsRightToLeft" />
+      <Member Name="get_ListSeparator" />
+      <Member Name="GetHashCode" />
+      <Member Name="set_ListSeparator(System.String)" />
+      <Member Name="ToLower(System.Char)" />
+      <Member Name="ToLower(System.String)" />
+      <Member Name="ToString" />
+      <Member Name="ToUpper(System.Char)" />
+      <Member Name="ToUpper(System.String)" />
+      <Member MemberType="Property" Name="CultureName" />
+      <Member MemberType="Property" Name="IsReadOnly" />
+      <Member MemberType="Property" Name="IsRightToLeft" />
+      <Member MemberType="Property" Name="ListSeparator" />
+    </Type>
+    <Type Name="System.Globalization.ThaiBuddhistCalendar">
+      <Member MemberType="Field" Name="ThaiBuddhistEra" />
+      <Member Name="#ctor" />
+      <Member Name="AddMonths(System.DateTime,System.Int32)" />
+      <Member Name="AddYears(System.DateTime,System.Int32)" />
+      <Member Name="get_Eras" />
+      <Member Name="get_MaxSupportedDateTime" />
+      <Member Name="get_MinSupportedDateTime" />
+      <Member Name="get_TwoDigitYearMax" />
+      <Member Name="GetDayOfMonth(System.DateTime)" />
+      <Member Name="GetDayOfWeek(System.DateTime)" />
+      <Member Name="GetDayOfYear(System.DateTime)" />
+      <Member Name="GetDaysInMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="GetDaysInYear(System.Int32,System.Int32)" />
+      <Member Name="GetEra(System.DateTime)" />
+      <Member Name="GetMonth(System.DateTime)" />
+      <Member Name="GetMonthsInYear(System.Int32,System.Int32)" />
+      <Member Name="GetWeekOfYear(System.DateTime,System.Globalization.CalendarWeekRule,System.DayOfWeek)" />
+      <Member Name="GetYear(System.DateTime)" />
+      <Member Name="IsLeapDay(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapMonth(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="IsLeapYear(System.Int32,System.Int32)" />
+      <Member Name="set_TwoDigitYearMax(System.Int32)" />
+      <Member Name="ToDateTime(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="ToFourDigitYear(System.Int32)" />
+      <Member MemberType="Property" Name="Eras" />
+      <Member MemberType="Property" Name="MaxSupportedDateTime" />
+      <Member MemberType="Property" Name="MinSupportedDateTime" />
+      <Member MemberType="Property" Name="TwoDigitYearMax" />
+    </Type>
+    <Type Name="System.Globalization.UnicodeCategory">
+      <Member MemberType="Field" Name="ClosePunctuation" />
+      <Member MemberType="Field" Name="ConnectorPunctuation" />
+      <Member MemberType="Field" Name="Control" />
+      <Member MemberType="Field" Name="CurrencySymbol" />
+      <Member MemberType="Field" Name="DashPunctuation" />
+      <Member MemberType="Field" Name="DecimalDigitNumber" />
+      <Member MemberType="Field" Name="EnclosingMark" />
+      <Member MemberType="Field" Name="FinalQuotePunctuation" />
+      <Member MemberType="Field" Name="Format" />
+      <Member MemberType="Field" Name="InitialQuotePunctuation" />
+      <Member MemberType="Field" Name="LetterNumber" />
+      <Member MemberType="Field" Name="LineSeparator" />
+      <Member MemberType="Field" Name="LowercaseLetter" />
+      <Member MemberType="Field" Name="MathSymbol" />
+      <Member MemberType="Field" Name="ModifierLetter" />
+      <Member MemberType="Field" Name="ModifierSymbol" />
+      <Member MemberType="Field" Name="NonSpacingMark" />
+      <Member MemberType="Field" Name="OpenPunctuation" />
+      <Member MemberType="Field" Name="OtherLetter" />
+      <Member MemberType="Field" Name="OtherNotAssigned" />
+      <Member MemberType="Field" Name="OtherNumber" />
+      <Member MemberType="Field" Name="OtherPunctuation" />
+      <Member MemberType="Field" Name="OtherSymbol" />
+      <Member MemberType="Field" Name="ParagraphSeparator" />
+      <Member MemberType="Field" Name="PrivateUse" />
+      <Member MemberType="Field" Name="SpaceSeparator" />
+      <Member MemberType="Field" Name="SpacingCombiningMark" />
+      <Member MemberType="Field" Name="Surrogate" />
+      <Member MemberType="Field" Name="TitlecaseLetter" />
+      <Member MemberType="Field" Name="UppercaseLetter" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Guid">
+      <Member MemberType="Field" Name="Empty" />
+      <Member Name="#ctor(System.Byte[])" />
+      <Member Name="#ctor(System.UInt32,System.UInt16,System.UInt16,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte)" />
+      <Member Name="#ctor(System.Int32,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte)" />
+      <Member Name="#ctor(System.Int32,System.Int16,System.Int16,System.Byte[])" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="CompareTo(System.Guid)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="Equals(System.Guid)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="NewGuid" />
+      <Member Name="op_Equality(System.Guid,System.Guid)" />
+      <Member Name="op_Inequality(System.Guid,System.Guid)" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="ParseExact(System.String,System.String)" />
+      <Member Name="ToByteArray" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.Guid@)" />
+      <Member Name="TryParseExact(System.String,System.String,System.Guid@)" />
+    </Type>
+    <Type Name="System.IAsyncResult">
+      <Member Name="get_AsyncState" />
+      <Member Name="get_AsyncWaitHandle" />
+      <Member Name="get_CompletedSynchronously" />
+      <Member Name="get_IsCompleted" />
+      <Member MemberType="Property" Name="AsyncState" />
+      <Member MemberType="Property" Name="AsyncWaitHandle" />
+      <Member MemberType="Property" Name="CompletedSynchronously" />
+      <Member MemberType="Property" Name="IsCompleted" />
+    </Type>
+    <Type Name="System.IComparable">
+      <Member Name="CompareTo(System.Object)" />
+    </Type>
+    <Type Name="System.IComparable&lt;T&gt;">
+      <Member Name="CompareTo(T)" />
+    </Type>
+    <Type Name="System.IConvertible">
+      <Member Name="GetTypeCode" />
+      <Member Name="ToBoolean(System.IFormatProvider)" />
+      <Member Name="ToByte(System.IFormatProvider)" />
+      <Member Name="ToChar(System.IFormatProvider)" />
+      <Member Name="ToDateTime(System.IFormatProvider)" />
+      <Member Name="ToDecimal(System.IFormatProvider)" />
+      <Member Name="ToDouble(System.IFormatProvider)" />
+      <Member Name="ToInt16(System.IFormatProvider)" />
+      <Member Name="ToInt32(System.IFormatProvider)" />
+      <Member Name="ToInt64(System.IFormatProvider)" />
+      <Member Name="ToSByte(System.IFormatProvider)" />
+      <Member Name="ToSingle(System.IFormatProvider)" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToType(System.Type,System.IFormatProvider)" />
+      <Member Name="ToUInt16(System.IFormatProvider)" />
+      <Member Name="ToUInt32(System.IFormatProvider)" />
+      <Member Name="ToUInt64(System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.ICustomFormatter">
+      <Member Name="Format(System.String,System.Object,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.IDisposable">
+      <Member Name="Dispose" />
+    </Type>
+    <Type Name="System.IEquatable&lt;T&gt;">
+      <Member Name="Equals(T)" />
+    </Type>
+    <Type Name="System.IFormatProvider">
+      <Member Name="GetFormat(System.Type)" />
+    </Type>
+    <Type Name="System.IFormattable">
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.IndexOutOfRangeException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.InsufficientExecutionStackException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Internal">
+      <Member Status="ImplRoot" Name="CommonlyUsedGenericInstantiations" />
+      <Member Status="ImplRoot" Name="CommonlyUsedWinRTRedirectedInterfaceStubs" Condition="FEATURE_COMINTEROP" />
+    </Type>
+    <Type Name="System.Int16">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member Name="CompareTo(System.Int16)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="Equals(System.Int16)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.Int16@)" />
+      <Member Name="TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Int16@)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.Int32">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member Name="CompareTo(System.Int32)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="Equals(System.Int32)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.Int32@)" />
+      <Member Name="TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Int32@)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.Int64">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member Name="CompareTo(System.Int64)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="Equals(System.Int64)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.Int64@)" />
+      <Member Name="TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Int64@)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.IntPtr">
+      <Member MemberType="Field" Name="Zero" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="#ctor(System.Int64)" />
+      <Member Name="#ctor(System.Void*)" />
+      <Member Name="Add(System.IntPtr,System.Int32)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Size" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Addition(System.IntPtr,System.Int32)" />
+      <Member Name="op_Equality(System.IntPtr,System.IntPtr)" />
+      <Member Name="op_Explicit(System.Int32)" ReturnType="System.IntPtr" />
+      <Member Name="op_Explicit(System.Int64)" ReturnType="System.IntPtr" />
+      <Member Name="op_Explicit(System.IntPtr)" ReturnType="System.Int32" />
+      <Member Name="op_Explicit(System.IntPtr)" ReturnType="System.Int64" />
+      <Member Name="op_Explicit(System.IntPtr)" ReturnType="System.Void*" />
+      <Member Name="op_Explicit(System.Void*)" ReturnType="System.IntPtr" />
+      <Member Name="op_Inequality(System.IntPtr,System.IntPtr)" />
+      <Member Name="op_Subtraction(System.IntPtr,System.Int32)" />
+      <Member Name="Subtract(System.IntPtr,System.Int32)" />
+      <Member Name="ToInt32" />
+      <Member Name="ToInt64" />
+      <Member Name="ToPointer" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.String)" />
+      <Member MemberType="Property" Name="Size" />
+    </Type>
+    <Type Name="System.InvalidCastException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="#ctor(System.String,System.Int32)" />
+    </Type>
+    <Type Name="System.InvalidOperationException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.InvalidProgramException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.InvalidTimeZoneException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Status="ApiFxInternal" Name="System.IO.BufferedStream">
+      <Member Name="#ctor(System.IO.Stream,System.Int32)" />
+      <Member Name="get_UnderlyingStream" />
+      <Member Name="get_BufferSize" />
+    </Type>
+    <Type Name="System.IO.FileLoadException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member Name="#ctor(System.String,System.String,System.Exception)" />      
+      <Member Name="#ctor(System.String,System.String,System.Int32)" /> <!-- Used by EE, do not remove -->
+      <Member Name="get_FileName" />
+    </Type>
+    <Type Name="System.IObservable&lt;T&gt;">
+      <Member Name="Subscribe(System.IObserver&lt;T&gt;)"/>
+    </Type>
+    <Type Name="System.IObserver&lt;T&gt;">
+      <Member Name="OnCompleted"/>
+      <Member Name="OnError(System.Exception)"/>
+      <Member Name="OnNext(T)"/>
+    </Type>
+    <Type Name="System.IProgress&lt;T&gt;">
+      <Member Name="Report(T)" />
+    </Type>
+    <Type Name="System.IServiceProvider">
+      <Member Name="GetService(System.Type)" />
+    </Type>
+    <Type Name="System.Lazy&lt;T&gt;">
+      <Member Name="#ctor"/>
+      <Member Name="#ctor(System.Func&lt;T&gt;)"/>
+      <Member Name="#ctor(System.Boolean)"/>
+      <Member Name="#ctor(System.Threading.LazyThreadSafetyMode)"/>
+      <Member Name="#ctor(System.Func&lt;T&gt;,System.Boolean)"/>
+      <Member Name="#ctor(System.Func&lt;T&gt;,System.Threading.LazyThreadSafetyMode)"/>
+      <Member MemberType="Property" Name="IsValueCreated"/>
+      <Member Name="get_IsValueCreated"/>
+      <Member MemberType="Property" Name="Value"/>
+      <Member Name="get_Value"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.System_LazyDebugView&lt;T&gt;">
+      <Member Status="ImplRoot" Name="#ctor(System.Lazy&lt;T&gt;)"/>
+      <Member Status="ImplRoot" MemberType="Property" Name="IsValueCreated"/>
+      <Member Status="ImplRoot" Name="get_IsValueCreated"/>
+      <Member Status="ImplRoot" MemberType="Property" Name="Value"/>
+      <Member Status="ImplRoot" Name="get_Value"/>
+      <Member Status="ImplRoot" MemberType="Property" Name="Mode"/>
+      <Member Status="ImplRoot" Name="get_Mode"/>
+      <Member Status="ImplRoot" MemberType="Property" Name="IsValueFaulted"/>
+      <Member Status="ImplRoot" Name="get_IsValueFaulted"/>
+    </Type>
+    <Type Name="System.Math">
+      <Member MemberType="Field" Name="E" />
+      <Member MemberType="Field" Name="PI" />
+      <Member Name="Abs(System.Decimal)" />
+      <Member Name="Abs(System.Double)" />
+      <Member Name="Abs(System.Int16)" />
+      <Member Name="Abs(System.Int32)" />
+      <Member Name="Abs(System.Int64)" />
+      <Member Name="Abs(System.SByte)" />
+      <Member Name="Abs(System.Single)" />
+      <Member Name="Acos(System.Double)" />
+      <Member Name="Asin(System.Double)" />
+      <Member Name="Atan(System.Double)" />
+      <Member Name="Atan2(System.Double,System.Double)" />
+      <Member Name="Ceiling(System.Decimal)"  />
+      <Member Name="Ceiling(System.Double)"/>
+      <Member Name="Cos(System.Double)" />
+      <Member Name="Cosh(System.Double)" />
+      <Member Name="Exp(System.Double)" />
+      <Member Name="Floor(System.Decimal)"  />
+      <Member Name="Floor(System.Double)" />
+      <Member Name="IEEERemainder(System.Double,System.Double)" />
+      <Member Name="Log(System.Double)" />
+      <Member Name="Log(System.Double,System.Double)" />
+      <Member Name="Log10(System.Double)" />
+      <Member Name="Max(System.Byte,System.Byte)" />
+      <Member Name="Max(System.Decimal,System.Decimal)" />
+      <Member Name="Max(System.Double,System.Double)" />
+      <Member Name="Max(System.Int16,System.Int16)" />
+      <Member Name="Max(System.Int32,System.Int32)" />
+      <Member Name="Max(System.Int64,System.Int64)" />
+      <Member Name="Max(System.SByte,System.SByte)" />
+      <Member Name="Max(System.Single,System.Single)" />
+      <Member Name="Max(System.UInt16,System.UInt16)" />
+      <Member Name="Max(System.UInt32,System.UInt32)" />
+      <Member Name="Max(System.UInt64,System.UInt64)" />
+      <Member Name="Min(System.Byte,System.Byte)" />
+      <Member Name="Min(System.Decimal,System.Decimal)" />
+      <Member Name="Min(System.Double,System.Double)" />
+      <Member Name="Min(System.Int16,System.Int16)" />
+      <Member Name="Min(System.Int32,System.Int32)" />
+      <Member Name="Min(System.Int64,System.Int64)" />
+      <Member Name="Min(System.SByte,System.SByte)" />
+      <Member Name="Min(System.Single,System.Single)" />
+      <Member Name="Min(System.UInt16,System.UInt16)" />
+      <Member Name="Min(System.UInt32,System.UInt32)" />
+      <Member Name="Min(System.UInt64,System.UInt64)" />
+      <Member Name="Pow(System.Double,System.Double)" />
+      <Member Name="Round(System.Decimal)" />
+      <Member Name="Round(System.Decimal,System.Int32)" />
+      <Member Name="Round(System.Decimal,System.Int32,System.MidpointRounding)"  />
+      <Member Name="Round(System.Decimal,System.MidpointRounding)"  />
+      <Member Name="Round(System.Double)" />
+      <Member Name="Round(System.Double,System.Int32)" />
+      <Member Name="Round(System.Double,System.Int32,System.MidpointRounding)"  />
+      <Member Name="Round(System.Double,System.MidpointRounding)"  />
+      <Member Name="Sign(System.Decimal)" />
+      <Member Name="Sign(System.Double)" />
+      <Member Name="Sign(System.Int16)" />
+      <Member Name="Sign(System.Int32)" />
+      <Member Name="Sign(System.Int64)" />
+      <Member Name="Sign(System.SByte)" />
+      <Member Name="Sign(System.Single)" />
+      <Member Name="Sin(System.Double)" />
+      <Member Name="Sinh(System.Double)" />
+      <Member Name="Sqrt(System.Double)" />
+      <Member Name="Tan(System.Double)" />
+      <Member Name="Tanh(System.Double)" />
+      <Member Name="Truncate(System.Decimal)"  />
+      <Member Name="Truncate(System.Double)"  />
+    </Type>
+    <Type Name="System.MemberAccessException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.MethodAccessException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.MidpointRounding">
+      <Member MemberType="Field" Name="AwayFromZero" />
+      <Member MemberType="Field" Name="ToEven" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.MissingFieldException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.MissingMemberException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.MissingMethodException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.MTAThreadAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.MulticastDelegate">
+      <Member Name="#ctor(System.Object,System.String)" />
+      <Member Name="CombineImpl(System.Delegate)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetInvocationList" />
+      <Member Name="op_Equality(System.MulticastDelegate,System.MulticastDelegate)" />
+      <Member Name="op_Inequality(System.MulticastDelegate,System.MulticastDelegate)" />
+      <Member Name="RemoveImpl(System.Delegate)" />
+      <Member Status="ImplRoot" Name="CtorClosed(System.Object,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorClosedStatic(System.Object,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorOpened(System.Object,System.IntPtr,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorRTClosed(System.Object,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorSecureClosed(System.Object,System.IntPtr,System.IntPtr,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorSecureClosedStatic(System.Object,System.IntPtr,System.IntPtr,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorSecureOpened(System.Object,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorSecureRTClosed(System.Object,System.IntPtr,System.IntPtr,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorSecureVirtualDispatch(System.Object,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorVirtualDispatch(System.Object,System.IntPtr,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorCollectibleClosedStatic(System.Object,System.IntPtr,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorCollectibleOpened(System.Object,System.IntPtr,System.IntPtr,System.IntPtr)" />
+      <Member Status="ImplRoot" Name="CtorCollectibleVirtualDispatch(System.Object,System.IntPtr,System.IntPtr,System.IntPtr)" />
+    </Type>
+    <Type Name="System.MulticastNotSupportedException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.NotFiniteNumberException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.NotImplementedException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.NotSupportedException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Nullable">
+      <Member Name="Compare&lt;T&gt;(System.Nullable&lt;T&gt;,System.Nullable&lt;T&gt;)" />
+      <Member Name="Equals&lt;T&gt;(System.Nullable&lt;T&gt;,System.Nullable&lt;T&gt;)" />
+      <Member Name="GetUnderlyingType(System.Type)" />
+    </Type>
+    <Type Name="System.Nullable&lt;T&gt;">
+      <Member Name="#ctor(T)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_HasValue" />
+      <Member Name="get_Value" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetValueOrDefault" />
+      <Member Name="GetValueOrDefault(T)" />
+      <Member Name="op_Explicit(System.Nullable&lt;T&gt;)" ReturnType="T" />
+      <Member Name="op_Implicit(T)" ReturnType="System.Nullable&lt;T&gt;" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="HasValue" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.NullReferenceException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Object">
+      <Member Name="#ctor" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Object,System.Object)" />
+      <Member Name="Finalize" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetType" />
+      <Member Name="MemberwiseClone" />
+      <Member Name="ReferenceEquals(System.Object,System.Object)" />
+      <Member Name="ToString" />
+      <Member Status="ImplRoot" Name="FieldSetter(System.String,System.String,System.Object)" /> <!-- EE -->
+      <Member Status="ImplRoot" Name="FieldGetter(System.String,System.String,System.Object@)" /> <!-- EE -->
+    </Type>
+    <Type Name="System.ObjectDisposedException">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="get_ObjectName" />
+      <Member MemberType="Property" Name="ObjectName" />
+    </Type>
+    <Type Name="System.ObsoleteAttribute">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Boolean)" />
+      <Member Name="get_IsError" />
+      <Member Name="get_Message" />
+      <Member MemberType="Property" Name="IsError" />
+      <Member MemberType="Property" Name="Message" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.OleAutBinder" Condition="FEATURE_COMINTEROP" />
+    <Type Name="System.OperatingSystem">
+      <Member Name="#ctor(System.PlatformID,System.Version)" />
+      <Member Name="Clone" />
+      <Member Name="get_Platform" />
+      <Member Name="get_Version" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Platform" />
+      <Member MemberType="Property" Name="Version" />
+    </Type>
+    <Type Name="System.OutOfMemoryException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.OverflowException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.ParamArrayAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.ParseNumbers">
+      <Member Status="ImplRoot" Name="StringToInt(System.String,System.Int32,System.Int32,System.Int32@)"  />
+      <Member Status="ImplRoot" Name="StringToInt(System.String,System.Int32,System.Int32,System.Int32*)"  />
+      <Member Status="ImplRoot" Name="StringToLong(System.String,System.Int32,System.Int32,System.Int32@)" />
+      <Member Status="ImplRoot" Name="StringToLong(System.String,System.Int32,System.Int32,System.Int32*)" />
+    </Type>
+    <Type Name="System.PlatformNotSupportedException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Predicate&lt;T&gt;">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(T,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(T)" />
+    </Type>
+    <Type Name="System.Progress&lt;T&gt;">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Action&lt;T&gt;)" />
+      <Member MemberType="Event" Name="ProgressChanged" />
+      <Member Name="OnReport(T)" />
+    </Type>
+    <Type Name="System.Random">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="Next" />
+      <Member Name="Next(System.Int32)" />
+      <Member Name="Next(System.Int32,System.Int32)" />
+      <Member Name="NextBytes(System.Byte[])" />
+      <Member Name="NextDouble" />
+      <Member Name="Sample" />
+    </Type>
+    <Type Name="System.RankException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Reflection.AmbiguousMatchException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyContentType">
+        <Member MemberType="Field" Name="Default"/>
+        <Member MemberType="Field" Name="WindowsRuntime"/>
+        <Member MemberType="Field" Name="value__"/>
+    </Type>
+
+    <Type Name="System.Reflection.Assembly">
+      <Member Name="#ctor" />      
+      <Member Name="CreateInstance(System.String)" />
+      <Member Name="CreateInstance(System.String,System.Boolean)" />
+      <Member Name="CreateQualifiedName(System.String,System.String)" />
+      <Member Name="GetReferencedAssemblies" />          
+      <Member Name="get_EntryPoint" />
+      <Member Name="get_FullName" />
+      <Member Name="get_ImageRuntimeVersion" />
+      <Member Name="get_IsDynamic" />
+      <Member Name="get_CodeBase" />
+      <Member Name="get_Location" />
+      <Member Name="get_ManifestModule" />
+      <Member Name="get_CustomAttributes" />
+      <Member Name="get_Modules" />
+      <Member Name="GetCallingAssembly" />
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="GetExecutingAssembly" />
+      <Member Name="GetEntryAssembly" />
+      <Member Name="GetExportedTypes" />
+      <Member Name="GetManifestResourceNames" />
+      <Member Name="GetManifestResourceStream(System.String)" />
+      <Member Name="GetManifestResourceInfo(System.String)" />
+      <Member Name="GetManifestResourceStream(System.Type,System.String)" />
+      <Member Name="GetModules" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetName" />
+      <Member Name="GetType(System.String)" />
+      <Member Name="GetType(System.String,System.Boolean)" />
+      <Member Name="GetType(System.String,System.Boolean,System.Boolean)" />
+      <Member Name="GetTypes" />
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member Name="IsDynamic" MemberType="Property" />
+      <Member Name="Load(System.Reflection.AssemblyName)" />
+      <Member Name="Load(System.String)" />
+      <Member Name="Load(System.Byte[])" />
+      <Member Name="Load(System.Byte[],System.Byte[])" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="DefinedTypes" />
+      <Member MemberType="Property" Name="CustomAttributes" />
+      <Member MemberType="Property" Name="Modules" />
+      <Member MemberType="Property" Name="ExportedTypes" />
+      <Member MemberType="Property" Name="EntryPoint" />
+      <Member MemberType="Property" Name="FullName" />
+      <Member MemberType="Property" Name="CodeBase" />
+      <Member MemberType="Property" Name="ImageRuntimeVersion" />
+      <Member MemberType="Property" Name="Location" />
+      <Member MemberType="Property" Name="ManifestModule" />
+      <Member Status="ImplRoot" MemberType="Event" Name="ModuleResolve" />
+    </Type>
+    <Type Name="System.Reflection.IntrospectionExtensions">
+      <Member Name="GetTypeInfo(System.Type)" />      
+    </Type>
+    <Type Name="System.Reflection.IReflectableType">
+      <Member Name="GetTypeInfo" />      
+    </Type>
+    <Type Name="System.Reflection.ProcessorArchitecture">
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="MSIL" />
+      <Member MemberType="Field" Name="X86" />
+      <Member MemberType="Field" Name="IA64" />
+      <Member MemberType="Field" Name="Amd64" />
+      <Member MemberType="Field" Name="Arm" />
+    </Type>
+    <Type Name="System.Reflection.ReflectionContext">
+      <Member Name="#ctor" />      
+      <Member Name="MapAssembly(System.Reflection.Assembly)" />      
+      <Member Name="MapType(System.Reflection.TypeInfo)" />      
+      <Member Name="GetTypeForObject(System.Object)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Reflection.ResourceLocation">
+      <Member MemberType="Field" Name="ContainedInAnotherAssembly" />
+      <Member MemberType="Field" Name="ContainedInManifestFile" />
+      <Member MemberType="Field" Name="Embedded" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Reflection.RuntimeAssembly">
+      <Member Status="ImplRoot" MemberType="Event" Name="_ModuleResolve" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_assembly" />
+      <Member Status="ImplRoot" Name="OnModuleResolveEvent(System.String)" /> <!-- EE -->
+      <Member Status="ImplRoot" MemberType="Property" Name="DefinedTypes" />
+      <!-- On Windows Phone Assembly.LoadFrom throws a NotSupportedException.  Prevent this internal helper from being stripped by the rewriter so that tests may reflect and call it since they need LoadFrom functionality -->
+      <Member Status="ImplRoot" Name="InternalLoadFrom(System.String,System.Security.Policy.Evidence,System.Byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm,System.Boolean,System.Boolean,System.Threading.StackCrawlMark@)" Condition="FEATURE_WINDOWSPHONE" />
+    </Type>
+    <Type Name="System.Reflection.TypeInfo">
+      <Member Name="#ctor" />      
+      <Member Name="AsType" />      
+      <Member MemberType="Property" Name="GenericTypeParameters" />      
+      <Member Name="IsAssignableFrom(System.Reflection.TypeInfo)" />
+      <Member Name="GetDeclaredEvent(System.String)" />
+      <Member Name="GetDeclaredField(System.String)" />
+      <Member Name="GetDeclaredMethod(System.String)" />
+      <Member Name="GetDeclaredMethods(System.String)" />
+      <Member Name="GetDeclaredNestedType(System.String)" />
+      <Member Name="GetDeclaredProperty(System.String)" />
+      <Member MemberType="Property" Name="DeclaredConstructors" />      
+      <Member MemberType="Property" Name="DeclaredEvents" />      
+      <Member MemberType="Property" Name="DeclaredFields" />      
+      <Member MemberType="Property" Name="DeclaredMembers" />      
+      <Member MemberType="Property" Name="DeclaredMethods" />      
+      <Member MemberType="Property" Name="DeclaredNestedTypes" />      
+      <Member MemberType="Property" Name="DeclaredProperties" />      
+      <Member MemberType="Property" Name="ImplementedInterfaces" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyAlgorithmIdAttribute">
+      <Member Name="#ctor(System.Configuration.Assemblies.AssemblyHashAlgorithm)" />
+      <Member Name="#ctor(System.UInt32)" />
+      <Member Name="get_AlgorithmId" />
+      <Member MemberType="Property" Name="AlgorithmId" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyCompanyAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Company" />
+      <Member MemberType="Property" Name="Company" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyConfigurationAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Configuration" />
+      <Member MemberType="Property" Name="Configuration" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyCopyrightAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Copyright" />
+      <Member MemberType="Property" Name="Copyright" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyCultureAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Culture" />
+      <Member MemberType="Property" Name="Culture" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyDefaultAliasAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_DefaultAlias" />
+      <Member MemberType="Property" Name="DefaultAlias" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyDelaySignAttribute">
+      <Member Name="#ctor(System.Boolean)" />
+      <Member Name="get_DelaySign" />
+      <Member MemberType="Property" Name="DelaySign" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyDescriptionAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Description" />
+      <Member MemberType="Property" Name="Description" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyMetadataAttribute">
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member Name="get_Key" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Key" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyFlagsAttribute">
+      <Member Name="#ctor(System.Reflection.AssemblyNameFlags)" />
+      <Member Name="get_AssemblyFlags" />
+      <Member MemberType="Property" Name="AssemblyFlags" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyInformationalVersionAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_InformationalVersion" />
+      <Member MemberType="Property" Name="InformationalVersion" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyKeyFileAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_KeyFile" />
+      <Member MemberType="Property" Name="KeyFile" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyKeyNameAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_KeyName" />
+      <Member MemberType="Property" Name="KeyName" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyName">
+      <Member Name="#ctor" />
+      <Member Name="get_CultureInfo" />
+      <Member Name="get_CultureName" />
+      <Member Name="get_ContentType" />
+      <Member Name="get_Flags" />
+      <Member Name="get_FullName" />
+      <Member Name="get_HashAlgorithm" />
+      <Member Name="get_Name" />
+      <Member Name="get_ProcessorArchitecture" />
+      <Member Name="get_Version" />
+      <Member Name="GetPublicKey" />
+      <Member Name="GetPublicKeyToken" />      
+      <Member Name="set_CultureInfo(System.Globalization.CultureInfo)" />
+      <Member Name="set_Flags(System.Reflection.AssemblyNameFlags)" />
+      <Member Name="set_HashAlgorithm(System.Configuration.Assemblies.AssemblyHashAlgorithm)" />
+      <Member Name="set_Name(System.String)" />
+      <Member Name="set_ProcessorArchitecture(System.Reflection.ProcessorArchitecture)" />
+      <Member Name="set_Version(System.Version)" />
+      <Member Name="SetPublicKey(System.Byte[])" />
+      <Member Name="SetPublicKeyToken(System.Byte[])" />
+      <Member Name="ToString" />
+      <Member Name="#ctor(System.String)" />
+      <Member MemberType="Property" Name="CultureInfo" />
+      <Member MemberType="Property" Name="CultureName" />
+      <Member MemberType="Property" Name="ContentType" />
+      <Member MemberType="Property" Name="Flags" />
+      <Member MemberType="Property" Name="FullName" />
+      <Member MemberType="Property" Name="HashAlgorithm" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="ProcessorArchitecture" />
+      <Member MemberType="Property" Name="Version" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyNameFlags">
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="PublicKey" />
+      <Member MemberType="Field" Name="Retargetable" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyProductAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Product" />
+      <Member MemberType="Property" Name="Product" />
+    </Type>
+    <Type Name="System.Reflection.AssemblySignatureKeyAttribute">
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member Name="get_Countersignature" />
+      <Member Name="get_PublicKey" />
+      <Member MemberType="Property" Name="Countersignature" />
+      <Member MemberType="Property" Name="PublicKey" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyTitleAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Title" />
+      <Member MemberType="Property" Name="Title" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyTrademarkAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Trademark" />
+      <Member MemberType="Property" Name="Trademark" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyVersionAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Version" />
+      <Member MemberType="Property" Name="Version" />
+    </Type>
+    <Type Name="System.Reflection.Binder">
+      <Member Name="#ctor" />
+      <Member Name="BindToField(System.Reflection.BindingFlags,System.Reflection.FieldInfo[],System.Object,System.Globalization.CultureInfo)" />
+      <Member Name="BindToMethod(System.Reflection.BindingFlags,System.Reflection.MethodBase[],System.Object[]@,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],System.Object@)" />
+      <Member Name="ChangeType(System.Object,System.Type,System.Globalization.CultureInfo)" />
+      <Member Name="ReorderArgumentArray(System.Object[]@,System.Object)" />
+      <Member Name="SelectMethod(System.Reflection.BindingFlags,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="SelectProperty(System.Reflection.BindingFlags,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[])" />
+    </Type>
+    <Type Name="System.Reflection.BindingFlags">
+      <Member MemberType="Field" Name="CreateInstance" />
+      <Member MemberType="Field" Name="DeclaredOnly" />
+      <Member MemberType="Field" Name="Default" />
+      <Member MemberType="Field" Name="ExactBinding" />
+      <Member MemberType="Field" Name="FlattenHierarchy" />
+      <Member MemberType="Field" Name="GetField" />
+      <Member MemberType="Field" Name="GetProperty" />
+      <Member MemberType="Field" Name="IgnoreCase" />
+      <Member MemberType="Field" Name="IgnoreReturn" />
+      <Member MemberType="Field" Name="Instance" />
+      <Member MemberType="Field" Name="InvokeMethod" />
+      <Member MemberType="Field" Name="NonPublic" />
+      <Member MemberType="Field" Name="OptionalParamBinding" />
+      <Member MemberType="Field" Name="Public" />
+      <Member MemberType="Field" Name="PutDispProperty" />
+      <Member MemberType="Field" Name="PutRefDispProperty" />
+      <Member MemberType="Field" Name="SetField" />
+      <Member MemberType="Field" Name="SetProperty" />
+      <Member MemberType="Field" Name="Static" />
+      <Member MemberType="Field" Name="SuppressChangeType" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.CallingConventions">
+      <Member MemberType="Field" Name="Any" />
+      <Member MemberType="Field" Name="ExplicitThis" />
+      <Member MemberType="Field" Name="HasThis" />
+      <Member MemberType="Field" Name="Standard" />
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="VarArgs" />
+    </Type>
+    <Type Name="System.Reflection.ConstructorInfo">
+      <Member Name="#ctor" />
+      <Member MemberType="Field" Name="ConstructorName" />
+      <Member MemberType="Field" Name="TypeConstructorName" />
+      <Member Name="get_MemberType" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="Invoke(System.Object[])" />
+      <Member Name="Invoke(System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)" />
+      <Member MemberType="Property" Name="MemberType" />
+    </Type>
+    <Type Name="System.Reflection.CustomAttributeData">
+        <Member Name="get_AttributeType" />
+        <Member Name="get_ConstructorArguments" />
+        <Member Name="get_NamedArguments" />
+        <Member Name="get_Constructor" />
+        <Member Name="GetCustomAttributes(System.Reflection.Assembly)" />
+        <Member Name="GetCustomAttributes(System.Reflection.MemberInfo)" />
+        <Member Name="GetCustomAttributes(System.Reflection.Module)" />
+        <Member Name="GetCustomAttributes(System.Reflection.ParameterInfo)" />         
+        <Member MemberType="Property" Name="AttributeType" />
+               <Member MemberType="Property" Name="Constructor" />
+        <Member MemberType="Property" Name="ConstructorArguments" />
+        <Member MemberType="Property" Name="NamedArguments" />        
+    </Type>
+
+   <Type Name="System.Reflection.CustomAttributeExtensions">
+      <Member Name="GetCustomAttribute(System.Reflection.Assembly,System.Type)" />
+      <Member Name="GetCustomAttribute(System.Reflection.MemberInfo,System.Type)" />
+      <Member Name="GetCustomAttribute(System.Reflection.MemberInfo,System.Type,System.Boolean)" />
+      <Member Name="GetCustomAttribute(System.Reflection.Module,System.Type)" />
+      <Member Name="GetCustomAttribute(System.Reflection.ParameterInfo,System.Type)" />
+      <Member Name="GetCustomAttribute(System.Reflection.ParameterInfo,System.Type,System.Boolean)" />
+      <Member Name="GetCustomAttribute&lt;T&gt;(System.Reflection.Assembly)" />
+      <Member Name="GetCustomAttribute&lt;T&gt;(System.Reflection.MemberInfo)" />
+      <Member Name="GetCustomAttribute&lt;T&gt;(System.Reflection.MemberInfo,System.Boolean)" />
+      <Member Name="GetCustomAttribute&lt;T&gt;(System.Reflection.Module)" />
+      <Member Name="GetCustomAttribute&lt;T&gt;(System.Reflection.ParameterInfo)" />
+      <Member Name="GetCustomAttribute&lt;T&gt;(System.Reflection.ParameterInfo,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Assembly)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Assembly,System.Type)" />
+      <Member Name="GetCustomAttributes(System.Reflection.MemberInfo)" />
+      <Member Name="GetCustomAttributes(System.Reflection.MemberInfo,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.MemberInfo,System.Type)" />
+      <Member Name="GetCustomAttributes(System.Reflection.MemberInfo,System.Type,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Module)" />
+      <Member Name="GetCustomAttributes(System.Reflection.Module,System.Type)" />
+      <Member Name="GetCustomAttributes(System.Reflection.ParameterInfo)" />
+      <Member Name="GetCustomAttributes(System.Reflection.ParameterInfo,System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Reflection.ParameterInfo,System.Type)" />
+      <Member Name="GetCustomAttributes(System.Reflection.ParameterInfo,System.Type,System.Boolean)" />
+      <Member Name="GetCustomAttributes&lt;T&gt;(System.Reflection.Assembly)" />
+      <Member Name="GetCustomAttributes&lt;T&gt;(System.Reflection.MemberInfo)" />
+      <Member Name="GetCustomAttributes&lt;T&gt;(System.Reflection.MemberInfo,System.Boolean)" />
+      <Member Name="GetCustomAttributes&lt;T&gt;(System.Reflection.Module)" />
+      <Member Name="GetCustomAttributes&lt;T&gt;(System.Reflection.ParameterInfo)" />
+      <Member Name="GetCustomAttributes&lt;T&gt;(System.Reflection.ParameterInfo,System.Boolean)" />
+      <Member Name="IsDefined(System.Reflection.Assembly,System.Type)" />
+      <Member Name="IsDefined(System.Reflection.MemberInfo,System.Type)" />
+      <Member Name="IsDefined(System.Reflection.MemberInfo,System.Type,System.Boolean)" />
+      <Member Name="IsDefined(System.Reflection.Module,System.Type)" />
+      <Member Name="IsDefined(System.Reflection.ParameterInfo,System.Type)" />
+      <Member Name="IsDefined(System.Reflection.ParameterInfo,System.Type,System.Boolean)" />
+    </Type>
+
+    <Type Name="System.Reflection.RuntimeReflectionExtensions">
+      <Member Name="GetMethodInfo(System.Delegate)" />
+      <Member Name="GetRuntimeBaseDefinition(System.Reflection.MethodInfo)" />
+      <Member Name="GetRuntimeEvent(System.Type,System.String)" />
+      <Member Name="GetRuntimeEvents(System.Type)" />
+      <Member Name="GetRuntimeField(System.Type,System.String)" />
+      <Member Name="GetRuntimeFields(System.Type)" />
+      <Member Name="GetRuntimeInterfaceMap(System.Reflection.TypeInfo,System.Type)" />
+      <Member Name="GetRuntimeMethod(System.Type,System.String,System.Type[])" />
+      <Member Name="GetRuntimeMethods(System.Type)" />
+      <Member Name="GetRuntimeProperties(System.Type)" />
+      <Member Name="GetRuntimeProperty(System.Type,System.String)" />
+    </Type> 
+
+    <Type Name="System.Reflection.CustomAttributeNamedArgument">
+        <Member Name="get_IsField" />
+        <Member Name="get_MemberName" />
+        <Member Name="get_TypedValue" />
+        <Member Name="op_Equality(System.Reflection.CustomAttributeNamedArgument,System.Reflection.CustomAttributeNamedArgument)" />   
+        <Member Name="op_Inequality(System.Reflection.CustomAttributeNamedArgument,System.Reflection.CustomAttributeNamedArgument)" />           
+        <Member MemberType="Property" Name="IsField" />
+        <Member MemberType="Property" Name="MemberName" />
+        <Member MemberType="Property" Name="TypedValue" />        
+    </Type>
+    <Type Name="System.Reflection.CustomAttributeTypedArgument">
+        <Member Name="get_ArgumentType" />
+        <Member Name="get_Value" />
+        <Member Name="op_Equality(System.Reflection.CustomAttributeTypedArgument,System.Reflection.CustomAttributeTypedArgument)" />
+        <Member Name="op_Inequality(System.Reflection.CustomAttributeTypedArgument,System.Reflection.CustomAttributeTypedArgument)" />
+        <Member MemberType="Property" Name="ArgumentType" />
+        <Member MemberType="Property" Name="Value" />
+    </Type>
+
+    <Type Name="System.Reflection.CustomAttributeFormatException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Reflection.DefaultMemberAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_MemberName" />
+      <Member MemberType="Property" Name="MemberName" />
+    </Type>
+    <Type Name="System.Reflection.Emit.AssemblyBuilder">
+      <Member Name="DefineDynamicAssembly(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess)" />
+      <Member Name="DefineDynamicAssembly(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess,System.Collections.Generic.IEnumerable&lt;System.Reflection.Emit.CustomAttributeBuilder&gt;)" />
+      <Member Name="SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[])" />
+      <Member Name="DefineDynamicModule(System.String)" />
+      <Member Name="DefineDynamicModule(System.String,System.Boolean)" />
+      <Member Name="get_EntryPoint" />
+      <Member Name="get_ImageRuntimeVersion" />
+      <Member Name="GetDynamicModule(System.String)" />
+      <Member Name="GetExportedTypes" />
+      <Member Name="GetManifestResourceNames" />
+      <Member Name="GetManifestResourceStream(System.String)" />
+      <Member Name="GetManifestResourceStream(System.Type,System.String)" />
+      <Member Name="SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder)" />
+      <Member MemberType="Property" Name="EntryPoint" />
+      <Member MemberType="Property" Name="ImageRuntimeVersion" />
+    </Type>
+    <Type Name="System.Reflection.Emit.AssemblyBuilderAccess">
+      <Member MemberType="Field" Name="Run" />
+      <Member MemberType="Field" Name="RunAndCollect" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.Emit.ConstructorBuilder">
+      <Member Name="DefineParameter(System.Int32,System.Reflection.ParameterAttributes,System.String)" />
+      <Member Name="get_Attributes" />
+      <Member Name="get_CallingConvention" />
+      <Member Name="get_DeclaringType" />
+      <Member Name="get_InitLocals" />
+      <Member Name="get_MethodHandle" />
+      <Member Name="get_Module" />
+      <Member Name="get_Name" />
+      <Member Name="get_ReflectedType" />
+      <Member Name="get_Signature" />
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="GetILGenerator" />
+      <Member Name="GetILGenerator(System.Int32)" />
+      <Member Name="GetMethodImplementationFlags" />
+      <Member Name="GetModule" />
+      <Member Name="GetParameters" />
+      <Member Name="GetToken" />
+      <Member Name="Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)" />
+      <Member Name="Invoke(System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)" />
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member Name="set_InitLocals(System.Boolean)" />
+      <Member Name="SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[])" />
+      <Member Name="SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder)" />
+      <Member Name="SetImplementationFlags(System.Reflection.MethodImplAttributes)" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="CallingConvention" />
+      <Member MemberType="Property" Name="DeclaringType" />
+      <Member MemberType="Property" Name="InitLocals" />
+      <Member MemberType="Property" Name="MethodHandle" />
+      <Member MemberType="Property" Name="Module" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="ReflectedType" />
+      <Member MemberType="Property" Name="Signature" />
+    </Type>
+    <Type Name="System.Reflection.Emit.CustomAttributeBuilder">
+      <Member Name="#ctor(System.Reflection.ConstructorInfo,System.Object[])" />
+      <Member Name="#ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.FieldInfo[],System.Object[])" />
+      <Member Name="#ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[])" />
+      <Member Name="#ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[])" />
+    </Type>
+    <Type Name="System.RuntimeArgumentHandle"> <!-- MC++ compiler asserts for no particularly good reason if this type is not public -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.RuntimeFieldInfoStub">
+      <Member Status="ImplRoot" MemberType="Field" Name="m_keepalive" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_b" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_c" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_d" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_e" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_fieldHandle" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.RuntimeMethodInfoStub">
+      <Member Status="ImplRoot" MemberType="Field" Name="m_a" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_b" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_c" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_d" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_e" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_f" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_g" />
+    </Type>
+    <Type Name="System.RuntimeTypeHandle">
+      <Member Name="Equals(System.RuntimeTypeHandle)" />
+      <Member Name="op_Equality(System.Object,System.RuntimeTypeHandle)" />
+      <Member Name="op_Equality(System.RuntimeTypeHandle,System.Object)" />
+      <Member Name="op_Inequality(System.Object,System.RuntimeTypeHandle)" />
+      <Member Name="op_Inequality(System.RuntimeTypeHandle,System.Object)" />
+      <Member Status="ImplRoot" Name="GetTypeHelper(System.Type,System.Type[],System.IntPtr,System.Int32)" /> <!-- EE -->
+      <Member Status="ImplRoot" Name="GetValueInternal(System.RuntimeTypeHandle)" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Value" />
+      <!-- EE -->
+    </Type>
+    <Type Name="System.Reflection.Emit.DynamicMethod">
+      <Member Name="#ctor(System.String,System.Type,System.Type[])" />
+      <Member Name="#ctor(System.String,System.Type,System.Type[],System.Boolean)" />
+      <Member Name="#ctor(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Reflection.Module,System.Boolean)" />
+      <Member Name="#ctor(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type,System.Boolean)" />
+      <Member Name="#ctor(System.String,System.Type,System.Type[],System.Reflection.Module)" />
+      <Member Name="#ctor(System.String,System.Type,System.Type[],System.Reflection.Module,System.Boolean)" />
+      <Member Name="#ctor(System.String,System.Type,System.Type[],System.Type)" />
+      <Member Name="#ctor(System.String,System.Type,System.Type[],System.Type,System.Boolean)" />
+      <Member Name="CreateDelegate(System.Type)" />
+      <Member Name="CreateDelegate(System.Type,System.Object)" />
+      <Member Name="DefineParameter(System.Int32,System.Reflection.ParameterAttributes,System.String)" />
+      <Member Name="get_Attributes" />
+      <Member Name="get_CallingConvention" />
+      <Member Name="get_DeclaringType" />
+      <Member Name="get_InitLocals" />
+      <Member Name="get_MethodHandle" />
+      <Member Name="get_Module" />
+      <Member Name="get_Name" />
+      <Member Name="get_ReflectedType" />
+      <Member Name="get_ReturnParameter" />
+      <Member Name="get_ReturnType" />
+      <Member Name="get_ReturnTypeCustomAttributes" />
+      <Member Name="GetBaseDefinition" />
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="GetILGenerator" />
+      <Member Name="GetILGenerator(System.Int32)" />
+      <Member Name="GetMethodImplementationFlags" />
+      <Member Name="GetParameters" />
+      <Member Name="Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)" />
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member Name="set_InitLocals(System.Boolean)" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="CallingConvention" />
+      <Member MemberType="Property" Name="DeclaringType" />
+      <Member MemberType="Property" Name="InitLocals" />
+      <Member MemberType="Property" Name="MethodHandle" />
+      <Member MemberType="Property" Name="Module" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="ReflectedType" />
+      <Member MemberType="Property" Name="ReturnParameter" />
+      <Member MemberType="Property" Name="ReturnType" />
+      <Member MemberType="Property" Name="ReturnTypeCustomAttributes" />
+    </Type>
+    <Type Name="System.Reflection.Emit.EnumBuilder">
+      <Member Name="CreateType" />
+      <Member Name="CreateTypeInfo" />
+      <Member Name="DefineLiteral(System.String,System.Object)" />
+      <Member Name="get_Assembly" />
+      <Member Name="get_AssemblyQualifiedName" />
+      <Member Name="get_BaseType" />
+      <Member Name="get_DeclaringType" />
+      <Member Name="get_FullName" />
+      <Member Name="get_GUID" />
+      <Member Name="get_Module" />
+      <Member Name="get_Name" />
+      <Member Name="get_Namespace" />
+      <Member Name="get_ReflectedType" />
+      <Member Name="get_TypeHandle" />
+      <Member Name="get_TypeToken" />
+      <Member Name="get_UnderlyingField" />
+      <Member Name="get_UnderlyingSystemType" />
+      <Member Name="GetAttributeFlagsImpl" />
+      <Member Name="GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetConstructors(System.Reflection.BindingFlags)" />
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="GetElementType" />
+      <Member Name="GetEvent(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetEvents" />
+      <Member Name="GetEvents(System.Reflection.BindingFlags)" />
+      <Member Name="GetField(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetFields(System.Reflection.BindingFlags)" />
+      <Member Name="GetInterface(System.String,System.Boolean)" />
+      <Member Name="GetInterfaceMap(System.Type)" />
+      <Member Name="GetInterfaces" />
+      <Member Name="GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags)" />
+      <Member Name="GetMembers(System.Reflection.BindingFlags)" />
+      <Member Name="GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetMethods(System.Reflection.BindingFlags)" />
+      <Member Name="GetNestedType(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetNestedTypes(System.Reflection.BindingFlags)" />
+      <Member Name="GetProperties(System.Reflection.BindingFlags)" />
+      <Member Name="GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="HasElementTypeImpl" />
+      <Member Name="InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])" />
+      <Member Name="IsArrayImpl" />
+      <Member Name="IsByRefImpl" />
+      <Member Name="IsCOMObjectImpl" />
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member Name="IsPointerImpl" />
+      <Member Name="IsPrimitiveImpl" />
+      <Member Name="IsValueTypeImpl" />
+      <Member Name="MakeArrayType" />
+      <Member Name="MakeArrayType(System.Int32)" />
+      <Member Name="MakeByRefType" />
+      <Member Name="MakePointerType" />      
+      <Member Name="SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[])" />
+      <Member Name="SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder)" />
+      <Member MemberType="Property" Name="Assembly" />
+      <Member MemberType="Property" Name="AssemblyQualifiedName" />
+      <Member MemberType="Property" Name="BaseType" />
+      <Member MemberType="Property" Name="DeclaringType" />
+      <Member MemberType="Property" Name="FullName" />
+      <Member MemberType="Property" Name="GUID" />
+      <Member MemberType="Property" Name="Module" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="Namespace" />
+      <Member MemberType="Property" Name="ReflectedType" />
+      <Member MemberType="Property" Name="TypeHandle" />
+      <Member MemberType="Property" Name="TypeToken" />
+      <Member MemberType="Property" Name="UnderlyingField" />
+      <Member MemberType="Property" Name="UnderlyingSystemType" />
+    </Type>
+    <Type Name="System.Reflection.Emit.EventBuilder">
+      <Member Name="AddOtherMethod(System.Reflection.Emit.MethodBuilder)" />
+      <Member Name="GetEventToken" />
+      <Member Name="SetAddOnMethod(System.Reflection.Emit.MethodBuilder)" />   
+      <Member Name="SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[])" />      
+      <Member Name="SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder)" />
+      <Member Name="SetRaiseMethod(System.Reflection.Emit.MethodBuilder)" />
+      <Member Name="SetRemoveOnMethod(System.Reflection.Emit.MethodBuilder)" />
+    </Type>
+    <Type Name="System.Reflection.Emit.EventToken">
+      <Member MemberType="Field" Name="Empty" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Reflection.Emit.EventToken)" />
+      <Member Name="get_Token" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Reflection.Emit.EventToken,System.Reflection.Emit.EventToken)" />
+      <Member Name="op_Inequality(System.Reflection.Emit.EventToken,System.Reflection.Emit.EventToken)" />
+      <Member MemberType="Property" Name="Token" />
+    </Type>
+    <Type Name="System.Reflection.Emit.FieldBuilder">
+      <Member Name="get_Attributes" />
+      <Member Name="get_DeclaringType" />
+      <Member Name="get_FieldHandle" />
+      <Member Name="get_FieldType" />
+      <Member Name="get_Module" />
+      <Member Name="get_Name" />
+      <Member Name="get_ReflectedType" />
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="GetToken" />
+      <Member Name="GetValue(System.Object)" />
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member Name="SetConstant(System.Object)" />
+      <Member Name="SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[])" />
+      <Member Name="SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder)" />
+      <Member Name="SetOffset(System.Int32)" />
+      <Member Name="SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Globalization.CultureInfo)" />
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="DeclaringType" />
+      <Member MemberType="Property" Name="FieldHandle" />
+      <Member MemberType="Property" Name="FieldType" />
+      <Member MemberType="Property" Name="Module" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="ReflectedType" />
+    </Type>
+    <Type Name="System.Reflection.Emit.FieldToken">
+      <Member MemberType="Field" Name="Empty" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Reflection.Emit.FieldToken)" />
+      <Member Name="get_Token" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Reflection.Emit.FieldToken,System.Reflection.Emit.FieldToken)" />
+      <Member Name="op_Inequality(System.Reflection.Emit.FieldToken,System.Reflection.Emit.FieldToken)" />
+      <Member MemberType="Property" Name="Token" />
+    </Type>
+    <Type Name="System.Reflection.Emit.FlowControl">
+      <Member MemberType="Field" Name="Branch" />
+      <Member MemberType="Field" Name="Break" />
+      <Member MemberType="Field" Name="Call" />
+      <Member MemberType="Field" Name="Cond_Branch" />
+      <Member MemberType="Field" Name="Meta" />
+      <Member MemberType="Field" Name="Next" />
+      <Member MemberType="Field" Name="Return" />
+      <Member MemberType="Field" Name="Throw" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.Emit.GenericTypeParameterBuilder">
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Assembly" />
+      <Member Name="get_AssemblyQualifiedName" />
+      <Member Name="get_BaseType" />
+      <Member Name="get_ContainsGenericParameters" />
+      <Member Name="get_DeclaringMethod" />
+      <Member Name="get_DeclaringType" />
+      <Member Name="get_FullName" />
+      <Member Name="get_GenericParameterPosition" />
+      <Member Name="get_GUID" />
+      <Member Name="get_IsGenericParameter" />
+      <Member Name="get_IsGenericType" />
+      <Member Name="get_IsGenericTypeDefinition" />
+      <Member Name="get_Module" />
+      <Member Name="get_Name" />
+      <Member Name="get_Namespace" />
+      <Member Name="get_ReflectedType" />
+      <Member Name="get_TypeHandle" />
+      <Member Name="get_UnderlyingSystemType" />
+      <Member Name="GetAttributeFlagsImpl" />
+      <Member Name="GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetConstructors(System.Reflection.BindingFlags)" />
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="GetElementType" />
+      <Member Name="GetEvent(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetEvents" />
+      <Member Name="GetEvents(System.Reflection.BindingFlags)" />
+      <Member Name="GetField(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetFields(System.Reflection.BindingFlags)" />
+      <Member Name="GetGenericArguments" />
+      <Member Name="GetGenericTypeDefinition" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetInterface(System.String,System.Boolean)" />
+      <Member Name="GetInterfaceMap(System.Type)" />
+      <Member Name="GetInterfaces" />
+      <Member Name="GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags)" />
+      <Member Name="GetMembers(System.Reflection.BindingFlags)" />
+      <Member Name="GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetMethods(System.Reflection.BindingFlags)" />
+      <Member Name="GetNestedType(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetNestedTypes(System.Reflection.BindingFlags)" />
+      <Member Name="GetProperties(System.Reflection.BindingFlags)" />
+      <Member Name="GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="HasElementTypeImpl" />
+      <Member Name="InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])" />
+      <Member Name="IsArrayImpl" />
+      <Member Name="IsAssignableFrom(System.Type)" />
+      <Member Name="IsAssignableFrom(System.Reflection.TypeInfo)" />      
+      <Member Name="IsByRefImpl" />
+      <Member Name="IsCOMObjectImpl" />
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member Name="IsPointerImpl" />
+      <Member Name="IsPrimitiveImpl" />
+      <Member Name="IsSubclassOf(System.Type)" />
+      <Member Name="IsValueTypeImpl" />
+      <Member Name="MakeArrayType" />
+      <Member Name="MakeArrayType(System.Int32)" />
+      <Member Name="MakeByRefType" />
+      <Member Name="MakeGenericType(System.Type[])" />
+      <Member Name="MakePointerType" />
+      <Member Name="SetBaseTypeConstraint(System.Type)" />      
+      <Member Name="SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[])" />
+      <Member Name="SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder)" />
+      <Member Name="SetGenericParameterAttributes(System.Reflection.GenericParameterAttributes)" />
+      <Member Name="SetInterfaceConstraints(System.Type[])" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Assembly" />
+      <Member MemberType="Property" Name="AssemblyQualifiedName" />
+      <Member MemberType="Property" Name="BaseType" />
+      <Member MemberType="Property" Name="ContainsGenericParameters" />
+      <Member MemberType="Property" Name="DeclaringMethod" />
+      <Member MemberType="Property" Name="DeclaringType" />
+      <Member MemberType="Property" Name="FullName" />
+      <Member MemberType="Property" Name="GenericParameterPosition" />
+      <Member MemberType="Property" Name="GUID" />
+      <Member MemberType="Property" Name="IsGenericParameter" />
+      <Member MemberType="Property" Name="IsGenericType" />
+      <Member MemberType="Property" Name="IsGenericTypeDefinition" />
+      <Member MemberType="Property" Name="Module" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="Namespace" />
+      <Member MemberType="Property" Name="ReflectedType" />
+      <Member MemberType="Property" Name="TypeHandle" />
+      <Member MemberType="Property" Name="UnderlyingSystemType" />
+    </Type>
+    <Type Name="System.Reflection.Emit.ILGenerator">
+      <Member Name="BeginCatchBlock(System.Type)" />
+      <Member Name="BeginExceptFilterBlock" />
+      <Member Name="BeginExceptionBlock" />
+      <Member Name="BeginFaultBlock" />
+      <Member Name="BeginFinallyBlock" />
+      <Member Name="BeginScope" />
+      <Member Name="DeclareLocal(System.Type)" />
+      <Member Name="DeclareLocal(System.Type,System.Boolean)" />
+      <Member Name="DefineLabel" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Byte)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Double)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Int16)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Int32)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Int64)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.SignatureHelper)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Reflection.ConstructorInfo)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.Label)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.Label[])" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.LocalBuilder)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Reflection.FieldInfo)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.SByte)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Single)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.String)" />
+      <Member Name="Emit(System.Reflection.Emit.OpCode,System.Type)" />
+      <Member Name="EmitCall(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo,System.Type[])" />
+      <Member Name="EmitCalli(System.Reflection.Emit.OpCode,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[])" />
+      <Member Name="EmitWriteLine(System.Reflection.Emit.LocalBuilder)" />
+      <Member Name="EmitWriteLine(System.Reflection.FieldInfo)" />
+      <Member Name="EmitWriteLine(System.String)" />
+      <Member Name="EndExceptionBlock" />
+      <Member Name="EndScope" />
+      <Member Name="MarkLabel(System.Reflection.Emit.Label)" />
+      <Member Name="MarkSequencePoint(System.Diagnostics.SymbolStore.ISymbolDocumentWriter,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="get_ILOffset" />
+      <Member Name="ThrowException(System.Type)" />
+      <Member Name="UsingNamespace(System.String)" />
+      <Member MemberType="Property" Name="ILOffset" />      
+    </Type>
+    <Type Name="System.Diagnostics.CodeAnalysis.SuppressMessageAttribute">
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member MemberType="Property" Name="Category" />
+      <Member MemberType="Property" Name="CheckId" />
+      <Member MemberType="Property" Name="Scope" />
+      <Member MemberType="Property" Name="Target" />
+      <Member MemberType="Property" Name="MessageId" />
+      <Member MemberType="Property" Name="Justification" />
+    </Type>
+    <Type Name="System.Diagnostics.SymbolStore.ISymbolDocumentWriter">
+      <Member Name="SetSource(System.Byte[])" />
+      <Member Name="SetCheckSum(System.Guid,System.Byte[])" />
+    </Type>
+    <Type Name="System.Reflection.Emit.Label">
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Reflection.Emit.Label)" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Reflection.Emit.Label,System.Reflection.Emit.Label)" />
+      <Member Name="op_Inequality(System.Reflection.Emit.Label,System.Reflection.Emit.Label)" />
+    </Type>
+    <Type Name="System.Reflection.Emit.LocalBuilder">
+      <Member Name="get_IsPinned" />
+      <Member Name="get_LocalIndex" />
+      <Member Name="get_LocalType" />
+      <Member Name="SetLocalSymInfo(System.String)" />
+      <Member Name="SetLocalSymInfo(System.String,System.Int32,System.Int32)" />
+      <Member MemberType="Property" Name="IsPinned" />
+      <Member MemberType="Property" Name="LocalIndex" />
+      <Member MemberType="Property" Name="LocalType" />
+    </Type>
+    <Type Name="System.Reflection.Emit.MethodBuilder">
+      <Member Name="DefineGenericParameters(System.String[])" />
+      <Member Name="DefineParameter(System.Int32,System.Reflection.ParameterAttributes,System.String)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Attributes" />
+      <Member Name="get_CallingConvention" />
+      <Member Name="get_ContainsGenericParameters" />
+      <Member Name="get_DeclaringType" />
+      <Member Name="get_InitLocals" />
+      <Member Name="get_IsGenericMethod" />
+      <Member Name="get_IsGenericMethodDefinition" />
+      <Member Name="get_MethodHandle" />
+      <Member Name="get_Module" />
+      <Member Name="get_Name" />
+      <Member Name="get_ReflectedType" />
+      <Member Name="get_ReturnParameter" />
+      <Member Name="get_ReturnTypeCustomAttributes" />
+      <Member Name="get_Signature" />
+      <Member Name="GetBaseDefinition" />
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="GetGenericArguments" />
+      <Member Name="GetGenericMethodDefinition" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetILGenerator" />
+      <Member Name="GetILGenerator(System.Int32)" />
+      <Member Name="GetMethodImplementationFlags" />
+      <Member Name="GetModule" />
+      <Member Name="GetParameters" />
+      <Member Name="GetToken" />
+      <Member Name="Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)" />
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member Name="MakeGenericMethod(System.Type[])" />
+      <Member Name="set_InitLocals(System.Boolean)" />
+      <Member Name="SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[])" />
+      <Member Name="SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder)" />
+      <Member Name="SetImplementationFlags(System.Reflection.MethodImplAttributes)" />
+      <Member Name="SetParameters(System.Type[])" />
+      <Member Name="SetReturnType(System.Type)" />
+      <Member Name="SetSignature(System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][])" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="CallingConvention" />
+      <Member MemberType="Property" Name="ContainsGenericParameters" />
+      <Member MemberType="Property" Name="DeclaringType" />
+      <Member MemberType="Property" Name="InitLocals" />
+      <Member MemberType="Property" Name="IsGenericMethod" />
+      <Member MemberType="Property" Name="IsGenericMethodDefinition" />
+      <Member MemberType="Property" Name="MethodHandle" />
+      <Member MemberType="Property" Name="Module" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="ReflectedType" />
+      <Member MemberType="Property" Name="ReturnParameter" />
+      <Member MemberType="Property" Name="ReturnTypeCustomAttributes" />
+      <Member MemberType="Property" Name="Signature" />
+    </Type>
+    <Type Name="System.Reflection.Emit.MethodToken">
+      <Member MemberType="Field" Name="Empty" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Reflection.Emit.MethodToken)" />
+      <Member Name="get_Token" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Reflection.Emit.MethodToken,System.Reflection.Emit.MethodToken)" />
+      <Member Name="op_Inequality(System.Reflection.Emit.MethodToken,System.Reflection.Emit.MethodToken)" />
+      <Member MemberType="Property" Name="Token" />
+    </Type>
+    <Type Name="System.Reflection.Emit.ModuleBuilder">
+      <Member Name="CreateGlobalFunctions" />
+      <Member Name="DefineDocument(System.String,System.Guid,System.Guid,System.Guid)" />
+      <Member Name="DefineEnum(System.String,System.Reflection.TypeAttributes,System.Type)" />
+      <Member Name="DefineGlobalMethod(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[])" />
+      <Member Name="DefineGlobalMethod(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][])" />
+      <Member Name="DefineGlobalMethod(System.String,System.Reflection.MethodAttributes,System.Type,System.Type[])" />
+      <Member Name="DefineInitializedData(System.String,System.Byte[],System.Reflection.FieldAttributes)" />      
+      <Member Name="DefineType(System.String)" />
+      <Member Name="DefineType(System.String,System.Reflection.TypeAttributes)" />
+      <Member Name="DefineType(System.String,System.Reflection.TypeAttributes,System.Type)" />
+      <Member Name="DefineType(System.String,System.Reflection.TypeAttributes,System.Type,System.Int32)" />
+      <Member Name="DefineType(System.String,System.Reflection.TypeAttributes,System.Type,System.Reflection.Emit.PackingSize)" />
+      <Member Name="DefineType(System.String,System.Reflection.TypeAttributes,System.Type,System.Reflection.Emit.PackingSize,System.Int32)" />
+      <Member Name="DefineType(System.String,System.Reflection.TypeAttributes,System.Type,System.Type[])" />
+      <Member Name="DefineUninitializedData(System.String,System.Int32,System.Reflection.FieldAttributes)" />
+      <Member Name="get_FullyQualifiedName" />
+      <Member Name="GetArrayMethod(System.Type,System.String,System.Reflection.CallingConventions,System.Type,System.Type[])" />
+      <Member Name="GetArrayMethodToken(System.Type,System.String,System.Reflection.CallingConventions,System.Type,System.Type[])" />
+      <Member Name="GetConstructorToken(System.Reflection.ConstructorInfo)" />
+      <Member Name="GetFieldToken(System.Reflection.FieldInfo)" />
+      <Member Name="GetMethodToken(System.Reflection.MethodInfo)" />
+      <Member Name="GetSignatureToken(System.Byte[],System.Int32)" />
+      <Member Name="GetSignatureToken(System.Reflection.Emit.SignatureHelper)" />
+      <Member Name="GetStringConstant(System.String)" />
+      <Member Name="GetType(System.String)" />
+      <Member Name="GetType(System.String,System.Boolean)" />
+      <Member Name="GetType(System.String,System.Boolean,System.Boolean)" />
+      <Member Name="GetTypes" />
+      <Member Name="GetTypeToken(System.String)" />
+      <Member Name="GetTypeToken(System.Type)" />
+      <Member Name="IsTransient" />
+      <Member Name="SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[])" />
+      <Member Name="SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder)" />
+      <Member MemberType="Property" Name="FullyQualifiedName" />      
+    </Type>
+    <Type Name="System.Reflection.Emit.OpCode">
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Reflection.Emit.OpCode)" />
+      <Member Name="get_FlowControl" />
+      <Member Name="get_Name" />
+      <Member Name="get_OpCodeType" />
+      <Member Name="get_OperandType" />
+      <Member Name="get_Size" />
+      <Member Name="get_StackBehaviourPop" />
+      <Member Name="get_StackBehaviourPush" />
+      <Member Name="get_Value" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Reflection.Emit.OpCode,System.Reflection.Emit.OpCode)" />
+      <Member Name="op_Inequality(System.Reflection.Emit.OpCode,System.Reflection.Emit.OpCode)" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="FlowControl" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="OpCodeType" />
+      <Member MemberType="Property" Name="OperandType" />
+      <Member MemberType="Property" Name="Size" />
+      <Member MemberType="Property" Name="StackBehaviourPop" />
+      <Member MemberType="Property" Name="StackBehaviourPush" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Reflection.Emit.OpCodes">
+      <Member MemberType="Field" Name="Add" />
+      <Member MemberType="Field" Name="Add_Ovf" />
+      <Member MemberType="Field" Name="Add_Ovf_Un" />
+      <Member MemberType="Field" Name="And" />
+      <Member MemberType="Field" Name="Arglist" />
+      <Member MemberType="Field" Name="Beq" />
+      <Member MemberType="Field" Name="Beq_S" />
+      <Member MemberType="Field" Name="Bge" />
+      <Member MemberType="Field" Name="Bge_S" />
+      <Member MemberType="Field" Name="Bge_Un" />
+      <Member MemberType="Field" Name="Bge_Un_S" />
+      <Member MemberType="Field" Name="Bgt" />
+      <Member MemberType="Field" Name="Bgt_S" />
+      <Member MemberType="Field" Name="Bgt_Un" />
+      <Member MemberType="Field" Name="Bgt_Un_S" />
+      <Member MemberType="Field" Name="Ble" />
+      <Member MemberType="Field" Name="Ble_S" />
+      <Member MemberType="Field" Name="Ble_Un" />
+      <Member MemberType="Field" Name="Ble_Un_S" />
+      <Member MemberType="Field" Name="Blt" />
+      <Member MemberType="Field" Name="Blt_S" />
+      <Member MemberType="Field" Name="Blt_Un" />
+      <Member MemberType="Field" Name="Blt_Un_S" />
+      <Member MemberType="Field" Name="Bne_Un" />
+      <Member MemberType="Field" Name="Bne_Un_S" />
+      <Member MemberType="Field" Name="Box" />
+      <Member MemberType="Field" Name="Br" />
+      <Member MemberType="Field" Name="Br_S" />
+      <Member MemberType="Field" Name="Break" />
+      <Member MemberType="Field" Name="Brfalse" />
+      <Member MemberType="Field" Name="Brfalse_S" />
+      <Member MemberType="Field" Name="Brtrue" />
+      <Member MemberType="Field" Name="Brtrue_S" />
+      <Member MemberType="Field" Name="Call" />
+      <Member MemberType="Field" Name="Calli" />
+      <Member MemberType="Field" Name="Callvirt" />
+      <Member MemberType="Field" Name="Castclass" />
+      <Member MemberType="Field" Name="Ceq" />
+      <Member MemberType="Field" Name="Cgt" />
+      <Member MemberType="Field" Name="Cgt_Un" />
+      <Member MemberType="Field" Name="Ckfinite" />
+      <Member MemberType="Field" Name="Clt" />
+      <Member MemberType="Field" Name="Clt_Un" />
+      <Member MemberType="Field" Name="Constrained" />
+      <Member MemberType="Field" Name="Conv_I" />
+      <Member MemberType="Field" Name="Conv_I1" />
+      <Member MemberType="Field" Name="Conv_I2" />
+      <Member MemberType="Field" Name="Conv_I4" />
+      <Member MemberType="Field" Name="Conv_I8" />
+      <Member MemberType="Field" Name="Conv_Ovf_I" />
+      <Member MemberType="Field" Name="Conv_Ovf_I_Un" />
+      <Member MemberType="Field" Name="Conv_Ovf_I1" />
+      <Member MemberType="Field" Name="Conv_Ovf_I1_Un" />
+      <Member MemberType="Field" Name="Conv_Ovf_I2" />
+      <Member MemberType="Field" Name="Conv_Ovf_I2_Un" />
+      <Member MemberType="Field" Name="Conv_Ovf_I4" />
+      <Member MemberType="Field" Name="Conv_Ovf_I4_Un" />
+      <Member MemberType="Field" Name="Conv_Ovf_I8" />
+      <Member MemberType="Field" Name="Conv_Ovf_I8_Un" />
+      <Member MemberType="Field" Name="Conv_Ovf_U" />
+      <Member MemberType="Field" Name="Conv_Ovf_U_Un" />
+      <Member MemberType="Field" Name="Conv_Ovf_U1" />
+      <Member MemberType="Field" Name="Conv_Ovf_U1_Un" />
+      <Member MemberType="Field" Name="Conv_Ovf_U2" />
+      <Member MemberType="Field" Name="Conv_Ovf_U2_Un" />
+      <Member MemberType="Field" Name="Conv_Ovf_U4" />
+      <Member MemberType="Field" Name="Conv_Ovf_U4_Un" />
+      <Member MemberType="Field" Name="Conv_Ovf_U8" />
+      <Member MemberType="Field" Name="Conv_Ovf_U8_Un" />
+      <Member MemberType="Field" Name="Conv_R_Un" />
+      <Member MemberType="Field" Name="Conv_R4" />
+      <Member MemberType="Field" Name="Conv_R8" />
+      <Member MemberType="Field" Name="Conv_U" />
+      <Member MemberType="Field" Name="Conv_U1" />
+      <Member MemberType="Field" Name="Conv_U2" />
+      <Member MemberType="Field" Name="Conv_U4" />
+      <Member MemberType="Field" Name="Conv_U8" />
+      <Member MemberType="Field" Name="Cpblk" />
+      <Member MemberType="Field" Name="Cpobj" />
+      <Member MemberType="Field" Name="Div" />
+      <Member MemberType="Field" Name="Div_Un" />
+      <Member MemberType="Field" Name="Dup" />
+      <Member MemberType="Field" Name="Endfilter" />
+      <Member MemberType="Field" Name="Endfinally" />
+      <Member MemberType="Field" Name="Initblk" />
+      <Member MemberType="Field" Name="Initobj" />
+      <Member MemberType="Field" Name="Isinst" />
+      <Member MemberType="Field" Name="Jmp" />
+      <Member MemberType="Field" Name="Ldarg" />
+      <Member MemberType="Field" Name="Ldarg_0" />
+      <Member MemberType="Field" Name="Ldarg_1" />
+      <Member MemberType="Field" Name="Ldarg_2" />
+      <Member MemberType="Field" Name="Ldarg_3" />
+      <Member MemberType="Field" Name="Ldarg_S" />
+      <Member MemberType="Field" Name="Ldarga" />
+      <Member MemberType="Field" Name="Ldarga_S" />
+      <Member MemberType="Field" Name="Ldc_I4" />
+      <Member MemberType="Field" Name="Ldc_I4_0" />
+      <Member MemberType="Field" Name="Ldc_I4_1" />
+      <Member MemberType="Field" Name="Ldc_I4_2" />
+      <Member MemberType="Field" Name="Ldc_I4_3" />
+      <Member MemberType="Field" Name="Ldc_I4_4" />
+      <Member MemberType="Field" Name="Ldc_I4_5" />
+      <Member MemberType="Field" Name="Ldc_I4_6" />
+      <Member MemberType="Field" Name="Ldc_I4_7" />
+      <Member MemberType="Field" Name="Ldc_I4_8" />
+      <Member MemberType="Field" Name="Ldc_I4_M1" />
+      <Member MemberType="Field" Name="Ldc_I4_S" />
+      <Member MemberType="Field" Name="Ldc_I8" />
+      <Member MemberType="Field" Name="Ldc_R4" />
+      <Member MemberType="Field" Name="Ldc_R8" />
+      <Member MemberType="Field" Name="Ldelem" />
+      <Member MemberType="Field" Name="Ldelem_I" />
+      <Member MemberType="Field" Name="Ldelem_I1" />
+      <Member MemberType="Field" Name="Ldelem_I2" />
+      <Member MemberType="Field" Name="Ldelem_I4" />
+      <Member MemberType="Field" Name="Ldelem_I8" />
+      <Member MemberType="Field" Name="Ldelem_R4" />
+      <Member MemberType="Field" Name="Ldelem_R8" />
+      <Member MemberType="Field" Name="Ldelem_Ref" />
+      <Member MemberType="Field" Name="Ldelem_U1" />
+      <Member MemberType="Field" Name="Ldelem_U2" />
+      <Member MemberType="Field" Name="Ldelem_U4" />
+      <Member MemberType="Field" Name="Ldelema" />
+      <Member MemberType="Field" Name="Ldfld" />
+      <Member MemberType="Field" Name="Ldflda" />
+      <Member MemberType="Field" Name="Ldftn" />
+      <Member MemberType="Field" Name="Ldind_I" />
+      <Member MemberType="Field" Name="Ldind_I1" />
+      <Member MemberType="Field" Name="Ldind_I2" />
+      <Member MemberType="Field" Name="Ldind_I4" />
+      <Member MemberType="Field" Name="Ldind_I8" />
+      <Member MemberType="Field" Name="Ldind_R4" />
+      <Member MemberType="Field" Name="Ldind_R8" />
+      <Member MemberType="Field" Name="Ldind_Ref" />
+      <Member MemberType="Field" Name="Ldind_U1" />
+      <Member MemberType="Field" Name="Ldind_U2" />
+      <Member MemberType="Field" Name="Ldind_U4" />
+      <Member MemberType="Field" Name="Ldlen" />
+      <Member MemberType="Field" Name="Ldloc" />
+      <Member MemberType="Field" Name="Ldloc_0" />
+      <Member MemberType="Field" Name="Ldloc_1" />
+      <Member MemberType="Field" Name="Ldloc_2" />
+      <Member MemberType="Field" Name="Ldloc_3" />
+      <Member MemberType="Field" Name="Ldloc_S" />
+      <Member MemberType="Field" Name="Ldloca" />
+      <Member MemberType="Field" Name="Ldloca_S" />
+      <Member MemberType="Field" Name="Ldnull" />
+      <Member MemberType="Field" Name="Ldobj" />
+      <Member MemberType="Field" Name="Ldsfld" />
+      <Member MemberType="Field" Name="Ldsflda" />
+      <Member MemberType="Field" Name="Ldstr" />
+      <Member MemberType="Field" Name="Ldtoken" />
+      <Member MemberType="Field" Name="Ldvirtftn" />
+      <Member MemberType="Field" Name="Leave" />
+      <Member MemberType="Field" Name="Leave_S" />
+      <Member MemberType="Field" Name="Localloc" />
+      <Member MemberType="Field" Name="Mkrefany" />
+      <Member MemberType="Field" Name="Mul" />
+      <Member MemberType="Field" Name="Mul_Ovf" />
+      <Member MemberType="Field" Name="Mul_Ovf_Un" />
+      <Member MemberType="Field" Name="Neg" />
+      <Member MemberType="Field" Name="Newarr" />
+      <Member MemberType="Field" Name="Newobj" />
+      <Member MemberType="Field" Name="Nop" />
+      <Member MemberType="Field" Name="Not" />
+      <Member MemberType="Field" Name="Or" />
+      <Member MemberType="Field" Name="Pop" />
+      <Member MemberType="Field" Name="Prefix1" />
+      <Member MemberType="Field" Name="Prefix2" />
+      <Member MemberType="Field" Name="Prefix3" />
+      <Member MemberType="Field" Name="Prefix4" />
+      <Member MemberType="Field" Name="Prefix5" />
+      <Member MemberType="Field" Name="Prefix6" />
+      <Member MemberType="Field" Name="Prefix7" />
+      <Member MemberType="Field" Name="Prefixref" />
+      <Member MemberType="Field" Name="Readonly" />
+      <Member MemberType="Field" Name="Refanytype" />
+      <Member MemberType="Field" Name="Refanyval" />
+      <Member MemberType="Field" Name="Rem" />
+      <Member MemberType="Field" Name="Rem_Un" />
+      <Member MemberType="Field" Name="Ret" />
+      <Member MemberType="Field" Name="Rethrow" />
+      <Member MemberType="Field" Name="Shl" />
+      <Member MemberType="Field" Name="Shr" />
+      <Member MemberType="Field" Name="Shr_Un" />
+      <Member MemberType="Field" Name="Sizeof" />
+      <Member MemberType="Field" Name="Starg" />
+      <Member MemberType="Field" Name="Starg_S" />
+      <Member MemberType="Field" Name="Stelem" />
+      <Member MemberType="Field" Name="Stelem_I" />
+      <Member MemberType="Field" Name="Stelem_I1" />
+      <Member MemberType="Field" Name="Stelem_I2" />
+      <Member MemberType="Field" Name="Stelem_I4" />
+      <Member MemberType="Field" Name="Stelem_I8" />
+      <Member MemberType="Field" Name="Stelem_R4" />
+      <Member MemberType="Field" Name="Stelem_R8" />
+      <Member MemberType="Field" Name="Stelem_Ref" />
+      <Member MemberType="Field" Name="Stfld" />
+      <Member MemberType="Field" Name="Stind_I" />
+      <Member MemberType="Field" Name="Stind_I1" />
+      <Member MemberType="Field" Name="Stind_I2" />
+      <Member MemberType="Field" Name="Stind_I4" />
+      <Member MemberType="Field" Name="Stind_I8" />
+      <Member MemberType="Field" Name="Stind_R4" />
+      <Member MemberType="Field" Name="Stind_R8" />
+      <Member MemberType="Field" Name="Stind_Ref" />
+      <Member MemberType="Field" Name="Stloc" />
+      <Member MemberType="Field" Name="Stloc_0" />
+      <Member MemberType="Field" Name="Stloc_1" />
+      <Member MemberType="Field" Name="Stloc_2" />
+      <Member MemberType="Field" Name="Stloc_3" />
+      <Member MemberType="Field" Name="Stloc_S" />
+      <Member MemberType="Field" Name="Stobj" />
+      <Member MemberType="Field" Name="Stsfld" />
+      <Member MemberType="Field" Name="Sub" />
+      <Member MemberType="Field" Name="Sub_Ovf" />
+      <Member MemberType="Field" Name="Sub_Ovf_Un" />
+      <Member MemberType="Field" Name="Switch" />
+      <Member MemberType="Field" Name="Tailcall" />
+      <Member MemberType="Field" Name="Throw" />
+      <Member MemberType="Field" Name="Unaligned" />
+      <Member MemberType="Field" Name="Unbox" />
+      <Member MemberType="Field" Name="Unbox_Any" />
+      <Member MemberType="Field" Name="Volatile" />
+      <Member MemberType="Field" Name="Xor" />
+      <Member Name="TakesSingleByteArgument(System.Reflection.Emit.OpCode)" />
+    </Type>
+    <Type Name="System.Reflection.Emit.OpCodeType">
+      <Member MemberType="Field" Name="Macro" />
+      <Member MemberType="Field" Name="Nternal" />
+      <Member MemberType="Field" Name="Objmodel" />
+      <Member MemberType="Field" Name="Prefix" />
+      <Member MemberType="Field" Name="Primitive" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.Emit.OperandType">
+      <Member MemberType="Field" Name="InlineBrTarget" />
+      <Member MemberType="Field" Name="InlineField" />
+      <Member MemberType="Field" Name="InlineI" />
+      <Member MemberType="Field" Name="InlineI8" />
+      <Member MemberType="Field" Name="InlineMethod" />
+      <Member MemberType="Field" Name="InlineNone" />
+      <Member MemberType="Field" Name="InlineR" />
+      <Member MemberType="Field" Name="InlineSig" />
+      <Member MemberType="Field" Name="InlineString" />
+      <Member MemberType="Field" Name="InlineSwitch" />
+      <Member MemberType="Field" Name="InlineTok" />
+      <Member MemberType="Field" Name="InlineType" />
+      <Member MemberType="Field" Name="InlineVar" />
+      <Member MemberType="Field" Name="ShortInlineBrTarget" />
+      <Member MemberType="Field" Name="ShortInlineI" />
+      <Member MemberType="Field" Name="ShortInlineR" />
+      <Member MemberType="Field" Name="ShortInlineVar" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.Emit.PackingSize">
+      <Member MemberType="Field" Name="Size1" />
+      <Member MemberType="Field" Name="Size128" />
+      <Member MemberType="Field" Name="Size16" />
+      <Member MemberType="Field" Name="Size2" />
+      <Member MemberType="Field" Name="Size32" />
+      <Member MemberType="Field" Name="Size4" />
+      <Member MemberType="Field" Name="Size64" />
+      <Member MemberType="Field" Name="Size8" />
+      <Member MemberType="Field" Name="Unspecified" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.Emit.ParameterBuilder">
+      <Member Name="get_Attributes" />
+      <Member Name="get_IsIn" />
+      <Member Name="get_IsOptional" />
+      <Member Name="get_IsOut" />
+      <Member Name="get_Name" />
+      <Member Name="get_Position" />
+      <Member Name="GetToken" />
+      <Member Name="SetConstant(System.Object)" />
+      <Member Name="SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[])" />
+      <Member Name="SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder)" />
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="IsIn" />
+      <Member MemberType="Property" Name="IsOptional" />
+      <Member MemberType="Property" Name="IsOut" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="Position" />
+    </Type>
+    <Type Name="System.Reflection.Emit.ParameterToken">
+      <Member MemberType="Field" Name="Empty" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Reflection.Emit.ParameterToken)" />
+      <Member Name="get_Token" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Reflection.Emit.ParameterToken,System.Reflection.Emit.ParameterToken)" />
+      <Member Name="op_Inequality(System.Reflection.Emit.ParameterToken,System.Reflection.Emit.ParameterToken)" />
+      <Member MemberType="Property" Name="Token" />
+    </Type>
+    <Type Name="System.Reflection.Emit.PEFileKinds">
+      <Member MemberType="Field" Name="ConsoleApplication" />
+      <Member MemberType="Field" Name="Dll" />
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="WindowApplication" />
+    </Type>
+    <Type Name="System.Reflection.Emit.PropertyBuilder">
+      <Member Name="AddOtherMethod(System.Reflection.Emit.MethodBuilder)" />
+      <Member Name="get_Attributes" />
+      <Member Name="get_CanRead" />
+      <Member Name="get_CanWrite" />
+      <Member Name="get_DeclaringType" />
+      <Member Name="get_Module" />
+      <Member Name="get_Name" />
+      <Member Name="get_PropertyToken" />
+      <Member Name="get_PropertyType" />
+      <Member Name="get_ReflectedType" />
+      <Member Name="GetAccessors(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="GetGetMethod(System.Boolean)" />
+      <Member Name="GetIndexParameters" />
+      <Member Name="GetSetMethod(System.Boolean)" />
+      <Member Name="GetValue(System.Object,System.Object[])" />
+      <Member Name="GetValue(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)" />
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member Name="SetConstant(System.Object)" />
+      <Member Name="SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[])" />
+      <Member Name="SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder)" />
+      <Member Name="SetGetMethod(System.Reflection.Emit.MethodBuilder)" />
+      <Member Name="SetSetMethod(System.Reflection.Emit.MethodBuilder)" />
+      <Member Name="SetValue(System.Object,System.Object,System.Object[])" />
+      <Member Name="SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)" />
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="CanRead" />
+      <Member MemberType="Property" Name="CanWrite" />
+      <Member MemberType="Property" Name="DeclaringType" />
+      <Member MemberType="Property" Name="Module" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="PropertyToken" />
+      <Member MemberType="Property" Name="PropertyType" />
+      <Member MemberType="Property" Name="ReflectedType" />
+    </Type>
+    <Type Name="System.Reflection.Emit.PropertyToken">
+      <Member MemberType="Field" Name="Empty" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Reflection.Emit.PropertyToken)" />
+      <Member Name="get_Token" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Reflection.Emit.PropertyToken,System.Reflection.Emit.PropertyToken)" />
+      <Member Name="op_Inequality(System.Reflection.Emit.PropertyToken,System.Reflection.Emit.PropertyToken)" />
+      <Member MemberType="Property" Name="Token" />
+    </Type>
+    <Type Name="System.Reflection.Emit.SignatureHelper">
+      <Member Name="AddArgument(System.Type)" />
+      <Member Name="AddArgument(System.Type,System.Boolean)" />
+      <Member Name="AddArgument(System.Type,System.Type[],System.Type[])" />
+      <Member Name="AddArguments(System.Type[],System.Type[][],System.Type[][])" />
+      <Member Name="AddSentinel" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetFieldSigHelper(System.Reflection.Module)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetLocalVarSigHelper" />
+      <Member Name="GetLocalVarSigHelper(System.Reflection.Module)" />
+      <Member Name="GetMethodSigHelper(System.Reflection.CallingConventions,System.Type)" />
+      <Member Name="GetMethodSigHelper(System.Reflection.Module,System.Reflection.CallingConventions,System.Type)" />
+      <Member Name="GetMethodSigHelper(System.Reflection.Module,System.Runtime.InteropServices.CallingConvention,System.Type)" />
+      <Member Name="GetMethodSigHelper(System.Reflection.Module,System.Type,System.Type[])" />
+      <Member Name="GetMethodSigHelper(System.Runtime.InteropServices.CallingConvention,System.Type)" />
+      <Member Name="GetPropertySigHelper(System.Reflection.Module,System.Type,System.Type[])" />
+      <Member Name="GetPropertySigHelper(System.Reflection.Module,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][])" />
+      <Member Name="GetPropertySigHelper(System.Reflection.Module,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][])" />
+      <Member Name="GetSignature" />
+      <Member Name="ToString" />
+    </Type>
+    <Type Name="System.Reflection.Emit.SignatureToken">
+      <Member MemberType="Field" Name="Empty" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Reflection.Emit.SignatureToken)" />
+      <Member Name="get_Token" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Reflection.Emit.SignatureToken,System.Reflection.Emit.SignatureToken)" />
+      <Member Name="op_Inequality(System.Reflection.Emit.SignatureToken,System.Reflection.Emit.SignatureToken)" />
+      <Member MemberType="Property" Name="Token" />
+    </Type>
+    <Type Name="System.Reflection.Emit.StackBehaviour">
+      <Member MemberType="Field" Name="Pop0" />
+      <Member MemberType="Field" Name="Pop1" />
+      <Member MemberType="Field" Name="Pop1_pop1" />
+      <Member MemberType="Field" Name="Popi" />
+      <Member MemberType="Field" Name="Popi_pop1" />
+      <Member MemberType="Field" Name="Popi_popi" />
+      <Member MemberType="Field" Name="Popi_popi_popi" />
+      <Member MemberType="Field" Name="Popi_popi8" />
+      <Member MemberType="Field" Name="Popi_popr4" />
+      <Member MemberType="Field" Name="Popi_popr8" />
+      <Member MemberType="Field" Name="Popref" />
+      <Member MemberType="Field" Name="Popref_pop1" />
+      <Member MemberType="Field" Name="Popref_popi" />
+      <Member MemberType="Field" Name="Popref_popi_pop1" />
+      <Member MemberType="Field" Name="Popref_popi_popi" />
+      <Member MemberType="Field" Name="Popref_popi_popi8" />
+      <Member MemberType="Field" Name="Popref_popi_popr4" />
+      <Member MemberType="Field" Name="Popref_popi_popr8" />
+      <Member MemberType="Field" Name="Popref_popi_popref" />
+      <Member MemberType="Field" Name="Push0" />
+      <Member MemberType="Field" Name="Push1" />
+      <Member MemberType="Field" Name="Push1_push1" />
+      <Member MemberType="Field" Name="Pushi" />
+      <Member MemberType="Field" Name="Pushi8" />
+      <Member MemberType="Field" Name="Pushr4" />
+      <Member MemberType="Field" Name="Pushr8" />
+      <Member MemberType="Field" Name="Pushref" />
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="Varpop" />
+      <Member MemberType="Field" Name="Varpush" />
+    </Type>
+    <Type Name="System.Reflection.Emit.StringToken">
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Reflection.Emit.StringToken)" />
+      <Member Name="get_Token" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Reflection.Emit.StringToken,System.Reflection.Emit.StringToken)" />
+      <Member Name="op_Inequality(System.Reflection.Emit.StringToken,System.Reflection.Emit.StringToken)" />
+      <Member MemberType="Property" Name="Token" />
+    </Type>
+    <Type Name="System.Reflection.Emit.TypeBuilder">
+      <Member MemberType="Field" Name="UnspecifiedTypeSize" />
+      <Member Name="AddInterfaceImplementation(System.Type)" />
+      <Member Name="CreateType" />
+      <Member Name="IsAssignableFrom(System.Reflection.TypeInfo)" />
+      <Member Name="CreateTypeInfo" />
+      <Member Name="DefineConstructor(System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type[])" />
+      <Member Name="DefineConstructor(System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type[],System.Type[][],System.Type[][])" />
+      <Member Name="DefineDefaultConstructor(System.Reflection.MethodAttributes)" />
+      <Member Name="DefineEvent(System.String,System.Reflection.EventAttributes,System.Type)" />
+      <Member Name="DefineField(System.String,System.Type,System.Reflection.FieldAttributes)" />
+      <Member Name="DefineField(System.String,System.Type,System.Type[],System.Type[],System.Reflection.FieldAttributes)" />
+      <Member Name="DefineGenericParameters(System.String[])" />
+      <Member Name="DefineInitializedData(System.String,System.Byte[],System.Reflection.FieldAttributes)" />
+      <Member Name="DefineMethod(System.String,System.Reflection.MethodAttributes)" />
+      <Member Name="DefineMethod(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions)" />
+      <Member Name="DefineMethod(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[])" />
+      <Member Name="DefineMethod(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][])" />
+      <Member Name="DefineMethod(System.String,System.Reflection.MethodAttributes,System.Type,System.Type[])" />
+      <Member Name="DefineMethodOverride(System.Reflection.MethodInfo,System.Reflection.MethodInfo)" />
+      <Member Name="DefineNestedType(System.String)" />
+      <Member Name="DefineNestedType(System.String,System.Reflection.TypeAttributes)" />
+      <Member Name="DefineNestedType(System.String,System.Reflection.TypeAttributes,System.Type)" />
+      <Member Name="DefineNestedType(System.String,System.Reflection.TypeAttributes,System.Type,System.Int32)" />
+      <Member Name="DefineNestedType(System.String,System.Reflection.TypeAttributes,System.Type,System.Reflection.Emit.PackingSize)" />
+      <Member Name="DefineNestedType(System.String,System.Reflection.TypeAttributes,System.Type,System.Reflection.Emit.PackingSize,System.Int32)" /> 
+      <Member Name="DefineNestedType(System.String,System.Reflection.TypeAttributes,System.Type,System.Type[])" />
+      <Member Name="DefineProperty(System.String,System.Reflection.PropertyAttributes,System.Type,System.Type[])" />
+      <Member Name="DefineProperty(System.String,System.Reflection.PropertyAttributes,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][])" />
+      <Member Name="DefineProperty(System.String,System.Reflection.PropertyAttributes,System.Reflection.CallingConventions,System.Type,System.Type[])" />
+      <Member Name="DefineProperty(System.String,System.Reflection.PropertyAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][])" />
+      <Member Name="DefineTypeInitializer" />
+      <Member Name="DefineUninitializedData(System.String,System.Int32,System.Reflection.FieldAttributes)" />
+      <Member Name="get_Assembly" />
+      <Member Name="get_AssemblyQualifiedName" />
+      <Member Name="get_BaseType" />
+      <Member Name="get_DeclaringMethod" />
+      <Member Name="get_DeclaringType" />
+      <Member Name="get_FullName" />
+      <Member Name="get_GenericParameterAttributes" />
+      <Member Name="get_GenericParameterPosition" />
+      <Member Name="get_GUID" />
+      <Member Name="get_IsGenericParameter" />
+      <Member Name="get_IsGenericType" />
+      <Member Name="get_IsGenericTypeDefinition" />
+      <Member Name="get_Module" />
+      <Member Name="get_Name" />
+      <Member Name="get_Namespace" />
+      <Member Name="get_PackingSize" />
+      <Member Name="get_ReflectedType" />
+      <Member Name="get_Size" />
+      <Member Name="get_TypeHandle" />
+      <Member Name="get_TypeToken" />
+      <Member Name="get_UnderlyingSystemType" />
+      <Member Name="GetAttributeFlagsImpl" />
+      <Member Name="GetConstructor(System.Type,System.Reflection.ConstructorInfo)" />
+      <Member Name="GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetConstructors(System.Reflection.BindingFlags)" />
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="GetElementType" />
+      <Member Name="GetEvent(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetEvents" />
+      <Member Name="GetEvents(System.Reflection.BindingFlags)" />
+      <Member Name="GetField(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetField(System.Type,System.Reflection.FieldInfo)" />
+      <Member Name="GetFields(System.Reflection.BindingFlags)" />
+      <Member Name="GetGenericArguments" />
+      <Member Name="GetGenericTypeDefinition" />
+      <Member Name="GetInterface(System.String,System.Boolean)" />
+      <Member Name="GetInterfaceMap(System.Type)" />
+      <Member Name="GetInterfaces" />
+      <Member Name="GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags)" />
+      <Member Name="GetMembers(System.Reflection.BindingFlags)" />
+      <Member Name="GetMethod(System.Type,System.Reflection.MethodInfo)" />
+      <Member Name="GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetMethods(System.Reflection.BindingFlags)" />
+      <Member Name="GetNestedType(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetNestedTypes(System.Reflection.BindingFlags)" />
+      <Member Name="GetProperties(System.Reflection.BindingFlags)" />
+      <Member Name="GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="HasElementTypeImpl" />
+      <Member Name="InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])" />
+      <Member Name="IsArrayImpl" />
+      <Member Name="IsAssignableFrom(System.Type)" />
+      <Member Name="IsByRefImpl" />
+      <Member Name="IsCOMObjectImpl" />
+      <Member Name="IsCreated" />
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member Name="IsPointerImpl" />
+      <Member Name="IsPrimitiveImpl" />
+      <Member Name="IsSubclassOf(System.Type)" />
+      <Member Name="MakeArrayType" />
+      <Member Name="MakeArrayType(System.Int32)" />
+      <Member Name="MakeByRefType" />
+      <Member Name="MakeGenericType(System.Type[])" />
+      <Member Name="MakePointerType" />
+      <Member Name="SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[])" />
+      <Member Name="SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder)" />
+      <Member Name="SetParent(System.Type)" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Assembly" />
+      <Member MemberType="Property" Name="AssemblyQualifiedName" />
+      <Member MemberType="Property" Name="BaseType" />
+      <Member MemberType="Property" Name="DeclaringMethod" />
+      <Member MemberType="Property" Name="DeclaringType" />
+      <Member MemberType="Property" Name="FullName" />
+      <Member MemberType="Property" Name="GenericParameterAttributes" />
+      <Member MemberType="Property" Name="GenericParameterPosition" />
+      <Member MemberType="Property" Name="GUID" />
+      <Member MemberType="Property" Name="IsGenericParameter" />
+      <Member MemberType="Property" Name="IsGenericType" />
+      <Member MemberType="Property" Name="IsGenericTypeDefinition" />
+      <Member MemberType="Property" Name="Module" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="Namespace" />
+      <Member MemberType="Property" Name="PackingSize" />
+      <Member MemberType="Property" Name="ReflectedType" />
+      <Member MemberType="Property" Name="Size" />
+      <Member MemberType="Property" Name="TypeHandle" />
+      <Member MemberType="Property" Name="TypeToken" />
+      <Member MemberType="Property" Name="UnderlyingSystemType" />
+    </Type>
+    <Type Name="System.Reflection.Emit.TypeToken">
+      <Member MemberType="Field" Name="Empty" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Reflection.Emit.TypeToken)" />
+      <Member Name="get_Token" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Reflection.Emit.TypeToken,System.Reflection.Emit.TypeToken)" />
+      <Member Name="op_Inequality(System.Reflection.Emit.TypeToken,System.Reflection.Emit.TypeToken)" />
+      <Member MemberType="Property" Name="Token" />
+    </Type>
+    <Type Name="System.Reflection.EventAttributes">
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="ReservedMask" />
+      <Member MemberType="Field" Name="RTSpecialName" />
+      <Member MemberType="Field" Name="SpecialName" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.EventInfo">
+      <Member Name="#ctor" />
+      <Member Name="AddEventHandler(System.Object,System.Delegate)" />
+      <Member Name="get_Attributes" />
+      <Member Name="get_AddMethod" />
+      <Member Name="get_RaiseMethod" />
+      <Member Name="get_RemoveMethod" />
+      <Member Name="get_EventHandlerType" />
+      <Member Name="get_IsMulticast" />
+      <Member Name="get_IsSpecialName" />
+      <Member Name="get_MemberType" />
+      <Member Name="GetAddMethod" />
+      <Member Name="GetAddMethod(System.Boolean)" />
+      <Member Name="GetRaiseMethod" />
+      <Member Name="GetRaiseMethod(System.Boolean)" />
+      <Member Name="GetRemoveMethod" />
+      <Member Name="GetRemoveMethod(System.Boolean)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />      
+      <Member Name="RemoveEventHandler(System.Object,System.Delegate)" />
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="AddMethod" />      
+      <Member MemberType="Property" Name="RaiseMethod" />      
+      <Member MemberType="Property" Name="RemoveMethod" />            
+      <Member MemberType="Property" Name="EventHandlerType" />
+      <Member MemberType="Property" Name="IsMulticast" />
+      <Member MemberType="Property" Name="IsSpecialName" />
+      <Member MemberType="Property" Name="MemberType" />
+    </Type>
+    <Type Name="System.Reflection.FieldAttributes">
+      <Member MemberType="Field" Name="Assembly" />
+      <Member MemberType="Field" Name="FamANDAssem" />
+      <Member MemberType="Field" Name="Family" />
+      <Member MemberType="Field" Name="FamORAssem" />
+      <Member MemberType="Field" Name="FieldAccessMask" />
+      <Member MemberType="Field" Name="HasDefault" />
+      <Member MemberType="Field" Name="HasFieldMarshal" />
+      <Member MemberType="Field" Name="HasFieldRVA" />
+      <Member MemberType="Field" Name="InitOnly" />
+      <Member MemberType="Field" Name="Literal" />
+      <Member MemberType="Field" Name="NotSerialized" />
+      <Member MemberType="Field" Name="PinvokeImpl" />
+      <Member MemberType="Field" Name="Private" />
+      <Member MemberType="Field" Name="PrivateScope" />
+      <Member MemberType="Field" Name="Public" />
+      <Member MemberType="Field" Name="ReservedMask" />
+      <Member MemberType="Field" Name="RTSpecialName" />
+      <Member MemberType="Field" Name="SpecialName" />
+      <Member MemberType="Field" Name="Static" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.FieldInfo">
+      <Member Name="#ctor" />
+      <Member Name="get_Attributes" />
+      <Member Name="get_FieldHandle" />
+      <Member Name="get_FieldType" />
+      <Member Name="get_IsAssembly" />
+      <Member Name="get_IsFamily" />
+      <Member Name="get_IsFamilyAndAssembly" />
+      <Member Name="get_IsFamilyOrAssembly" />
+      <Member Name="get_IsInitOnly" />
+      <Member Name="get_IsLiteral" />
+      <Member Name="get_IsNotSerialized" />
+      <Member Name="get_IsPinvokeImpl" />
+      <Member Name="get_IsPrivate" />
+      <Member Name="get_IsPublic" />
+      <Member Name="get_IsSpecialName" />
+      <Member Name="get_IsStatic" />
+      <Member Name="get_MemberType" />
+      <Member Name="GetFieldFromHandle(System.RuntimeFieldHandle)" />
+      <Member Name="GetFieldFromHandle(System.RuntimeFieldHandle,System.RuntimeTypeHandle)" />
+      <Member Name="GetValue(System.Object)" />
+      <Member Name="GetOptionalCustomModifiers" />
+      <Member Name="GetRequiredCustomModifiers" />
+      <Member Name="GetRawConstantValue" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />      
+      <Member Name="SetValue(System.Object,System.Object)" />
+      <Member Name="SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Globalization.CultureInfo)" />
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="FieldHandle" />
+      <Member MemberType="Property" Name="FieldType" />
+      <Member MemberType="Property" Name="IsAssembly" />
+      <Member MemberType="Property" Name="IsFamily" />
+      <Member MemberType="Property" Name="IsFamilyAndAssembly" />
+      <Member MemberType="Property" Name="IsFamilyOrAssembly" />
+      <Member MemberType="Property" Name="IsInitOnly" />
+      <Member MemberType="Property" Name="IsLiteral" />
+      <Member MemberType="Property" Name="IsNotSerialized" />
+      <Member MemberType="Property" Name="IsPinvokeImpl" />
+      <Member MemberType="Property" Name="IsPrivate" />
+      <Member MemberType="Property" Name="IsPublic" />
+      <Member MemberType="Property" Name="IsSpecialName" />
+      <Member MemberType="Property" Name="IsStatic" />
+      <Member MemberType="Property" Name="MemberType" />
+    </Type>
+    <Type Name="System.Reflection.ICustomAttributeProvider">
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+    </Type>
+       <Type Name="System.Reflection.InvalidFilterCriteriaException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Reflection.InterfaceMapping">
+      <Member MemberType="Field" Name="InterfaceMethods" />
+      <Member MemberType="Field" Name="InterfaceType" />
+      <Member MemberType="Field" Name="TargetMethods" />
+      <Member MemberType="Field" Name="TargetType" />
+    </Type>
+    <Type Name="System.Reflection.IReflect" />
+    <Type Status="ImplRoot" Name="System.Reflection.LoaderAllocator">
+      <Member Status="ImplRoot" Name="#ctor" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_slots" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_slotsUsed" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Reflection.ManifestResourceInfo">
+      <Member Name="#ctor(System.Reflection.Assembly,System.String,System.Reflection.ResourceLocation)" />
+      <Member MemberType="Property" Name="FileName" />
+      <Member MemberType="Property" Name="ReferencedAssembly" />
+      <Member MemberType="Property" Name="ResourceLocation" />
+    </Type>
+    <Type Name="System.Reflection.MemberInfo">
+      <Member Name="#ctor" />
+      <Member Name="get_CustomAttributes" />      
+      <Member Name="get_DeclaringType" />
+      <Member Name="get_MemberType" />
+      <Member Name="get_MetadataToken" />
+      <Member Name="get_Name" />
+      <Member Name="get_ReflectedType" />
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />      
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member MemberType="Property" Name="CustomAttributes" />
+      <Member MemberType="Property" Name="DeclaringType" />
+      <Member MemberType="Property" Name="MemberType" />
+      <Member MemberType="Property" Name="MetadataToken" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="ReflectedType" />
+    </Type>
+    <Type Name="System.Reflection.MemberTypes">
+      <Member MemberType="Field" Name="All" />
+      <Member MemberType="Field" Name="Constructor" />
+      <Member MemberType="Field" Name="Custom" />
+      <Member MemberType="Field" Name="Event" />
+      <Member MemberType="Field" Name="Field" />
+      <Member MemberType="Field" Name="Method" />
+      <Member MemberType="Field" Name="NestedType" />
+      <Member MemberType="Field" Name="Property" />
+      <Member MemberType="Field" Name="TypeInfo" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.MethodAttributes">
+      <Member MemberType="Field" Name="Abstract" />
+      <Member MemberType="Field" Name="Assembly" />
+      <Member MemberType="Field" Name="FamANDAssem" />
+      <Member MemberType="Field" Name="Family" />
+      <Member MemberType="Field" Name="FamORAssem" />
+      <Member MemberType="Field" Name="Final" />
+      <Member MemberType="Field" Name="HasSecurity" />
+      <Member MemberType="Field" Name="HideBySig" />
+      <Member MemberType="Field" Name="MemberAccessMask" />
+      <Member MemberType="Field" Name="NewSlot" />
+      <Member MemberType="Field" Name="PinvokeImpl" />
+      <Member MemberType="Field" Name="Private" />
+      <Member MemberType="Field" Name="PrivateScope" />
+      <Member MemberType="Field" Name="Public" />
+      <Member MemberType="Field" Name="RequireSecObject" />
+      <Member MemberType="Field" Name="ReservedMask" />
+      <Member MemberType="Field" Name="ReuseSlot" />
+      <Member MemberType="Field" Name="RTSpecialName" />
+      <Member MemberType="Field" Name="SpecialName" />
+      <Member MemberType="Field" Name="Static" />
+      <Member MemberType="Field" Name="UnmanagedExport" />
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="Virtual" />
+      <Member MemberType="Field" Name="VtableLayoutMask" />
+    </Type>
+    <Type Name="System.Reflection.MethodBase">
+      <Member Name="#ctor" />
+      <Member Name="get_Attributes" />
+      <Member Name="get_CallingConvention" />
+      <Member Name="get_ContainsGenericParameters" />
+      <Member Name="get_IsAbstract" />
+      <Member Name="get_IsAssembly" />
+      <Member Name="get_IsConstructor" />
+      <Member Name="get_IsFamily" />
+      <Member Name="get_IsFamilyAndAssembly" />
+      <Member Name="get_IsFamilyOrAssembly" />
+      <Member Name="get_IsFinal" />
+      <Member Name="get_IsGenericMethod" />
+      <Member Name="get_IsGenericMethodDefinition" />
+      <Member Name="get_IsHideBySig" />
+      <Member Name="get_IsPrivate" />
+      <Member Name="get_IsPublic" />
+      <Member Name="get_IsSpecialName" />
+      <Member Name="get_IsStatic" />
+      <Member Name="get_IsVirtual" />
+      <Member Name="get_MethodHandle" />     
+      <Member Name="get_MethodImplementationFlags" />
+      <Member Name="GetGenericArguments" />
+      <Member Status="ImplRoot" Name="GetMethodDesc" />
+      <Member Name="GetMethodFromHandle(System.RuntimeMethodHandle)" />
+      <Member Name="GetMethodFromHandle(System.RuntimeMethodHandle,System.RuntimeTypeHandle)" />
+      <Member Name="GetMethodImplementationFlags" />
+      <Member Name="GetParameters" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="Invoke(System.Object,System.Object[])" />
+      <Member Name="Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)" />
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="CallingConvention" />
+      <Member MemberType="Property" Name="ContainsGenericParameters" />
+      <Member MemberType="Property" Name="IsAbstract" />
+      <Member MemberType="Property" Name="IsAssembly" />
+      <Member MemberType="Property" Name="IsConstructor" />
+      <Member MemberType="Property" Name="IsFamily" />
+      <Member MemberType="Property" Name="IsFamilyAndAssembly" />
+      <Member MemberType="Property" Name="IsFamilyOrAssembly" />
+      <Member MemberType="Property" Name="IsFinal" />
+      <Member MemberType="Property" Name="IsGenericMethod" />
+      <Member MemberType="Property" Name="IsGenericMethodDefinition" />
+      <Member MemberType="Property" Name="IsHideBySig" />
+      <Member MemberType="Property" Name="IsPrivate" />
+      <Member MemberType="Property" Name="IsPublic" />
+      <Member MemberType="Property" Name="IsSpecialName" />
+      <Member MemberType="Property" Name="IsStatic" />
+      <Member MemberType="Property" Name="IsVirtual" />
+      <Member MemberType="Property" Name="MethodHandle" />
+      <Member MemberType="Property" Name="MethodImplementationFlags" />      
+      <Member Name="GetCurrentMethod" />
+    </Type>
+    <Type Name="System.Reflection.MethodImplAttributes">
+      <Member MemberType="Field" Name="AggressiveInlining" />
+      <Member MemberType="Field" Name="CodeTypeMask" />
+      <Member MemberType="Field" Name="ForwardRef" />
+      <Member MemberType="Field" Name="IL" />
+      <Member MemberType="Field" Name="InternalCall" />
+      <Member MemberType="Field" Name="Managed" />
+      <Member MemberType="Field" Name="ManagedMask" />
+      <Member MemberType="Field" Name="MaxMethodImplVal" />
+      <Member MemberType="Field" Name="Native" />
+      <Member MemberType="Field" Name="NoInlining" />
+      <Member MemberType="Field" Name="OPTIL" />
+      <Member MemberType="Field" Name="PreserveSig" />
+      <Member MemberType="Field" Name="Runtime" />
+      <Member MemberType="Field" Name="Synchronized" />
+      <Member MemberType="Field" Name="Unmanaged" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.MethodInfo">
+      <Member Name="#ctor" />
+      <Member Name="get_MemberType" />
+      <Member Name="get_ReturnParameter" />
+      <Member Name="get_ReturnType" />
+      <Member Name="get_ReturnTypeCustomAttributes" />
+      <Member Name="GetBaseDefinition" />
+      <Member Name="GetGenericArguments" />
+      <Member Name="GetGenericMethodDefinition" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />      
+      <Member Name="MakeGenericMethod(System.Type[])" />
+      <Member MemberType="Property" Name="MemberType" />
+      <Member MemberType="Property" Name="ReturnParameter" />
+      <Member MemberType="Property" Name="ReturnType" />
+      <Member MemberType="Property" Name="ReturnTypeCustomAttributes" />
+    </Type>
+    <Type Name="System.Reflection.Missing">
+      <Member MemberType="Field" Name="Value" />
+    </Type>
+    <Type Name="System.Reflection.Module">
+      <Member Name="#ctor" />
+      <Member Name="get_Assembly" />
+      <Member Name="get_CustomAttributes" />
+      <Member Name="get_FullyQualifiedName" />
+      <Member Name="get_MetadataToken" />
+      <Member Name="get_ModuleVersionId" />
+      <Member Name="get_Name" />
+      <Member Name="get_ScopeName" />
+      <Member Name="FindTypes(System.Reflection.TypeFilter,System.Object)" />
+         <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="GetField(System.String)" />
+      <Member Name="GetField(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetFields" />
+      <Member Name="GetFields(System.Reflection.BindingFlags)" />
+      <Member Name="GetMethod(System.String)" />
+      <Member Name="GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetMethod(System.String,System.Type[])" />
+      <Member Name="GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetMethods" />
+      <Member Name="GetMethods(System.Reflection.BindingFlags)" />
+      <Member Name="GetType(System.String)" />
+      <Member Name="GetType(System.String,System.Boolean)" />
+      <Member Name="GetType(System.String,System.Boolean,System.Boolean)" />
+      <Member Name="GetTypes" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />      
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member Name="ResolveMethod(System.Int32)" />
+      <Member Name="ResolveMethod(System.Int32,System.Type[],System.Type[])" />
+      <Member Name="ResolveField(System.Int32)" />
+      <Member Name="ResolveField(System.Int32,System.Type[],System.Type[])" />
+      <Member Name="ResolveString(System.Int32)" />
+      <Member Name="ResolveType(System.Int32)" />
+      <Member Name="ResolveType(System.Int32,System.Type[],System.Type[])" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Assembly" />
+      <Member MemberType="Property" Name="CustomAttributes" />            
+      <Member MemberType="Property" Name="FullyQualifiedName" />
+      <Member MemberType="Property" Name="MetadataToken" />
+      <Member MemberType="Property" Name="ModuleVersionId" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="ScopeName" />
+         <Member MemberType="Field" Name="FilterTypeName" />
+         <Member MemberType="Field" Name="FilterTypeNameIgnoreCase" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Reflection.RuntimeModule">
+      <Member Status="ImplRoot" MemberType="Field" Name="m_pData" /> <!-- EE -->
+      <Member Status="ImplRoot" MemberType="Field" Name="m_pFields" /> <!-- EE -->
+      <Member Status="ImplRoot" MemberType="Field" Name="m_pGlobals" /> <!-- EE -->
+      <Member Status="ImplRoot" MemberType="Field" Name="m_pRefClass" /> <!-- EE -->
+      <Member Status="ImplRoot" MemberType="Field" Name="m_runtimeType" /> <!-- EE -->
+    </Type>
+    <Type Name="System.Reflection.ParameterAttributes">
+      <Member MemberType="Field" Name="HasDefault" />
+      <Member MemberType="Field" Name="HasFieldMarshal" />
+      <Member MemberType="Field" Name="In" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="Optional" />
+      <Member MemberType="Field" Name="Out" />
+      <Member MemberType="Field" Name="Reserved3" />
+      <Member MemberType="Field" Name="Reserved4" />
+      <Member MemberType="Field" Name="ReservedMask" />
+      <Member MemberType="Field" Name="Retval" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.ParameterInfo">
+      <Member Name="#ctor" />
+      <Member Name="get_Attributes" />
+      <Member Name="get_CustomAttributes" />            
+      <Member Name="get_DefaultValue" />
+      <Member Name="get_HasDefaultValue" />
+      <Member Name="get_IsOptional" />
+      <Member Name="get_IsOut" />        
+      <Member Name="get_IsIn" />        
+      <Member Name="get_IsRetval" />              
+      <Member Name="get_Member" />
+      <Member Name="get_MetadataToken" />
+      <Member Name="get_Name" />
+      <Member Name="get_ParameterType" />
+      <Member Name="get_Position" />
+      <Member Name="get_RawDefaultValue" />
+      <Member Name="GetOptionalCustomModifiers" />
+      <Member Name="GetRequiredCustomModifiers" />
+      <Member Name="GetCustomAttributes(System.Boolean)" />
+      <Member Name="GetCustomAttributes(System.Type,System.Boolean)" />
+      <Member Name="IsDefined(System.Type,System.Boolean)" />
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="CustomAttributes" />                  
+      <Member MemberType="Property" Name="DefaultValue" />
+      <Member MemberType="Property" Name="HasDefaultValue" />
+      <Member MemberType="Property" Name="IsOptional" />
+      <Member MemberType="Property" Name="IsOut" />       
+      <Member MemberType="Property" Name="IsIn" />         
+      <Member MemberType="Property" Name="IsRetval" />               
+      <Member MemberType="Property" Name="Member" />
+      <Member MemberType="Property" Name="MetadataToken" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="ParameterType" />
+      <Member MemberType="Property" Name="Position" /> 
+      <Member MemberType="Property" Name="RawDefaultValue" />
+    </Type>
+    <Type Name="System.Reflection.ParameterModifier">
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="get_Item(System.Int32)" />
+      <Member Name="set_Item(System.Int32,System.Boolean)" />
+      <Member MemberType="Property" Name="Item(System.Int32)" />
+    </Type>
+    <Type Name="System.Reflection.PropertyAttributes">
+      <Member MemberType="Field" Name="HasDefault" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="Reserved2" />
+      <Member MemberType="Field" Name="Reserved3" />
+      <Member MemberType="Field" Name="Reserved4" />
+      <Member MemberType="Field" Name="ReservedMask" />
+      <Member MemberType="Field" Name="RTSpecialName" />
+      <Member MemberType="Field" Name="SpecialName" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Reflection.PropertyInfo">
+      <Member Name="#ctor" />
+      <Member Name="get_Attributes" />
+      <Member Name="get_CanRead" />
+      <Member Name="get_CanWrite" />
+      <Member Name="get_GetMethod" />      
+      <Member Name="get_IsSpecialName" />
+      <Member Name="get_MemberType" />
+      <Member Name="get_PropertyType" />
+      <Member Name="get_SetMethod" />            
+      <Member Name="GetAccessors" />
+      <Member Name="GetAccessors(System.Boolean)" />
+      <Member Name="GetConstantValue" />
+      <Member Name="GetGetMethod" />
+      <Member Name="GetGetMethod(System.Boolean)" />
+      <Member Name="GetIndexParameters" />
+      <Member Name="GetOptionalCustomModifiers" />
+      <Member Name="GetRequiredCustomModifiers" />
+      <Member Name="GetRawConstantValue" />
+      <Member Name="GetSetMethod" />
+      <Member Name="GetSetMethod(System.Boolean)" />
+      <Member Name="GetValue(System.Object)" />
+      <Member Name="GetValue(System.Object,System.Object[])" />
+      <Member Name="GetValue(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />      
+      <Member Name="SetValue(System.Object,System.Object)" />      
+      <Member Name="SetValue(System.Object,System.Object,System.Object[])" />
+      <Member Name="SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo)" />
+
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="CanRead" />
+      <Member MemberType="Property" Name="CanWrite" />
+      <Member MemberType="Property" Name="GetMethod" />
+      <Member MemberType="Property" Name="SetMethod" />      
+      <Member MemberType="Property" Name="IsSpecialName" />
+      <Member MemberType="Property" Name="MemberType" />
+      <Member MemberType="Property" Name="PropertyType" />
+    </Type>
+    <Type Name="System.Reflection.TargetException" >
+         <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+       </Type>
+    <Type Name="System.Reflection.TargetInvocationException">
+      <Member Name="#ctor(System.Exception)" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Reflection.TargetParameterCountException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Reflection.TypeAttributes">
+      <Member MemberType="Field" Name="Abstract" />
+      <Member MemberType="Field" Name="AnsiClass" />
+      <Member MemberType="Field" Name="AutoClass" />
+      <Member MemberType="Field" Name="AutoLayout" />
+      <Member MemberType="Field" Name="BeforeFieldInit" />
+      <Member MemberType="Field" Name="Class" />
+      <Member MemberType="Field" Name="ClassSemanticsMask" />
+      <Member MemberType="Field" Name="ExplicitLayout" />
+      <Member MemberType="Field" Name="HasSecurity" />
+      <Member MemberType="Field" Name="Import" />
+      <Member MemberType="Field" Name="Interface" />
+      <Member MemberType="Field" Name="LayoutMask" />
+      <Member MemberType="Field" Name="NestedAssembly" />
+      <Member MemberType="Field" Name="NestedFamANDAssem" />
+      <Member MemberType="Field" Name="NestedFamily" />
+      <Member MemberType="Field" Name="NestedFamORAssem" />
+      <Member MemberType="Field" Name="NestedPrivate" />
+      <Member MemberType="Field" Name="NestedPublic" />
+      <Member MemberType="Field" Name="NotPublic" />
+      <Member MemberType="Field" Name="Public" />
+      <Member MemberType="Field" Name="ReservedMask" />
+      <Member MemberType="Field" Name="RTSpecialName" />
+      <Member MemberType="Field" Name="Sealed" />
+      <Member MemberType="Field" Name="SequentialLayout" />
+      <Member MemberType="Field" Name="Serializable" />
+      <Member MemberType="Field" Name="SpecialName" />
+      <Member MemberType="Field" Name="StringFormatMask" />
+      <Member MemberType="Field" Name="UnicodeClass" />
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="VisibilityMask" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Reflection.TypeDelegator">
+        <Member Name="#ctor" />
+        <Member Name="#ctor(System.Type)" />
+        <Member Name="get_MetadataToken" />
+        <Member MemberType="Property" Name="MetadataToken" />
+    </Type>
+    <Type Name="System.Resources.MissingManifestResourceException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Resources.NeutralResourcesLanguageAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Resources.UltimateResourceFallbackLocation)" />
+      <Member Name="get_CultureName" />
+      <Member MemberType="Property" Name="CultureName" />
+      <Member Name="get_Location" />
+      <Member MemberType="Property" Name="Location" />
+    </Type>
+    <Type Name="System.Resources.ResourceManager">
+      <Member MemberType="Field" Name="BaseNameField" />
+      <Member MemberType="Field" Name="HeaderVersionNumber" />
+      <Member MemberType="Field" Name="MagicNumber" />
+      <Member MemberType="Field" Name="MainAssembly" />
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String,System.Reflection.Assembly)" />
+      <Member Name="#ctor(System.String,System.Reflection.Assembly,System.Type)" />
+      <Member Name="#ctor(System.Type)" />
+      <Member Name="get_BaseName" />
+      <Member Name="get_IgnoreCase" />
+      <Member Name="get_ResourceSetType" />
+      <Member Name="GetNeutralResourcesLanguage(System.Reflection.Assembly)" />
+      <Member Name="GetObject(System.String)" />
+      <Member Name="GetObject(System.String,System.Globalization.CultureInfo)" />
+      <Member Name="GetResourceFileName(System.Globalization.CultureInfo)" />
+      <Member Name="GetResourceSet(System.Globalization.CultureInfo,System.Boolean,System.Boolean)" />
+      <Member Name="GetSatelliteContractVersion(System.Reflection.Assembly)" />
+      <Member Name="GetStream(System.String)" />
+      <Member Name="GetStream(System.String,System.Globalization.CultureInfo)" />        
+      <Member Name="GetString(System.String)" />
+      <Member Name="GetString(System.String,System.Globalization.CultureInfo)" />
+      <Member Name="InternalGetResourceSet(System.Globalization.CultureInfo,System.Boolean,System.Boolean)" />
+      <Member Name="ReleaseAllResources" />
+      <Member Name="set_IgnoreCase(System.Boolean)" />
+      <Member MemberType="Property" Name="BaseName" />
+      <Member MemberType="Property" Name="IgnoreCase" />
+      <Member MemberType="Property" Name="ResourceSetType" />
+    </Type>
+    <Type Name="System.Resources.ResourceSet">
+      <Member MemberType="Field" Name="Reader" />
+      <Member MemberType="Field" Name="Table" />
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.IO.Stream)" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="Close" />
+      <Member Name="Dispose" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="GetDefaultReader" />
+      <Member Name="GetEnumerator" />
+      <Member Name="GetObject(System.String)" />
+      <Member Name="GetObject(System.String,System.Boolean)" />
+      <Member Name="GetString(System.String)" />
+      <Member Name="GetString(System.String,System.Boolean)" />
+      <Member Name="ReadResources" />
+    </Type>
+    <Type Name="System.Resources.SatelliteContractVersionAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Version" />
+      <Member MemberType="Property" Name="Version" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.AccessedThroughPropertyAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_PropertyName" />
+      <Member MemberType="Property" Name="PropertyName" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.CompilationRelaxations">
+      <Member MemberType="Field" Name="NoStringInterning" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.CompilationRelaxationsAttribute">
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="#ctor(System.Runtime.CompilerServices.CompilationRelaxations)" />
+      <Member MemberType="Property" Name="CompilationRelaxations" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.CallConvCdecl" /> <!-- for MC++ -->
+    <Type Name="System.Runtime.CompilerServices.CallConvStdcall" /> <!-- for MC++ -->
+    <Type Name="System.Runtime.CompilerServices.CallConvThiscall" /> <!-- for MC++ -->
+    <Type Name="System.Runtime.CompilerServices.CallConvFastcall" /> <!-- for MC++ -->
+    <Type Name="System.Runtime.CompilerServices.CompilerMarshalOverride" />
+    <Type Name="System.Runtime.CompilerServices.CustomConstantAttribute">
+      <Member Name="#ctor" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <!-- If we do a Silverlight 6 release, this ContractHelper should be public in Silverlight. Tools may be able to work without it, but it helps if it's there. -->
+    <Type Name="System.Runtime.CompilerServices.ContractHelper">
+      <Member Name="RaiseContractFailedEvent(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.Exception)" />
+      <Member Name="TriggerFailure(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.DateTimeConstantAttribute">
+      <Member Name="#ctor(System.Int64)" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.DecimalConstantAttribute">
+      <Member Name="#ctor(System.Byte,System.Byte,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Byte,System.Byte,System.UInt32,System.UInt32,System.UInt32)" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.DisablePrivateReflectionAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.ExtensionAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.FixedBufferAttribute">
+      <Member Name="#ctor(System.Type,System.Int32)" />
+      <Member Name="get_ElementType" />
+      <Member Name="get_Length" />
+      <Member MemberType="Property" Name="ElementType" />
+      <Member MemberType="Property" Name="Length" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.FixedAddressValueTypeAttribute">
+      <Member Name="#ctor" /> 
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.FormattableStringFactory">
+      <Member Name="Create(System.String,System.Object[])" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.CompilerServices.FriendAccessAllowedAttribute" />
+    <Type Name="System.Runtime.CompilerServices.IndexerNameAttribute">
+      <Member Name="#ctor(System.String)" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.InternalsVisibleToAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_AssemblyName" />
+      <Member MemberType="Property" Name="AllInternalsVisible" />
+      <Member MemberType="Property" Name="AssemblyName" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.CompilerServices.JitHelpers">
+      <Member Status="ImplRoot" Name="UnsafeEnumCastLong&lt;T&gt;(T)" />
+      <Member Status="ImplRoot" Name="UnsafeEnumCastLongInternal&lt;T&gt;(T)" Condition="DEBUG" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.SpecialNameAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.UnsafeValueTypeAttribute"> <!-- C# 3.0 compiler requires this type -->
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.SuppressMergeCheckAttribute"> <!-- for MC++ -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.RequiredAttributeAttribute"> <!-- for MC++ -->
+      <Member Name="#ctor(System.Type)" />
+      <Member Name="get_RequiredContract" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IsBoxed"> <!-- for MC++ -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IsByValue"> <!-- for MC++ -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IsConst"> <!-- for MC++ -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IsCopyConstructed"> <!-- for MC++ -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.ICastable"> 
+      <Member Name="IsInstanceOfInterface(System.RuntimeTypeHandle,System.Exception@)" /> <!-- EE -->
+      <Member Name="GetImplType(System.RuntimeTypeHandle)" /> <!-- EE -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IsExplicitlyDereferenced"> <!-- for MC++ -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IsImplicitlyDereferenced">  <!-- for MC++ -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IsLong">  <!-- for MC++ -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IsJitIntrinsic">  <!-- for MC++ -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IsSignUnspecifiedByte">  <!-- for MC++ -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IsUdtReturn">  <!-- for MC++ -->
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.NativeCppClassAttribute">  <!-- for MC++ -->
+      <Member Name="#ctor" /> 
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IsVolatile" />  <!-- for MC++ -->
+    <Type Name="System.Runtime.CompilerServices.MethodCodeType">
+      <Member MemberType="Field" Name="IL" />
+      <Member MemberType="Field" Name="Native" />
+      <Member MemberType="Field" Name="OPTIL" />
+      <Member MemberType="Field" Name="Runtime" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.MethodImplAttribute">
+      <Member MemberType="Field" Name="MethodCodeType" />
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Int16)" />
+      <Member Name="#ctor(System.Runtime.CompilerServices.MethodImplOptions)" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Value" />
+      <Member Status="ImplRoot" Name="#ctor(System.Reflection.MethodImplAttributes)" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.MethodImplOptions">
+      <Member MemberType="Field" Name="AggressiveInlining" />
+      <Member MemberType="Field" Name="ForwardRef" />
+      <Member MemberType="Field" Name="InternalCall" />
+      <Member MemberType="Field" Name="NoInlining" />
+      <Member MemberType="Field" Name="PreserveSig" />
+      <Member MemberType="Field" Name="Synchronized" />
+      <Member MemberType="Field" Name="Unmanaged" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.RuntimeHelpers">
+      <Member Name="EnsureSufficientExecutionStack" />
+      <Member Name="get_OffsetToStringData" />
+      <Member Name="GetObjectValue(System.Object)" />
+      <Member Name="InitializeArray(System.Array,System.RuntimeFieldHandle)" />
+      <Member Name="GetHashCode(System.Object)" />
+      <Member Name="RunClassConstructor(System.RuntimeTypeHandle)" />
+      <Member MemberType="Property" Name="OffsetToStringData" />
+      <Member Status="ImplRoot" Name="ExecuteBackoutCodeHelper(System.Object,System.Object,System.Boolean)" />
+      <Member Status="ImplRoot" Name="PrepareConstrainedRegionsNoOP" />
+      <Member Status="ImplRoot" Name="PrepareConstrainedRegions" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.ConditionalWeakTable&lt;TKey,TValue&gt;">
+      <Member Name="#ctor" />
+      <Member Name="Add(TKey,TValue)" />
+      <Member Name="Remove(TKey)" />
+      <Member Name="TryGetValue(TKey,TValue@)" />
+      <Member Name="GetValue(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback)" />
+      <Member Name="GetOrCreateValue(TKey)" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.ConditionalWeakTable&lt;TKey,TValue&gt;+CreateValueCallback">
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.ReferenceAssemblyAttribute">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member MemberType="Property" Name="Description" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.TypeForwardedToAttribute">
+      <Member Name="#ctor(System.Type)" />
+      <Member MemberType="Property" Name="Destination" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.TypeForwardedFromAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member MemberType="Property" Name="AssemblyFullName" />
+    </Type>
+    <!-- #if FEATURE_CORRUPTING_EXCEPTIONS -->
+    <Type Name="System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <!-- #endif FEATURE_CORRUPTING_EXCEPTIONS -->
+    <!-- #if FEATURE_EXCEPTIONDISPATCHINFO -->
+    <Type Status="ApiRoot" Name="System.Runtime.ExceptionServices.ExceptionDispatchInfo">
+      <Member Status="ApiRoot" Name="Capture(System.Exception)" />
+      <Member Status="ApiRoot" Name="Throw" />
+      <Member Name="get_SourceException" />
+      <Member MemberType="Property" Name="SourceException" />
+    </Type>
+    <!-- #endif FEATURE_EXCEPTIONDISPATCHINFO -->
+    <Type Name="System.Runtime.GCLatencyMode">
+      <Member MemberType="Field" Name="Batch" />
+      <Member MemberType="Field" Name="Interactive" />
+      <Member MemberType="Field" Name="LowLatency" />
+      <Member MemberType="Field" Name="SustainedLowLatency" />
+    </Type>
+    <Type Name="System.Runtime.GCSettings">
+      <Member Name="get_IsServerGC" />
+      <Member Name="get_LargeObjectHeapCompactionMode" />
+      <Member Name="set_LargeObjectHeapCompactionMode(System.Runtime.GCLargeObjectHeapCompactionMode)" />
+      <Member Name="get_LatencyMode" />
+      <Member Name="set_LatencyMode(System.Runtime.GCLatencyMode)" />
+      <Member MemberType="Property" Name="IsServerGC" />
+      <Member MemberType="Property" Name="LargeObjectHeapCompactionMode" />
+      <Member MemberType="Property" Name="LatencyMode" />
+    </Type>
+    <Type Name="System.Runtime.GCLargeObjectHeapCompactionMode">
+      <Member MemberType="Field" Name="Default" />
+      <Member MemberType="Field" Name="CompactOnce" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.BStrWrapper">
+      <Member Name="#ctor(System.Object)" />
+      <Member Name="#ctor(System.String)" />
+      <Member MemberType="Property" Name="WrappedObject" />
+      <Member Name="get_WrappedObject" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.CurrencyWrapper">
+      <Member Name="#ctor(System.Decimal)" />
+      <Member Name="#ctor(System.Object)" />
+      <Member Name="get_WrappedObject" />
+      <Member MemberType="Property" Name="WrappedObject" />  
+    </Type>
+    <Type Name="System.Runtime.InteropServices.DispatchWrapper">
+      <Member Name="#ctor(System.Object)" />
+      <Member Name="get_WrappedObject" />
+      <Member MemberType="Property" Name="WrappedObject" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.UnknownWrapper">
+      <Member Name="#ctor(System.Object)" />
+      <Member MemberType="Property" Name="WrappedObject" />
+      <Member Name="get_WrappedObject" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.VariantWrapper">
+      <Member Name="#ctor(System.Object)" />
+      <Member MemberType="Property" Name="WrappedObject" />
+      <Member Name="get_WrappedObject" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ErrorWrapper">
+      <Member Name="#ctor(System.Exception)" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="#ctor(System.Object)" />
+      <Member MemberType="Property" Name="ErrorCode" />
+      <Member Name="get_ErrorCode" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.LCIDConversionAttribute" Condition="FEATURE_COMINTEROP" />
+    <Type Name="System.Runtime.InteropServices.CallingConvention">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="Winapi" />
+      <Member MemberType="Field" Name="Cdecl" />
+      <Member MemberType="Field" Name="StdCall" />
+      <Member MemberType="Field" Name="ThisCall" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.CharSet">
+      <Member MemberType="Field" Name="Auto" />
+      <Member MemberType="Field" Name="Unicode" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ClassInterfaceAttribute"> <!-- for VB -->
+      <Member Name="#ctor(System.Int16)" />
+      <Member Name="#ctor(System.Runtime.InteropServices.ClassInterfaceType)" />
+      <Member MemberType="Property" Name="Value" />
+      <Member Name="get_Value" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ClassInterfaceType"> <!-- for VB -->
+      <Member MemberType="Field" Name="AutoDispatch" />
+      <Member MemberType="Field" Name="AutoDual" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.CoClassAttribute"> <!-- MC++ compiler asserts for no particularly good reason if this type is not public -->
+      <Member Name="#ctor(System.Type)" />
+      <Member MemberType="Property" Name="CoClass" />
+      <Member Name="get_CoClass" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComDefaultInterfaceAttribute">
+      <Member Name="#ctor(System.Type)" />
+      <Member MemberType="Property" Name="Value" />
+      <Member Name="get_Value" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.COMException">
+      <Member Name="#ctor(System.String,System.Int32)" />
+      <Member Name="ToString" />
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComImportAttribute"> <!-- MC++ compiler asserts for no particularly good reason if this type is not public -->
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComInterfaceType">
+      <Member MemberType="Field" Name="InterfaceIsDual" />
+      <Member MemberType="Field" Name="InterfaceIsIUnknown" />
+      <Member MemberType="Field" Name="InterfaceIsIDispatch" />
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="InterfaceIsIInspectable" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.FILETIME">
+      <Member MemberType="Field" Name="dwHighDateTime" />
+      <Member MemberType="Field" Name="dwLowDateTime" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.STATSTG">
+      <Member MemberType="Field" Name="atime" />
+      <Member MemberType="Field" Name="cbSize" />
+      <Member MemberType="Field" Name="clsid" />
+      <Member MemberType="Field" Name="ctime" />
+      <Member MemberType="Field" Name="grfLocksSupported" />
+      <Member MemberType="Field" Name="grfMode" />
+      <Member MemberType="Field" Name="grfStateBits" />
+      <Member MemberType="Field" Name="mtime" />
+      <Member MemberType="Field" Name="pwcsName" />
+      <Member MemberType="Field" Name="reserved" />
+      <Member MemberType="Field" Name="type" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IStream">
+      <Member Name="Read(System.Byte[],System.Int32,System.IntPtr)" />
+      <Member Name="Write(System.Byte[],System.Int32,System.IntPtr)" />
+      <Member Name="Seek(System.Int64,System.Int32,System.IntPtr)" />
+      <Member Name="SetSize(System.Int64)" />
+      <Member Name="CopyTo(System.Runtime.InteropServices.ComTypes.IStream,System.Int64,System.IntPtr,System.IntPtr)" />
+      <Member Name="Commit(System.Int32)" />
+      <Member Name="Revert" />
+      <Member Name="LockRegion(System.Int64,System.Int64,System.Int32)" />
+      <Member Name="UnlockRegion(System.Int64,System.Int64,System.Int32)" />
+      <Member Name="Stat(System.Runtime.InteropServices.ComTypes.STATSTG@,System.Int32)" />
+      <Member Name="Clone(System.Runtime.InteropServices.ComTypes.IStream@)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.DefaultCharSetAttribute"> <!-- MC++ compiler asserts for no particularly good reason if this type is not public -->
+      <Member Name="#ctor(System.Runtime.InteropServices.CharSet)" />
+      <Member MemberType="Property" Name="CharSet" />
+      <Member Name="get_CharSet" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.DispIdAttribute">
+      <Member Name="#ctor(System.Int32)" />
+      <Member MemberType="Property" Name="Value" />
+      <Member Name="get_Value" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.DllImportAttribute">
+      <Member MemberType="Field" Name="CallingConvention" />
+      <Member MemberType="Field" Name="CharSet" />
+      <Member MemberType="Field" Name="EntryPoint" />
+      <Member MemberType="Field" Name="PreserveSig" />
+      <Member MemberType="Field" Name="SetLastError" />
+      <Member MemberType="Field" Name="BestFitMapping" />       <!-- forced by desktop implementation -->
+      <Member MemberType="Field" Name="ExactSpelling" />        <!-- forced by desktop implementation -->
+      <!-- <Member MemberType="Field" Name="ThrowOnUnmappableChar" /><!- - forced by desktop implementation -->
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Value" />
+      <Member MemberType="Field" Name="ThrowOnUnmappableChar" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ExternalException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="get_ErrorCode" />
+      <Member MemberType="Property" Name="ErrorCode" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.FieldOffsetAttribute">
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.GCHandle">
+      <Member Name="AddrOfPinnedObject" />
+      <Member Name="Alloc(System.Object)" />
+      <Member Name="Alloc(System.Object,System.Runtime.InteropServices.GCHandleType)" />
+      <Member Name="Free" />
+      <Member Name="FromIntPtr(System.IntPtr)" />
+      <Member Name="get_IsAllocated" />
+      <Member Name="get_Target" />      
+      <Member Name="op_Explicit(System.IntPtr)" ReturnType="System.Runtime.InteropServices.GCHandle" />
+      <Member Name="op_Explicit(System.Runtime.InteropServices.GCHandle)" ReturnType="System.IntPtr" />
+      <Member Name="set_Target(System.Object)" />
+      <Member Name="ToIntPtr(System.Runtime.InteropServices.GCHandle)" />
+      <Member MemberType="Property" Name="IsAllocated" />
+      <Member MemberType="Property" Name="Target" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Runtime.InteropServices.GCHandle,System.Runtime.InteropServices.GCHandle)" />
+      <Member Name="op_Inequality(System.Runtime.InteropServices.GCHandle,System.Runtime.InteropServices.GCHandle)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.GCHandleType">
+      <Member MemberType="Field" Name="Normal" />
+      <Member MemberType="Field" Name="Pinned" />
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="Weak" />
+      <Member MemberType="Field" Name="WeakTrackResurrection" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.GuidAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member MemberType="Property" Name="Value" />
+      <Member Name="get_Value" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ICustomQueryInterface">
+      <Member Name="GetInterface(System.Guid@,System.IntPtr@)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.InAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.InterfaceTypeAttribute">
+      <Member Name="#ctor(System.Runtime.InteropServices.ComInterfaceType)" />
+      <Member Name="#ctor(System.Int16)" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.InvalidComObjectException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.SafeArrayRankMismatchException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.SafeArrayTypeMismatchException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.LayoutKind">
+      <Member MemberType="Field" Name="Auto" />
+      <Member MemberType="Field" Name="Explicit" />
+      <Member MemberType="Field" Name="Sequential" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.NativeCallableAttribute"> 
+      <Member Name="#ctor" />
+      <Member MemberType="Field" Name="CallingConvention" /> <!-- EE -->
+      <Member MemberType="Field" Name="EntryPoint" /> <!-- EE -->
+    </Type>
+    <Type Name="System.Runtime.InteropServices.Marshal">
+      <Member MemberType="Field" Name="SystemDefaultCharSize" />
+      <Member Name="AddRef(System.IntPtr)" />
+      <Member Name="AllocHGlobal(System.Int32)" />
+      <Member Name="AllocCoTaskMem(System.Int32)" />
+      <Member Name="Copy(System.Byte[],System.Int32,System.IntPtr,System.Int32)" />
+      <Member Name="Copy(System.Char[],System.Int32,System.IntPtr,System.Int32)" />
+      <Member Name="Copy(System.Double[],System.Int32,System.IntPtr,System.Int32)" />
+      <Member Name="Copy(System.Int16[],System.Int32,System.IntPtr,System.Int32)" />
+      <Member Name="Copy(System.Int32[],System.Int32,System.IntPtr,System.Int32)" />
+      <Member Name="Copy(System.Int64[],System.Int32,System.IntPtr,System.Int32)" />
+      <Member Name="Copy(System.IntPtr,System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="Copy(System.IntPtr,System.Char[],System.Int32,System.Int32)" />
+      <Member Name="Copy(System.IntPtr,System.Double[],System.Int32,System.Int32)" />
+      <Member Name="Copy(System.IntPtr,System.Int16[],System.Int32,System.Int32)" />
+      <Member Name="Copy(System.IntPtr,System.Int32[],System.Int32,System.Int32)" />
+      <Member Name="Copy(System.IntPtr,System.Int64[],System.Int32,System.Int32)" />
+      <Member Name="Copy(System.IntPtr,System.Single[],System.Int32,System.Int32)" />
+      <Member Name="Copy(System.Single[],System.Int32,System.IntPtr,System.Int32)" />
+      <Member Name="FinalReleaseComObject(System.Object)" />
+      <Member Name="FreeHGlobal(System.IntPtr)" />
+      <Member Name="FreeCoTaskMem(System.IntPtr)" />
+      <Member Name="GetComInterfaceForObject(System.Object,System.Type)" />
+      <Member Name="GetComInterfaceForObject(System.Object,System.Type,System.Runtime.InteropServices.CustomQueryInterfaceMode)" />
+      <Member Name="GetDelegateForFunctionPointer(System.IntPtr,System.Type)" />
+      <Member Name="GetExceptionForHR(System.Int32)" />
+      <Member Name="GetExceptionForHR(System.Int32,System.IntPtr)" />
+      <Member Name="GetFunctionPointerForDelegate(System.Delegate)" />
+      <Member Name="GetHRForException(System.Exception)" />
+      <Member Name="GetIUnknownForObject(System.Object)" />
+      <Member Name="GetLastWin32Error" />
+      <Member Name="GetHRForLastWin32Error" />
+      <Member Name="GetNativeVariantForObject(System.Object,System.IntPtr)" />
+      <Member Name="GetObjectForIUnknown(System.IntPtr)" />
+      <Member Name="GetObjectForNativeVariant(System.IntPtr)" />
+      <Member Name="GetUniqueObjectForIUnknown(System.IntPtr)" />
+      <Member Name="InitializeManagedWinRTFactoryObject(System.Object,System.RuntimeType)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="IsComObject(System.Object)" />
+      <Member Name="OffsetOf(System.Type,System.String)" />
+      <Member Name="Prelink(System.Reflection.MethodInfo)" />
+      <Member Name="PrelinkAll(System.Type)" />
+      <Member Name="PtrToStringAnsi(System.IntPtr)" />
+      <Member Name="PtrToStringAnsi(System.IntPtr,System.Int32)" />
+      <Member Name="PtrToStringUni(System.IntPtr)" />
+      <Member Name="PtrToStringUni(System.IntPtr,System.Int32)" />
+      <Member Name="PtrToStructure(System.IntPtr,System.Object)" />
+      <Member Name="PtrToStructure(System.IntPtr,System.Type)" />
+      <Member Name="QueryInterface(System.IntPtr,System.Guid@,System.IntPtr@)" />
+      <Member Name="ReadByte(System.IntPtr)" />
+      <Member Name="ReadByte(System.IntPtr,System.Int32)" />
+      <Member Name="ReadInt16(System.IntPtr)" />
+      <Member Name="ReadInt16(System.IntPtr,System.Int32)" />
+      <Member Name="ReadInt32(System.IntPtr)" />
+      <Member Name="ReadInt32(System.IntPtr,System.Int32)" />
+      <Member Name="ReadInt64(System.IntPtr)" />
+      <Member Name="ReadInt64(System.IntPtr,System.Int32)" />
+      <Member Name="ReadIntPtr(System.IntPtr)" />
+      <Member Name="ReadIntPtr(System.IntPtr,System.Int32)" />
+      <Member Name="Release(System.IntPtr)" />
+      <Member Name="ReleaseComObject(System.Object)" />
+      <Member Name="SetLastWin32Error(System.Int32)" />
+      <Member Name="SizeOf(System.Object)" />
+      <Member Name="SizeOf(System.Type)" />            
+      <Member Name="StructureToPtr(System.Object,System.IntPtr,System.Boolean)" />
+      <Member Name="ThrowExceptionForHR(System.Int32)" />
+      <Member Name="ThrowExceptionForHR(System.Int32,System.IntPtr)" />
+      <Member Name="UnsafeAddrOfPinnedArrayElement(System.Array,System.Int32)" />
+      <Member Name="WriteByte(System.IntPtr,System.Byte)" />
+      <Member Name="WriteByte(System.IntPtr,System.Int32,System.Byte)" />
+      <Member Name="WriteInt16(System.IntPtr,System.Char)" />      
+      <Member Name="WriteInt16(System.IntPtr,System.Int16)" />
+      <Member Name="WriteInt16(System.IntPtr,System.Int32,System.Char)" />      
+      <Member Name="WriteInt16(System.IntPtr,System.Int32,System.Int16)" />
+      <Member Name="WriteInt32(System.IntPtr,System.Int32)" />
+      <Member Name="WriteInt32(System.IntPtr,System.Int32,System.Int32)" />
+      <Member Name="WriteInt64(System.IntPtr,System.Int32,System.Int64)" />
+      <Member Name="WriteInt64(System.IntPtr,System.Int64)" />            
+      <Member Name="WriteIntPtr(System.IntPtr,System.Int32,System.IntPtr)" />
+      <Member Name="WriteIntPtr(System.IntPtr,System.IntPtr)" />      
+      <Member Name="ZeroFreeCoTaskMemUnicode(System.IntPtr)" />
+      <Member Status="ImplRoot" Name="InitializeWrapperForWinRT(System.Object,System.IntPtr@)" Condition="FEATURE_COMINTEROP" />
+      <Member Status="ImplRoot" Name="LoadLicenseManager" Condition="FEATURE_COMINTEROP" /><Member MemberType="Field" Name="SystemMaxDBCSCharSize" />
+      <Member Name="AllocHGlobal(System.IntPtr)" />
+      <Member Name="AreComObjectsAvailableForCleanup" />
+      <Member Name="Copy(System.IntPtr,System.IntPtr[],System.Int32,System.Int32)" />
+      <Member Name="Copy(System.IntPtr[],System.Int32,System.IntPtr,System.Int32)" />
+      <Member Name="CreateAggregatedObject(System.IntPtr,System.Object)" />
+      <Member Name="CreateAggregatedObject&lt;T&gt;(System.IntPtr,T)" />
+      <Member Name="CreateWrapperOfType(System.Object,System.Type)" />
+      <Member Name="CreateWrapperOfType&lt;T,TWrapper&gt;(T)" />
+      <Member Name="DestroyStructure(System.IntPtr,System.Type)" />
+      <Member Name="DestroyStructure&lt;T&gt;(System.IntPtr)" />
+      <Member Name="FreeBSTR(System.IntPtr)" />
+      <Member Name="GetComInterfaceForObject&lt;T,TInterface&gt;(T)" />
+      <Member Name="GetDelegateForFunctionPointer&lt;TDelegate&gt;(System.IntPtr)" />
+      <Member Name="GetExceptionCode" />
+      <Member Name="GetFunctionPointerForDelegate&lt;TDelegate&gt;(TDelegate)" />
+      <Member Name="GetNativeVariantForObject&lt;T&gt;(T,System.IntPtr)" />
+      <Member Name="GetObjectForNativeVariant&lt;T&gt;(System.IntPtr)" />
+      <Member Name="GetObjectsForNativeVariants(System.IntPtr,System.Int32)" />
+      <Member Name="GetObjectsForNativeVariants&lt;T&gt;(System.IntPtr,System.Int32)" />
+      <Member Name="GetStartComSlot(System.Type)" />
+      <Member Name="GetTypeFromCLSID(System.Guid)" />
+      <Member Name="GetTypeInfoName(System.Runtime.InteropServices.ComTypes.ITypeInfo)" />
+      <Member Name="OffsetOf&lt;T&gt;(System.String)" />
+      <Member Name="PtrToStringBSTR(System.IntPtr)" />
+      <Member Name="PtrToStructure&lt;T&gt;(System.IntPtr)" />
+      <Member Name="PtrToStructure&lt;T&gt;(System.IntPtr,T)" />
+      <Member Name="ReadByte(System.Object,System.Int32)" />
+      <Member Name="ReadInt16(System.Object,System.Int32)" />
+      <Member Name="ReadInt32(System.Object,System.Int32)" />
+      <Member Name="ReadInt64(System.Object,System.Int32)" />
+      <Member Name="ReadIntPtr(System.Object,System.Int32)" />
+      <Member Name="ReAllocCoTaskMem(System.IntPtr,System.Int32)" />
+      <Member Name="ReAllocHGlobal(System.IntPtr,System.IntPtr)" />
+      <Member Name="SizeOf&lt;T&gt;" />
+      <Member Name="SizeOf&lt;T&gt;(T)" />
+      <Member Name="StringToBSTR(System.String)" />
+      <Member Name="StringToCoTaskMemAnsi(System.String)" />
+      <Member Name="StringToCoTaskMemUni(System.String)" />
+      <Member Name="StringToHGlobalAnsi(System.String)" />
+      <Member Name="StringToHGlobalUni(System.String)" />
+      <Member Name="StructureToPtr&lt;T&gt;(T,System.IntPtr,System.Boolean)" />
+      <Member Name="UnsafeAddrOfPinnedArrayElement&lt;T&gt;(T[],System.Int32)" />
+      <Member Name="WriteByte(System.Object,System.Int32,System.Byte)" />
+      <Member Name="WriteInt16(System.Object,System.Int32,System.Char)" />
+      <Member Name="WriteInt16(System.Object,System.Int32,System.Int16)" />
+      <Member Name="WriteInt32(System.Object,System.Int32,System.Int32)" />
+      <Member Name="WriteInt64(System.Object,System.Int32,System.Int64)" />
+      <Member Name="WriteIntPtr(System.Object,System.Int32,System.IntPtr)" />
+      <Member Name="ZeroFreeBSTR(System.IntPtr)" />
+      <Member Name="ZeroFreeCoTaskMemAnsi(System.IntPtr)" />
+      <Member Name="ZeroFreeGlobalAllocAnsi(System.IntPtr)" />
+      <Member Name="ZeroFreeGlobalAllocUnicode(System.IntPtr)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.MarshalAsAttribute">
+      <Member MemberType="Field" Name="ArraySubType" />
+      <Member MemberType="Field" Name="MarshalCookie" />
+      <Member MemberType="Field" Name="MarshalType" />
+      <Member MemberType="Field" Name="MarshalTypeRef" />
+      <Member MemberType="Field" Name="SizeConst" />
+      <Member MemberType="Field" Name="SizeParamIndex" />
+      <Member Name="#ctor(System.Int16)" />
+      <Member Name="#ctor(System.Runtime.InteropServices.UnmanagedType)" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Value" />
+      <Member MemberType="Field" Name="IidParameterIndex" />
+      <Member MemberType="Field" Name="SafeArraySubType" />
+      <Member MemberType="Field" Name="SafeArrayUserDefinedSubType" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.MarshalDirectiveException" >
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.OptionalAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.OutAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.PreserveSigAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.RuntimeEnvironment">
+       <Member Name="GetRuntimeDirectory" /> <!-- For use in the Framework, but not public in Win8P reference assemblies. -->
+    </Type>
+    <Type Name="System.Runtime.InteropServices.SafeHandle">
+      <Member MemberType="Field" Name="handle" />
+      <Member Name="#ctor(System.IntPtr,System.Boolean)" />
+      <Member Name="#ctor" />
+      <Member Name="Close" />
+      <Member Name="DangerousAddRef(System.Boolean@)" />
+      <Member Name="DangerousGetHandle" />
+      <Member Name="DangerousRelease" />
+      <Member Name="Dispose" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Finalize" />
+      <Member Name="get_IsClosed" />
+      <Member Name="get_IsInvalid" />
+      <Member Name="ReleaseHandle" />
+      <Member Name="SetHandle(System.IntPtr)" />
+      <Member Name="SetHandleAsInvalid" />
+      <Member MemberType="Property" Name="IsClosed" />
+      <Member MemberType="Property" Name="IsInvalid" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.CriticalHandle">
+      <Member MemberType="Field" Name="handle" />
+      <Member MemberType="Field" Name="_stackTrace" Flavor="chk,dbg" />
+      <Member Name="#ctor(System.IntPtr)" />
+      <Member Name="#ctor" />
+      <Member Name="Close" />
+      <Member Name="Dispose" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Finalize" />
+      <Member Name="get_IsClosed" />
+      <Member Name="get_IsInvalid" />
+      <Member Name="ReleaseHandle" />
+      <Member Name="SetHandle(System.IntPtr)" />
+      <Member Name="SetHandleAsInvalid" />
+      <Member MemberType="Property" Name="IsClosed" />
+      <Member MemberType="Property" Name="IsInvalid" />
+    </Type>
+    <Type Name="Microsoft.Win32.SafeHandles.SafeWaitHandle">
+      <Member Name="#ctor(System.IntPtr,System.Boolean)" />
+      <Member Status="ApiRoot" Name="ReleaseHandle" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.SEHException" >
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="CanResume" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.StructLayoutAttribute">
+      <Member MemberType="Field" Name="CharSet" />
+      <Member MemberType="Field" Name="Size" />
+      <Member Name="#ctor(System.Runtime.InteropServices.LayoutKind)" />
+      <Member MemberType="Field" Name="Pack" /> <!-- forced by desktop implementation -->
+      <Member Status="ImplRoot" Name="#ctor(System.Int16)" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute">
+      <Member Name="#ctor(System.Runtime.InteropServices.CallingConvention)" />
+      <Member MemberType="Property" Name="CallingConvention" />
+      <Member Name="get_CallingConvention" />
+      <Member MemberType="Field" Name="BestFitMapping" />
+      <Member MemberType="Field" Name="CharSet" />
+      <Member MemberType="Field" Name="SetLastError" />
+      <Member MemberType="Field" Name="ThrowOnUnmappableChar" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.UnmanagedType">
+      <Member MemberType="Field" Name="AnsiBStr" />
+      <Member MemberType="Field" Name="AsAny" />
+      <Member MemberType="Field" Name="Bool" />
+      <Member MemberType="Field" Name="BStr" />
+      <Member MemberType="Field" Name="ByValArray" />
+      <Member MemberType="Field" Name="ByValTStr" />
+      <Member MemberType="Field" Name="Currency" />
+      <Member MemberType="Field" Name="CustomMarshaler" />
+      <Member MemberType="Field" Name="Error" />
+      <Member MemberType="Field" Name="FunctionPtr" />
+      <Member MemberType="Field" Name="I1" />
+      <Member MemberType="Field" Name="I2" />
+      <Member MemberType="Field" Name="I4" />
+      <Member MemberType="Field" Name="I8" />
+      <Member MemberType="Field" Name="IDispatch" />
+      <Member MemberType="Field" Name="Interface" />
+      <Member MemberType="Field" Name="LPArray" />
+      <Member MemberType="Field" Name="LPStr" />
+      <Member MemberType="Field" Name="LPStruct" />
+      <Member MemberType="Field" Name="LPTStr" />
+      <Member MemberType="Field" Name="LPWStr" />
+      <Member MemberType="Field" Name="R4" />
+      <Member MemberType="Field" Name="R8" />
+      <Member MemberType="Field" Name="SafeArray" />
+      <Member MemberType="Field" Name="Struct" />
+      <Member MemberType="Field" Name="SysInt" />
+      <Member MemberType="Field" Name="SysUInt" />
+      <Member MemberType="Field" Name="TBStr" />
+      <Member MemberType="Field" Name="U1" />
+      <Member MemberType="Field" Name="U2" />
+      <Member MemberType="Field" Name="U4" />
+      <Member MemberType="Field" Name="U8" />
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="VariantBool" />
+      <Member MemberType="Field" Name="VBByRefStr" />
+      <Member MemberType="Field" Name="HString" />
+      <Member MemberType="Field" Name="IInspectable" />
+      <Member MemberType="Field" Name="IUnknown" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.Versioning.ComponentGuaranteesAttribute">
+      <Member Name="#ctor(System.Runtime.Versioning.ComponentGuaranteesOptions)" />
+      <Member MemberType="Property" Name="Guarantees" />
+    </Type>
+    <Type Name="System.Runtime.Versioning.ComponentGuaranteesOptions">
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="Exchange" />
+      <Member MemberType="Field" Name="Stable" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.RuntimeFieldHandle">
+      <Member Name="Equals(System.RuntimeFieldHandle)" />      
+      <Member Name="op_Equality(System.RuntimeFieldHandle,System.RuntimeFieldHandle)" />
+      <Member Name="op_Inequality(System.RuntimeFieldHandle,System.RuntimeFieldHandle)" />
+    </Type>
+    <Type Name="System.RuntimeMethodHandle">
+      <Member Name="Equals(System.RuntimeMethodHandle)" />
+      <Member Status="ImplRoot" Name="GetValueInternal(System.RuntimeMethodHandle)" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Value" />
+      <Member Name="op_Equality(System.RuntimeMethodHandle,System.RuntimeMethodHandle)" />
+      <Member Name="op_Inequality(System.RuntimeMethodHandle,System.RuntimeMethodHandle)" />
+    </Type>
+    <Type Name="System.SByte">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="CompareTo(System.SByte)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.SByte)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.SByte@)" />
+      <Member Name="TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.SByte@)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.Security.AllowPartiallyTrustedCallersAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Security.SecurityException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Security.SecurityState">
+      <Member Name="#ctor" />
+      <Member Name="IsStateAvailable" />
+      <Member Name="EnsureState" />
+   </Type>
+    <Type Name="System.Single">
+      <Member MemberType="Field" Name="Epsilon" />
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member MemberType="Field" Name="NaN" />
+      <Member MemberType="Field" Name="NegativeInfinity" />
+      <Member MemberType="Field" Name="PositiveInfinity" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="CompareTo(System.Single)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Single)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="IsInfinity(System.Single)" />
+      <Member Name="IsNaN(System.Single)" />
+      <Member Name="IsNegativeInfinity(System.Single)" />
+      <Member Name="IsPositiveInfinity(System.Single)" />
+      <Member Name="op_Equality(System.Single,System.Single)" />
+      <Member Name="op_GreaterThan(System.Single,System.Single)" />
+      <Member Name="op_GreaterThanOrEqual(System.Single,System.Single)" />
+      <Member Name="op_Inequality(System.Single,System.Single)" />
+      <Member Name="op_LessThan(System.Single,System.Single)" />
+      <Member Name="op_LessThanOrEqual(System.Single,System.Single)" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.Single@)" />
+      <Member Name="TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Single@)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.StackOverflowException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.STAThreadAttribute">
+        <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.String">
+      <Member Status="ImplRoot" MemberType="Field" Name="m_stringLength" />
+      <Member MemberType="Field" Name="Empty" />
+      <Member Name="#ctor(System.Char*)" />
+      <Member Name="#ctor(System.Char*,System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Char,System.Int32)" />
+      <Member Name="#ctor(System.Char[])" />
+      <Member Name="#ctor(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.SByte*)" />
+      <Member Name="Compare(System.String,System.Int32,System.String,System.Int32,System.Int32)" />
+      <Member Name="Compare(System.String,System.Int32,System.String,System.Int32,System.Int32,System.Globalization.CultureInfo,System.Globalization.CompareOptions)" />
+      <Member Name="Compare(System.String,System.Int32,System.String,System.Int32,System.Int32,System.StringComparison)" />
+      <Member Name="Compare(System.String,System.String)" />
+      <Member Name="Compare(System.String,System.String,System.Boolean)" />
+      <Member Name="Compare(System.String,System.String,System.Globalization.CultureInfo,System.Globalization.CompareOptions)" />
+      <Member Name="Compare(System.String,System.String,System.StringComparison)" />
+      <Member Name="CompareOrdinal(System.String,System.Int32,System.String,System.Int32,System.Int32)" />
+      <Member Name="CompareOrdinal(System.String,System.String)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="CompareTo(System.String)" />
+      <Member Name="Concat(System.Object)" />
+      <Member Name="Concat(System.Object,System.Object)" />
+      <Member Name="Concat(System.Object,System.Object,System.Object)" />
+      <Member Name="Concat(System.Object[])" />
+      <Member Name="Concat&lt;T&gt;(System.Collections.Generic.IEnumerable&lt;T&gt;)" />
+      <Member Name="Concat(System.Collections.Generic.IEnumerable&lt;System.String&gt;)" />
+      <Member Name="Concat(System.String,System.String)" />
+      <Member Name="Concat(System.String,System.String,System.String)" />
+      <Member Name="Concat(System.String,System.String,System.String,System.String)" />
+      <Member Name="Concat(System.String[])" />
+      <Member Name="Contains(System.String)" />
+      <Member Name="Copy(System.String)" />
+      <Member Name="CopyTo(System.Int32,System.Char[],System.Int32,System.Int32)" />
+      <Member Name="EndsWith(System.String)" />
+      <Member Name="EndsWith(System.String,System.StringComparison)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.String)" />
+      <Member Name="Equals(System.String,System.String)" />
+      <Member Name="Equals(System.String,System.String,System.StringComparison)" />
+      <Member Name="Equals(System.String,System.StringComparison)" />
+      <Member Name="Format(System.IFormatProvider,System.String,System.Object)" />
+      <Member Name="Format(System.IFormatProvider,System.String,System.Object,System.Object)" />
+      <Member Name="Format(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)" />
+      <Member Name="Format(System.IFormatProvider,System.String,System.Object[])" />
+      <Member Name="Format(System.String,System.Object)" />
+      <Member Name="Format(System.String,System.Object,System.Object)" />
+      <Member Name="Format(System.String,System.Object,System.Object,System.Object)" />
+      <Member Name="Format(System.String,System.Object[])" />
+      <Member Name="get_Chars(System.Int32)" />
+      <Member Name="get_Length" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="IndexOf(System.Char)" />
+      <Member Name="IndexOf(System.Char,System.Int32)" />
+      <Member Name="IndexOf(System.Char,System.Int32,System.Int32)" />
+      <Member Name="IndexOf(System.String)" />
+      <Member Name="IndexOf(System.String,System.Int32)" />
+      <Member Name="IndexOf(System.String,System.Int32,System.Int32)" />
+      <Member Name="IndexOf(System.String,System.Int32,System.Int32,System.StringComparison)" />
+      <Member Name="IndexOf(System.String,System.Int32,System.StringComparison)" />
+      <Member Name="IndexOf(System.String,System.StringComparison)" />
+      <Member Name="IndexOfAny(System.Char[])" />
+      <Member Name="IndexOfAny(System.Char[],System.Int32)" />
+      <Member Name="IndexOfAny(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="Insert(System.Int32,System.String)" />
+      <Member Name="Intern(System.String)" />
+      <Member Name="IsInterned(System.String)" />
+      <Member Name="IsNullOrEmpty(System.String)" />
+      <Member Name="IsNullOrWhiteSpace(System.String)" />
+      <Member Name="Join(System.String,System.Object[])" />
+      <Member Name="Join&lt;T&gt;(System.String,System.Collections.Generic.IEnumerable&lt;T&gt;)" />
+      <Member Name="Join(System.String,System.Collections.Generic.IEnumerable&lt;System.String&gt;)" />
+      <Member Name="Join(System.String,System.String[])" />
+      <Member Name="Join(System.String,System.String[],System.Int32,System.Int32)" />
+      <Member Name="LastIndexOf(System.Char)" />
+      <Member Name="LastIndexOf(System.Char,System.Int32)" />
+      <Member Name="LastIndexOf(System.Char,System.Int32,System.Int32)" />
+      <Member Name="LastIndexOf(System.String)" />
+      <Member Name="LastIndexOf(System.String,System.Int32)" />
+      <Member Name="LastIndexOf(System.String,System.Int32,System.Int32)" />
+      <Member Name="LastIndexOf(System.String,System.Int32,System.Int32,System.StringComparison)" />
+      <Member Name="LastIndexOf(System.String,System.Int32,System.StringComparison)" />
+      <Member Name="LastIndexOf(System.String,System.StringComparison)" />
+      <Member Name="LastIndexOfAny(System.Char[])" />
+      <Member Name="LastIndexOfAny(System.Char[],System.Int32)" />
+      <Member Name="LastIndexOfAny(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="op_Equality(System.String,System.String)" />
+      <Member Name="op_Inequality(System.String,System.String)" />
+      <Member Name="PadLeft(System.Int32)" />
+      <Member Name="PadLeft(System.Int32,System.Char)" />
+      <Member Name="PadRight(System.Int32)" />
+      <Member Name="PadRight(System.Int32,System.Char)" />
+      <Member Name="Remove(System.Int32)" />
+      <Member Name="Remove(System.Int32,System.Int32)" />
+      <Member Name="Replace(System.Char,System.Char)" />
+      <Member Name="Replace(System.String,System.String)" />
+      <Member Name="Split(System.Char[])" />
+      <Member Name="Split(System.Char[],System.Int32)" />
+      <Member Name="Split(System.Char[],System.Int32,System.StringSplitOptions)" />
+      <Member Name="Split(System.Char[],System.StringSplitOptions)"/>
+      <Member Name="Split(System.String[],System.Int32,System.StringSplitOptions)" />
+      <Member Name="Split(System.String[],System.StringSplitOptions)"/>
+      <Member Name="StartsWith(System.String)" />
+      <Member Name="StartsWith(System.String,System.StringComparison)" />
+      <Member Name="Substring(System.Int32)" />
+      <Member Name="Substring(System.Int32,System.Int32)" />
+      <Member Name="ToCharArray" />
+      <Member Name="ToCharArray(System.Int32,System.Int32)" />
+      <Member Name="ToLower" />
+      <Member Name="ToLower(System.Globalization.CultureInfo)" />
+      <Member Name="ToLowerInvariant" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToUpper" />
+      <Member Name="ToUpper(System.Globalization.CultureInfo)" />
+      <Member Name="ToUpperInvariant" />
+      <Member Name="Trim" />
+      <Member Name="Trim(System.Char[])" />
+      <Member Name="TrimEnd(System.Char[])" />
+      <Member Name="TrimStart(System.Char[])" />
+      <Member MemberType="Property" Name="Chars(System.Int32)" />
+      <Member MemberType="Property" Name="Length" />
+      <Member Status="ImplRoot" Name="System.Collections.Generic.IEnumerable&lt;System.Char&gt;.GetEnumerator" />
+      <Member Status="ImplRoot" Name="CtorCharArray(System.Char[])" />
+      <Member Status="ImplRoot" Name="CtorCharArrayStartLength(System.Char[],System.Int32,System.Int32)" />
+      <Member Status="ImplRoot" Name="CtorCharCount(System.Char,System.Int32)" />
+      <Member Status="ImplRoot" Name="CtorCharPtr(System.Char*)" />
+      <Member Status="ImplRoot" Name="CtorCharPtrStartLength(System.Char*,System.Int32,System.Int32)" />
+      <Member Status="ImplRoot" Name="CreateString(System.SByte*,System.Int32,System.Int32,System.Text.Encoding)" /> <!-- EE -->
+      <Member Status="ImplRoot" Name="InternalCopy(System.String,System.IntPtr,System.Int32)" /> <!-- EE -->
+    </Type>
+    <Type Name="System.Collections.StructuralComparisons">
+      <Member Name="get_StructuralComparer" />
+      <Member Name="get_StructuralEqualityComparer" />
+      <Member MemberType="Property" Name="StructuralComparer" />
+      <Member MemberType="Property" Name="StructuralEqualityComparer" />
+    </Type>
+    <Type Name="System.StringComparer">
+      <Member Name="#ctor" />
+      <Member Name="Compare(System.Object,System.Object)" />
+      <Member Name="Compare(System.String,System.String)" />
+      <Member Name="Create(System.Globalization.CultureInfo,System.Boolean)" />
+      <Member Name="Equals(System.Object,System.Object)" />
+      <Member Name="Equals(System.String,System.String)" />
+      <Member Name="get_CurrentCulture" />
+      <Member Name="get_CurrentCultureIgnoreCase" />
+      <Member Name="get_InvariantCulture" />
+      <Member Name="get_InvariantCultureIgnoreCase" />
+      <Member Name="get_Ordinal" />
+      <Member Name="get_OrdinalIgnoreCase" />
+      <Member Name="GetHashCode(System.Object)" />
+      <Member Name="GetHashCode(System.String)" />
+      <Member MemberType="Property" Name="CurrentCulture" />
+      <Member MemberType="Property" Name="CurrentCultureIgnoreCase" />
+      <Member MemberType="Property" Name="InvariantCulture" />
+      <Member MemberType="Property" Name="InvariantCultureIgnoreCase" />
+      <Member MemberType="Property" Name="Ordinal" />
+      <Member MemberType="Property" Name="OrdinalIgnoreCase" />
+    </Type>
+    <Type Name="System.StringComparison">
+      <Member MemberType="Field" Name="CurrentCulture" />
+      <Member MemberType="Field" Name="CurrentCultureIgnoreCase" />
+      <Member MemberType="Field" Name="InvariantCulture" />
+      <Member MemberType="Field" Name="InvariantCultureIgnoreCase" />
+      <Member MemberType="Field" Name="Ordinal" />
+      <Member MemberType="Field" Name="OrdinalIgnoreCase" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.SystemException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Text.ASCIIEncoding">
+      <Member Name="#ctor" />
+      <Member Name="get_IsSingleByte" />
+      <Member Name="GetByteCount(System.Char*,System.Int32)" />
+      <Member Name="GetByteCount(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="GetByteCount(System.String)" />
+      <Member Name="GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32)" />
+      <Member Name="GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32)" />
+      <Member Name="GetBytes(System.String,System.Int32,System.Int32,System.Byte[],System.Int32)" />
+      <Member Name="GetCharCount(System.Byte*,System.Int32)" />
+      <Member Name="GetCharCount(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="GetChars(System.Byte*,System.Int32,System.Char*,System.Int32)" />
+      <Member Name="GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" />
+      <Member Name="GetDecoder" />
+      <Member Name="GetEncoder" />
+      <Member Name="GetMaxByteCount(System.Int32)" />
+      <Member Name="GetMaxCharCount(System.Int32)" />
+      <Member Name="GetString(System.Byte[],System.Int32,System.Int32)" />
+      <Member MemberType="Property" Name="IsSingleByte" />
+    </Type>
+    <Type Name="System.Text.Decoder">
+      <Member Name="#ctor" />
+      <Member Name="Convert(System.Byte*,System.Int32,System.Char*,System.Int32,System.Boolean,System.Int32@,System.Int32@,System.Boolean@)" />
+      <Member Name="Convert(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32,System.Int32,System.Boolean,System.Int32@,System.Int32@,System.Boolean@)" />
+      <Member Name="get_Fallback" />
+      <Member Name="get_FallbackBuffer" />
+      <Member Name="GetCharCount(System.Byte*,System.Int32,System.Boolean)" />
+      <Member Name="GetCharCount(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="GetCharCount(System.Byte[],System.Int32,System.Int32,System.Boolean)" />
+      <Member Name="GetChars(System.Byte*,System.Int32,System.Char*,System.Int32,System.Boolean)" />
+      <Member Name="GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" />
+      <Member Name="GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32,System.Boolean)" />
+      <Member Name="Reset" />
+      <Member Name="set_Fallback(System.Text.DecoderFallback)" />
+      <Member MemberType="Property" Name="Fallback" />
+      <Member MemberType="Property" Name="FallbackBuffer" />
+    </Type>
+    <Type Name="System.Text.DecoderFallback">
+      <Member Name="#ctor" />
+      <Member Name="CreateFallbackBuffer" />
+      <Member Name="get_MaxCharCount" />
+      <Member Name="get_ReplacementFallback" />      
+      <Member MemberType="Property" Name="MaxCharCount" />
+      <Member MemberType="Property" Name="ReplacementFallback" />
+      <Member Name="get_ExceptionFallback" />
+      <Member MemberType="Property" Name="ExceptionFallback" />  
+    </Type>
+    <Type Name="System.Text.DecoderFallbackBuffer">
+      <Member Name="#ctor" />
+      <Member Name="Fallback(System.Byte[],System.Int32)" />
+      <Member Name="get_Remaining" />
+      <Member Name="GetNextChar" />
+      <Member Name="MovePrevious" />
+      <Member Name="Reset" />
+      <Member MemberType="Property" Name="Remaining" />
+    </Type>
+    <Type Name="System.Text.DecoderReplacementFallback">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="CreateFallbackBuffer" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_DefaultString" />
+      <Member Name="get_MaxCharCount" />
+      <Member Name="GetHashCode" />
+      <Member MemberType="Property" Name="DefaultString" />
+      <Member MemberType="Property" Name="MaxCharCount" />
+    </Type>
+    <Type Name="System.Text.DecoderExceptionFallback">
+      <Member Name="#ctor" />
+      <Member Name="CreateFallbackBuffer" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_MaxCharCount" />
+      <Member Name="GetHashCode" />
+      <Member MemberType="Property" Name="MaxCharCount" />
+    </Type>
+    <Type Name="System.Text.DecoderFallbackException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="#ctor(System.String,System.Byte[],System.Int32)" />
+      <Member Name="get_BytesUnknown" />
+      <Member Name="get_Index" />
+      <Member MemberType="Property" Name="BytesUnknown" />
+      <Member MemberType="Property" Name="Index" />
+    </Type>  
+    <Type Name="System.Text.Encoder">
+      <Member Name="#ctor" />      
+      <Member Name="Convert(System.Char*,System.Int32,System.Byte*,System.Int32,System.Boolean,System.Int32@,System.Int32@,System.Boolean@)" />
+      <Member Name="Convert(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32,System.Boolean,System.Int32@,System.Int32@,System.Boolean@)" />
+      <Member Name="get_Fallback" />
+      <Member Name="get_FallbackBuffer" />
+      <Member Name="GetByteCount(System.Char*,System.Int32,System.Boolean)" />
+      <Member Name="GetByteCount(System.Char[],System.Int32,System.Int32,System.Boolean)" />
+      <Member Name="GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32,System.Boolean)" />
+      <Member Name="GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Boolean)" />
+      <Member Name="Reset" />
+      <Member Name="set_Fallback(System.Text.EncoderFallback)" />
+      <Member MemberType="Property" Name="Fallback" />
+      <Member MemberType="Property" Name="FallbackBuffer" />
+    </Type>
+    <Type Name="System.Text.EncoderFallback">
+      <Member Name="#ctor" />
+      <Member Name="CreateFallbackBuffer" />
+      <Member Name="get_MaxCharCount" />
+      <Member Name="get_ReplacementFallback" />
+      <Member MemberType="Property" Name="MaxCharCount" />
+      <Member MemberType="Property" Name="ReplacementFallback" />
+      <Member Name="get_ExceptionFallback" />
+      <Member MemberType="Property" Name="ExceptionFallback" />  
+    </Type>
+    <Type Name="System.Text.EncoderFallbackBuffer">
+      <Member Name="#ctor" />
+      <Member Name="Fallback(System.Char,System.Char,System.Int32)" />
+      <Member Name="Fallback(System.Char,System.Int32)" />
+      <Member Name="get_Remaining" />
+      <Member Name="GetNextChar" />
+      <Member Name="MovePrevious" />
+      <Member Name="Reset" />
+      <Member MemberType="Property" Name="Remaining" />
+    </Type>
+    <Type Name="System.Text.EncoderReplacementFallback">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="CreateFallbackBuffer" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_DefaultString" />
+      <Member Name="get_MaxCharCount" />
+      <Member Name="GetHashCode" />
+      <Member MemberType="Property" Name="DefaultString" />
+      <Member MemberType="Property" Name="MaxCharCount" />
+    </Type>
+    <Type Name="System.Text.EncoderExceptionFallback">
+      <Member Name="#ctor" />
+      <Member Name="CreateFallbackBuffer" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_MaxCharCount" />
+      <Member Name="GetHashCode" />
+      <Member MemberType="Property" Name="MaxCharCount" />
+    </Type>
+    <Type Name="System.Text.EncoderFallbackException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="#ctor(System.String,System.Char,System.Int32)" />
+      <Member Name="#ctor(System.String,System.Char,System.Char,System.Int32)" />
+      <Member Name="IsUnknownSurrogate" />
+      <Member Name="get_CharUnknown" />
+      <Member Name="get_CharUnknownHigh" />
+      <Member Name="get_CharUnknownLow" />
+      <Member Name="get_Index" />
+      <Member MemberType="Property" Name="CharUnknown" />
+      <Member MemberType="Property" Name="CharUnknownHigh" />    
+      <Member MemberType="Property" Name="CharUnknownLow" />
+      <Member MemberType="Property" Name="Index" />    
+    </Type>    
+    <Type Name="System.Text.EncodingProvider">
+      <Member Name="#ctor" />
+      <Member Name="GetEncoding(System.Int32)" />
+      <Member Name="GetEncoding(System.Int32,System.Text.EncoderFallback,System.Text.DecoderFallback)" />
+      <Member Name="GetEncoding(System.String)" />
+      <Member Name="GetEncoding(System.String,System.Text.EncoderFallback,System.Text.DecoderFallback)" />
+    </Type>
+    <Type Name="System.Text.Encoding">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Text.EncoderFallback,System.Text.DecoderFallback)" />
+      <Member Name="Clone" />
+      <Member Name="Convert(System.Text.Encoding,System.Text.Encoding,System.Byte[])" />
+      <Member Name="Convert(System.Text.Encoding,System.Text.Encoding,System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_ASCII" />
+      <Member Name="get_BigEndianUnicode" />
+      <Member Name="get_CodePage" />
+      <Member Name="get_DecoderFallback" />
+      <Member Name="get_EncoderFallback" />
+      <Member Name="get_EncodingName" />
+      <Member Name="get_IsSingleByte" />
+      <Member Name="get_Unicode" />
+      <Member Name="get_UTF32" />
+      <Member Name="get_UTF7" />
+      <Member Name="get_UTF8" />
+      <Member Name="get_WebName" />
+      <Member Name="GetByteCount(System.Char*,System.Int32)" />
+      <Member Name="GetByteCount(System.Char[])" />
+      <Member Name="GetByteCount(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="GetByteCount(System.String)" />
+      <Member Name="GetBytes(System.Char[])" />
+      <Member Name="GetBytes(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32)" />      
+      <Member Name="GetBytes(System.String)" />
+      <Member Name="GetBytes(System.String,System.Int32,System.Int32,System.Byte[],System.Int32)" />      
+      <Member Name="GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32)" />
+      <Member Name="GetCharCount(System.Byte[])" />
+      <Member Name="GetCharCount(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="GetChars(System.Byte*,System.Int32,System.Char*,System.Int32)" />
+      <Member Name="GetChars(System.Byte[])" />
+      <Member Name="GetChars(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" />
+      <Member Name="GetString(System.Byte*,System.Int32)" /> <!-- New exposed API in ProjectK -->
+      <Member Name="GetDecoder" />
+      <Member Name="GetEncoder" />
+      <Member Name="RegisterProvider(System.Text.EncodingProvider)" />
+      <Member Name="GetEncoding(System.Int32)"/> <!-- For use in Framework assemblies, but not public in Win8P reference assemblies. -->
+      <Member Name="GetEncoding(System.Int32,System.Text.EncoderFallback,System.Text.DecoderFallback)" />
+      <Member Name="GetEncoding(System.String)" />
+      <Member Name="GetEncoding(System.String,System.Text.EncoderFallback,System.Text.DecoderFallback)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetMaxByteCount(System.Int32)" />
+      <Member Name="GetMaxCharCount(System.Int32)" />
+      <Member Name="GetPreamble" />
+      <Member Name="GetString(System.Byte[])" />
+      <Member Name="GetString(System.Byte[],System.Int32,System.Int32)" />
+      <Member MemberType="Property" Name="ASCII" />
+      <Member MemberType="Property" Name="BigEndianUnicode" />
+      <Member MemberType="Property" Name="CodePage" />
+      <Member MemberType="Property" Name="DecoderFallback" />
+      <Member MemberType="Property" Name="EncoderFallback" />
+      <Member MemberType="Property" Name="EncodingName" />
+      <Member MemberType="Property" Name="IsSingleByte" />
+      <Member MemberType="Property" Name="Unicode" />
+      <Member MemberType="Property" Name="UTF32" />
+      <Member MemberType="Property" Name="UTF7" />
+      <Member MemberType="Property" Name="UTF8" />
+      <Member MemberType="Property" Name="WebName" />
+    </Type>
+    <Type Name="System.Text.StringBuilder">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Int32)" />
+      <Member Name="#ctor(System.String,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="Append(System.Boolean)" />
+      <Member Name="Append(System.Byte)" />
+      <Member Name="Append(System.Char)" />
+      <Member Name="Append(System.Char,System.Int32)" />
+      <Member Name="Append(System.Char[])" />
+      <Member Name="Append(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="Append(System.Char*,System.Int32)" />
+      <Member Name="Append(System.Decimal)" />
+      <Member Name="Append(System.Double)" />
+      <Member Name="Append(System.Int16)" />
+      <Member Name="Append(System.Int32)" />
+      <Member Name="Append(System.Int64)" />
+      <Member Name="Append(System.Object)" />
+      <Member Name="Append(System.SByte)" />
+      <Member Name="Append(System.Single)" />
+      <Member Name="Append(System.String)" />
+      <Member Name="Append(System.String,System.Int32,System.Int32)" />
+      <Member Name="Append(System.UInt16)" />
+      <Member Name="Append(System.UInt32)" />
+      <Member Name="Append(System.UInt64)" />
+      <Member Name="AppendFormat(System.IFormatProvider,System.String,System.Object)" />
+      <Member Name="AppendFormat(System.IFormatProvider,System.String,System.Object,System.Object)" />
+      <Member Name="AppendFormat(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)" />
+      <Member Name="AppendFormat(System.IFormatProvider,System.String,System.Object[])" />
+      <Member Name="AppendFormat(System.String,System.Object)" />
+      <Member Name="AppendFormat(System.String,System.Object,System.Object)" />
+      <Member Name="AppendFormat(System.String,System.Object,System.Object,System.Object)" />
+      <Member Name="AppendFormat(System.String,System.Object[])" />
+      <Member Name="AppendLine" />
+      <Member Name="AppendLine(System.String)" />
+      <Member Name="Clear" />
+      <Member Name="CopyTo(System.Int32,System.Char[],System.Int32,System.Int32)" />
+      <Member Name="EnsureCapacity(System.Int32)" />
+      <Member Name="Equals(System.Text.StringBuilder)" />
+      <Member Name="get_Capacity" />
+      <Member Name="get_Chars(System.Int32)" />
+      <Member Name="get_Length" />
+      <Member Name="get_MaxCapacity" />
+      <Member Name="Insert(System.Int32,System.Boolean)" />
+      <Member Name="Insert(System.Int32,System.Byte)" />
+      <Member Name="Insert(System.Int32,System.Char)" />
+      <Member Name="Insert(System.Int32,System.Char[])" />
+      <Member Name="Insert(System.Int32,System.Char[],System.Int32,System.Int32)" />
+      <Member Name="Insert(System.Int32,System.Decimal)" />
+      <Member Name="Insert(System.Int32,System.Double)" />
+      <Member Name="Insert(System.Int32,System.Int16)" />
+      <Member Name="Insert(System.Int32,System.Int32)" />
+      <Member Name="Insert(System.Int32,System.Int64)" />
+      <Member Name="Insert(System.Int32,System.Object)" />
+      <Member Name="Insert(System.Int32,System.SByte)" />
+      <Member Name="Insert(System.Int32,System.Single)" />
+      <Member Name="Insert(System.Int32,System.String)" />
+      <Member Name="Insert(System.Int32,System.String,System.Int32)" />
+      <Member Name="Insert(System.Int32,System.UInt16)" />
+      <Member Name="Insert(System.Int32,System.UInt32)" />
+      <Member Name="Insert(System.Int32,System.UInt64)" />
+      <Member Name="Remove(System.Int32,System.Int32)" />
+      <Member Name="Replace(System.Char,System.Char)" />
+      <Member Name="Replace(System.Char,System.Char,System.Int32,System.Int32)" />
+      <Member Name="Replace(System.String,System.String)" />
+      <Member Name="Replace(System.String,System.String,System.Int32,System.Int32)" />
+      <Member Name="set_Capacity(System.Int32)" />
+      <Member Name="set_Chars(System.Int32,System.Char)" />
+      <Member Name="set_Length(System.Int32)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.Int32,System.Int32)" />
+      <Member MemberType="Property" Name="Capacity" />
+      <Member MemberType="Property" Name="Chars(System.Int32)" />
+      <Member MemberType="Property" Name="Length" />
+      <Member MemberType="Property" Name="MaxCapacity" />
+      <Member Status="ImplRoot" Name="InternalCopy(System.IntPtr,System.Int32)" /> <!-- EE - il stubs -->
+      <Member Status="ImplRoot" Name="ReplaceBufferInternal(System.Char*,System.Int32)" /> <!-- EE - il stubs -->
+      <Member Status="ImplRoot" Name="ReplaceBufferAnsiInternal(System.SByte*,System.Int32)" /> <!-- EE - il stubs -->
+    </Type>
+    <Type Name="System.Text.UnicodeEncoding">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Boolean,System.Boolean)" />
+      <Member Name="#ctor(System.Boolean,System.Boolean,System.Boolean)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetByteCount(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="GetByteCount(System.String)" />
+      <Member Name="GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32)" />
+      <Member Name="GetBytes(System.String,System.Int32,System.Int32,System.Byte[],System.Int32)" />
+      <Member Name="GetCharCount(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" />
+      <Member Name="GetDecoder" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetMaxByteCount(System.Int32)" />
+      <Member Name="GetMaxCharCount(System.Int32)" />
+      <Member Name="GetPreamble" />
+    </Type>
+    <Type Name="System.Text.UTF32Encoding">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Boolean,System.Boolean)" />
+      <Member Name="#ctor(System.Boolean,System.Boolean,System.Boolean)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetByteCount(System.Char*,System.Int32)" />
+      <Member Name="GetByteCount(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="GetByteCount(System.String)" />
+      <Member Name="GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32)" />
+      <Member Name="GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32)" />
+      <Member Name="GetBytes(System.String,System.Int32,System.Int32,System.Byte[],System.Int32)" />
+      <Member Name="GetCharCount(System.Byte*,System.Int32)" />
+      <Member Name="GetCharCount(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="GetChars(System.Byte*,System.Int32,System.Char*,System.Int32)" />
+      <Member Name="GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" />
+      <Member Name="GetDecoder" />
+      <Member Name="GetEncoder" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetMaxByteCount(System.Int32)" />
+      <Member Name="GetMaxCharCount(System.Int32)" />
+      <Member Name="GetPreamble" />
+      <Member Name="GetString(System.Byte[],System.Int32,System.Int32)" />
+    </Type>
+    <Type Name="System.Text.UTF7Encoding">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Boolean)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetByteCount(System.Char*,System.Int32)" />
+      <Member Name="GetByteCount(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="GetByteCount(System.String)" />
+      <Member Name="GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32)" />
+      <Member Name="GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32)" />
+      <Member Name="GetBytes(System.String,System.Int32,System.Int32,System.Byte[],System.Int32)" />
+      <Member Name="GetCharCount(System.Byte*,System.Int32)" />
+      <Member Name="GetCharCount(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="GetChars(System.Byte*,System.Int32,System.Char*,System.Int32)" />
+      <Member Name="GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" />
+      <Member Name="GetDecoder" />
+      <Member Name="GetEncoder" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetMaxByteCount(System.Int32)" />
+      <Member Name="GetMaxCharCount(System.Int32)" />
+      <Member Name="GetString(System.Byte[],System.Int32,System.Int32)" />
+    </Type>
+    <Type Name="System.Text.UTF8Encoding">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Boolean)" />
+      <Member Name="#ctor(System.Boolean,System.Boolean)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetByteCount(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="GetByteCount(System.String)" />
+      <Member Name="GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32)" />
+      <Member Name="GetBytes(System.String,System.Int32,System.Int32,System.Byte[],System.Int32)" />
+      <Member Name="GetCharCount(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" />
+      <Member Name="GetDecoder" />
+      <Member Name="GetEncoder" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetMaxByteCount(System.Int32)" />
+      <Member Name="GetMaxCharCount(System.Int32)" />
+      <Member Name="GetPreamble" />
+    </Type>
+    <Type Name="System.Threading.AbandonedMutexException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Int32,System.Threading.WaitHandle)" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="#ctor(System.String,System.Exception,System.Int32,System.Threading.WaitHandle)" />
+      <Member Name="#ctor(System.String,System.Int32,System.Threading.WaitHandle)" />
+      <Member MemberType="Property" Name="Mutex" />
+      <Member MemberType="Property" Name="MutexIndex" />
+    </Type>
+    <Type Name="System.Threading.AutoResetEvent">
+      <Member Name="#ctor(System.Boolean)" />
+    </Type>
+    <Type Name="System.Threading.EventWaitHandle">
+      <Member Name="#ctor(System.Boolean,System.Threading.EventResetMode)" />
+      <Member Name="#ctor(System.Boolean,System.Threading.EventResetMode,System.String)" />
+      <Member Name="#ctor(System.Boolean,System.Threading.EventResetMode,System.String,System.Boolean@)" />
+      <Member Name="OpenExisting(System.String)" />
+      <Member Name="Reset" />
+      <Member Name="Set" />
+      <Member Name="TryOpenExisting(System.String,System.Threading.EventWaitHandle@)" />
+    </Type>
+    <Type Name="System.Threading.Interlocked">
+      <Member Name="Add(System.Int32@,System.Int32)" />
+      <Member Name="Add(System.Int64@,System.Int64)" />
+      <Member Name="CompareExchange(System.Double@,System.Double,System.Double)" />
+      <Member Name="CompareExchange(System.Int32@,System.Int32,System.Int32)" />
+      <Member Name="CompareExchange(System.Int64@,System.Int64,System.Int64)" />
+      <Member Name="CompareExchange(System.IntPtr@,System.IntPtr,System.IntPtr)" />
+      <Member Name="CompareExchange(System.Object@,System.Object,System.Object)" />
+      <Member Name="CompareExchange(System.Single@,System.Single,System.Single)" />
+      <Member Name="CompareExchange&lt;T&gt;(T@,T,T)" />
+      <Member Name="Decrement(System.Int32@)" />
+      <Member Name="Decrement(System.Int64@)" />
+      <Member Name="Exchange(System.Double@,System.Double)" />
+      <Member Name="Exchange(System.Int32@,System.Int32)" />
+      <Member Name="Exchange(System.Int64@,System.Int64)" />
+      <Member Name="Exchange(System.IntPtr@,System.IntPtr)" />
+      <Member Name="Exchange(System.Object@,System.Object)" />
+      <Member Name="Exchange(System.Single@,System.Single)" />
+      <Member Name="Exchange&lt;T&gt;(T@,T)" />
+      <Member Name="Increment(System.Int32@)" />
+      <Member Name="Increment(System.Int64@)" />
+      <Member Name="MemoryBarrier" />
+      <Member Name="Read(System.Int64@)" />
+    </Type>
+    <Type Name="System.Threading.LockRecursionException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Threading.Mutex">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Boolean)" />
+      <Member Name="#ctor(System.Boolean,System.String)" />
+      <Member Name="#ctor(System.Boolean,System.String,System.Boolean@)" />
+      <Member Name="OpenExisting(System.String)" />
+      <Member Name="ReleaseMutex" />
+      <Member Name="TryOpenExisting(System.String,System.Threading.Mutex@)" />
+    </Type>
+    <Type Name="System.Threading.Volatile">
+      <Member Name="Read(System.Boolean@)"/>
+      <Member Name="Read(System.SByte@)"/>
+      <Member Name="Read(System.Byte@)"/>
+      <Member Name="Read(System.Int16@)"/>
+      <Member Name="Read(System.UInt16@)"/>
+      <Member Name="Read(System.Int32@)"/>
+      <Member Name="Read(System.UInt32@)"/>
+      <Member Name="Read(System.Int64@)"/>
+      <Member Name="Read(System.UInt64@)"/>
+      <Member Name="Read(System.IntPtr@)"/>
+      <Member Name="Read(System.UIntPtr@)"/>
+      <Member Name="Read(System.Single@)"/>
+      <Member Name="Read(System.Double@)"/>
+      <Member Name="Read&lt;T&gt;(T@)"/>
+      <Member Name="Write(System.Boolean@,System.Boolean)"/>
+      <Member Name="Write(System.SByte@,System.SByte)"/>
+      <Member Name="Write(System.Byte@,System.Byte)"/>
+      <Member Name="Write(System.Int16@,System.Int16)"/>
+      <Member Name="Write(System.UInt16@,System.UInt16)"/>
+      <Member Name="Write(System.Int32@,System.Int32)"/>
+      <Member Name="Write(System.UInt32@,System.UInt32)"/>
+      <Member Name="Write(System.Int64@,System.Int64)"/>
+      <Member Name="Write(System.UInt64@,System.UInt64)"/>
+      <Member Name="Write(System.IntPtr@,System.IntPtr)"/>
+      <Member Name="Write(System.UIntPtr@,System.UIntPtr)"/>
+      <Member Name="Write(System.Single@,System.Single)"/>
+      <Member Name="Write(System.Double@,System.Double)"/>
+      <Member Name="Write&lt;T&gt;(T@,T)"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading.IThreadPoolWorkItem">
+      <Member Status="ImplRoot" Name="ExecuteWorkItem"/>
+    </Type>
+    <Type Name="System.Threading.Monitor">
+      <Member Name="Enter(System.Object)" />
+      <Member Name="Enter(System.Object,System.Boolean@)" />
+      <Member Name="IsEntered(System.Object)"  />
+      <Member Name="Exit(System.Object)" />
+      <Member Name="Pulse(System.Object)" />
+      <Member Name="PulseAll(System.Object)" />
+      <Member Name="TryEnter(System.Object)" />
+      <Member Name="TryEnter(System.Object,System.Int32)" />
+      <Member Name="TryEnter(System.Object,System.TimeSpan)" />
+      <Member Name="TryEnter(System.Object,System.Boolean@)" />
+      <Member Name="TryEnter(System.Object,System.Int32,System.Boolean@)" />
+      <Member Name="TryEnter(System.Object,System.TimeSpan,System.Boolean@)" />
+      <Member Name="Wait(System.Object)" />
+      <Member Name="Wait(System.Object,System.Int32)" />
+      <Member Name="Wait(System.Object,System.TimeSpan)" />
+    </Type>
+    <Type Name="System.Threading.ManualResetEvent">
+      <Member Name="#ctor(System.Boolean)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading.QueueUserWorkItemCallback">
+      <Member Status="ImplRoot" Name="#ctor(System.Threading.WaitCallback,System.Object,System.Threading.ExecutionContext)"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading.QueueUserWorkItemCallbackDefaultContext">
+      <Member Status="ImplRoot" Name="#ctor(System.Threading.WaitCallback,System.Object)"/>
+    </Type>
+    <Type Name="System.Threading.SynchronizationContext">
+      <Member Name="#ctor"/>
+      <Member Name="Send(System.Threading.SendOrPostCallback,System.Object)"/>
+      <Member Name="Post(System.Threading.SendOrPostCallback,System.Object)"/>
+      <Member Name="OperationStarted"/>
+      <Member Name="OperationCompleted"/>
+      <Member Name="SetSynchronizationContext(System.Threading.SynchronizationContext)"/>
+      <Member Name="get_Current"/>
+      <Member Name="CreateCopy"/>
+      <Member MemberType="Property" Name="Current"/>
+    </Type>
+    <Type Name="System.Threading.SynchronizationLockException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Threading.Thread">
+      <Member Name="#ctor(System.Threading.ThreadStart)" />
+      <Member Name="#ctor(System.Threading.ParameterizedThreadStart)" />
+      <Member Name="MemoryBarrier" />
+      <Member Name="Finalize" />
+      <Member Name="get_CurrentCulture" />
+      <Member Name="get_CurrentThread" />
+      <Member Name="get_CurrentUICulture" />
+      <Member Name="GetDomain" />
+      <Member Name="get_IsBackground" />
+      <Member Name="get_ManagedThreadId" />
+      <Member Name="get_Name" />
+      <Member Name="get_IsAlive" />
+      <Member Name="get_ThreadState" />
+      <Member Name="Join" />
+      <Member Name="Join(System.Int32)" />
+      <Member Name="set_IsBackground(System.Boolean)" />
+      <Member Name="set_Name(System.String)" />
+      <Member Name="Sleep(System.Int32)" />
+      <Member Name="Sleep(System.TimeSpan)" />
+      <Member Name="SpinWait(System.Int32)" />
+      <Member Name="Start" />
+      <Member Name="Start(System.Object)" />
+      <Member MemberType="Property" Name="CurrentCulture" />
+      <Member MemberType="Property" Name="CurrentThread" />
+      <Member MemberType="Property" Name="CurrentUICulture" />
+      <Member MemberType="Property" Name="IsBackground" />
+      <Member MemberType="Property" Name="ManagedThreadId" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="IsAlive" />
+      <Member MemberType="Property" Name="ThreadState" />
+      <Member Status="ImplRoot" Name="InternalGetCurrentThread" />
+      <Member Status="ImplRoot" MemberType="Field" Name="DONT_USE_InternalThread" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_Priority" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_ThreadStartArg" />
+    </Type>
+    <Type Name="System.Threading.ThreadAbortException">
+    </Type>
+    <Type Name="System.Threading.ThreadPool">
+      <Member Name="GetMaxThreads(System.Int32@,System.Int32@)" />
+      <Member Name="QueueUserWorkItem(System.Threading.WaitCallback)" />
+      <Member Name="QueueUserWorkItem(System.Threading.WaitCallback,System.Object)" />
+      <Member Name="SetMaxThreads(System.Int32,System.Int32)" />
+      <Member Name="BindHandle(System.Runtime.InteropServices.SafeHandle)" />
+      <Member Name="RegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.UInt32,System.Boolean)" />
+      <Member Name="RegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int32,System.Boolean)" />
+      <Member Name="RegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int64,System.Boolean)" />
+      <Member Name="RegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.TimeSpan,System.Boolean)" />
+      <Member Name="SetMinThreads(System.Int32,System.Int32)" />
+      <Member Name="GetMinThreads(System.Int32@,System.Int32@)" />
+      <Member Status="ImplRoot" Name="RegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.UInt32,System.Boolean,System.Threading.StackCrawlMark@,System.Boolean)" />
+      <Member Status="ImplRoot" Name="RegisterWaitForSingleObjectNative(System.Threading.WaitHandle,System.Object,System.UInt32,System.Boolean,System.Threading.RegisteredWaitHandle,System.Threading.StackCrawlMark@,System.Boolean)" />
+      <Member Status="ImplRoot" Name="UnsafeQueueCustomWorkItem(System.Threading.IThreadPoolWorkItem,System.Boolean)"/>
+      <Member Status="ImplRoot" Name="TryPopCustomWorkItem(System.Threading.IThreadPoolWorkItem)"/>
+      <Member Status="ImplRoot" Name="GetQueuedWorkItemsForDebugger"/>
+      <Member Status="ImplRoot" Name="GetGloballyQueuedWorkItemsForDebugger"/>
+      <Member Status="ImplRoot" Name="GetLocallyQueuedWorkItemsForDebugger"/>
+      <Member Status="ImplRoot" Name="NotifyWorkItemProgress"/>
+    </Type>
+    <Type Status="ImplRoot"  Name="System.Threading.StackCrawlMark">
+      <Member MemberType="Field" Name="LookForMe" />
+      <Member MemberType="Field" Name="LookForMyCaller" />
+      <Member MemberType="Field" Name="LookForMyCallersCaller" />
+      <Member MemberType="Field" Name="LookForThread" />
+    </Type>
+    <Type Name="System.Threading.NativeOverlapped">
+      <Member MemberType="Field" Name="InternalLow" />
+      <Member MemberType="Field" Name="InternalHigh" />
+      <Member MemberType="Field" Name="OffsetLow" />
+      <Member MemberType="Field" Name="OffsetHigh" />
+      <Member MemberType="Field" Name="EventHandle" />
+    </Type>
+    <Type Name="System.Threading.Overlapped">
+      <Member Name="#ctor" />            
+      <Member MemberType="Property" Name="AsyncResult" />
+      <Member MemberType="Property" Name="OffsetLow" />
+      <Member MemberType="Property" Name="OffsetHigh" />
+      <Member Name="Free(System.Threading.NativeOverlapped*)" />
+      <Member Name="Pack(System.Threading.IOCompletionCallback,System.Object)" />
+      <Member Name="Unpack(System.Threading.NativeOverlapped*)" />
+      <Member Name="UnsafePack(System.Threading.IOCompletionCallback,System.Object)" Condition="FEATURE_COMINTEROP" />
+    </Type>
+    <Type Name="System.Threading.IOCompletionCallback">
+    </Type>
+    <Type Name="System.Threading.RegisteredWaitHandle">
+      <Member Name="Unregister(System.Threading.WaitHandle)" />
+      <Member Status="ImplRoot" Name="SetHandle(System.IntPtr)" />
+      <Member Status="ImplRoot" Name="SetWaitObject(System.Threading.WaitHandle)" />
+    </Type>
+    <Type Name="System.Threading.ThreadState">
+      <Member MemberType="Field" Name="Running" />
+      <Member MemberType="Field" Name="StopRequested" />
+      <Member MemberType="Field" Name="SuspendRequested" />
+      <Member MemberType="Field" Name="Background" />
+      <Member MemberType="Field" Name="Unstarted" />
+      <Member MemberType="Field" Name="Stopped" />
+      <Member MemberType="Field" Name="WaitSleepJoin" />
+      <Member MemberType="Field" Name="Suspended" />
+      <Member MemberType="Field" Name="AbortRequested" />
+      <Member MemberType="Field" Name="Aborted" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Threading.ThreadStart">
+    </Type>
+    <Type Name="System.Threading.ParameterizedThreadStart">
+    </Type>
+    <Type Name="System.Threading.SendOrPostCallback">
+    </Type>
+    <Type Name="System.Threading.ThreadStartException">
+      <Member Status="ImplRoot" Name="#ctor(System.Exception)" /><!-- EE -->
+    </Type>
+    <Type Name="System.Threading.ThreadStateException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Threading.Timeout">
+      <Member MemberType="Field" Name="Infinite" />
+      <Member MemberType="Field" Name="InfiniteTimeSpan" />
+    </Type>
+    <Type Name="System.Threading.Timer">
+      <Member Name="#ctor(System.Threading.TimerCallback)" />
+      <Member Name="#ctor(System.Threading.TimerCallback,System.Object,System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Threading.TimerCallback,System.Object,System.Int64,System.Int64)" />
+      <Member Name="#ctor(System.Threading.TimerCallback,System.Object,System.TimeSpan,System.TimeSpan)" />
+      <Member Name="#ctor(System.Threading.TimerCallback,System.Object,System.UInt32,System.UInt32)" />
+      <Member Name="Change(System.Int32,System.Int32)" />
+      <Member Name="Change(System.Int64,System.Int64)" />
+      <Member Name="Change(System.TimeSpan,System.TimeSpan)" />
+      <Member Name="Change(System.UInt32,System.UInt32)" />
+      <Member Name="Dispose" />
+      <Member Name="Dispose(System.Threading.WaitHandle)" />
+    </Type>
+    <Type Name="System.Threading.TimerCallback">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(System.Object,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(System.Object)" />
+    </Type>
+    <Type Name="System.Threading.WaitCallback">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(System.Object,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(System.Object)" />
+    </Type>
+    <Type Name="System.Threading.WaitOrTimerCallback">
+    </Type>
+    <Type Name="System.Threading.WaitHandle">
+      <Member MemberType="Field" Name="InvalidHandle" />
+      <Member MemberType="Field" Name="WaitTimeout" />
+      <Member Name="#ctor" />
+      <Member Name="Close" />
+      <Member Name="Dispose" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="get_SafeWaitHandle" />
+      <Member Name="set_SafeWaitHandle(Microsoft.Win32.SafeHandles.SafeWaitHandle)" />
+      <Member Name="WaitAny(System.Threading.WaitHandle[])" />
+      <Member Name="WaitAny(System.Threading.WaitHandle[],System.Int32)" />
+      <Member Name="WaitAny(System.Threading.WaitHandle[],System.TimeSpan)" />
+      <Member Name="WaitAll(System.Threading.WaitHandle[])" />
+      <Member Name="WaitAll(System.Threading.WaitHandle[],System.Int32)" />
+      <Member Name="WaitAll(System.Threading.WaitHandle[],System.TimeSpan)" />
+      <Member Name="WaitOne" />
+      <Member Name="WaitOne(System.Int32)" />
+      <Member Name="WaitOne(System.TimeSpan)" />
+      <Member MemberType="Property" Name="SafeWaitHandle" />
+    </Type>
+   <Type Name="System.Threading.WaitHandleExtensions">
+      <Member Name="GetSafeWaitHandle(System.Threading.WaitHandle)" />
+      <Member Name="SetSafeWaitHandle(System.Threading.WaitHandle,Microsoft.Win32.SafeHandles.SafeWaitHandle)" />
+    </Type>    
+    <Type Name="System.Threading.WaitHandleCannotBeOpenedException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.TimeoutException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.TimeSpan">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member MemberType="Field" Name="TicksPerDay" />
+      <Member MemberType="Field" Name="TicksPerHour" />
+      <Member MemberType="Field" Name="TicksPerMillisecond" />
+      <Member MemberType="Field" Name="TicksPerMinute" />
+      <Member MemberType="Field" Name="TicksPerSecond" />
+      <Member MemberType="Field" Name="Zero" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Int64)" />
+      <Member Name="Add(System.TimeSpan)" />
+      <Member Name="Compare(System.TimeSpan,System.TimeSpan)" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="CompareTo(System.TimeSpan)" />
+      <Member Name="Duration" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.TimeSpan)" />
+      <Member Name="Equals(System.TimeSpan,System.TimeSpan)" />
+      <Member Name="FromDays(System.Double)" />
+      <Member Name="FromHours(System.Double)" />
+      <Member Name="FromMilliseconds(System.Double)" />
+      <Member Name="FromMinutes(System.Double)" />
+      <Member Name="FromSeconds(System.Double)" />
+      <Member Name="FromTicks(System.Int64)" />
+      <Member Name="get_Days" />
+      <Member Name="get_Hours" />
+      <Member Name="get_Milliseconds" />
+      <Member Name="get_Minutes" />
+      <Member Name="get_Seconds" />
+      <Member Name="get_Ticks" />
+      <Member Name="get_TotalDays" />
+      <Member Name="get_TotalHours" />
+      <Member Name="get_TotalMilliseconds" />
+      <Member Name="get_TotalMinutes" />
+      <Member Name="get_TotalSeconds" />
+      <Member Name="GetHashCode" />
+      <Member Name="Negate" />
+      <Member Name="op_Addition(System.TimeSpan,System.TimeSpan)" />
+      <Member Name="op_Equality(System.TimeSpan,System.TimeSpan)" />
+      <Member Name="op_GreaterThan(System.TimeSpan,System.TimeSpan)" />
+      <Member Name="op_GreaterThanOrEqual(System.TimeSpan,System.TimeSpan)" />
+      <Member Name="op_Inequality(System.TimeSpan,System.TimeSpan)" />
+      <Member Name="op_LessThan(System.TimeSpan,System.TimeSpan)" />
+      <Member Name="op_LessThanOrEqual(System.TimeSpan,System.TimeSpan)" />
+      <Member Name="op_Subtraction(System.TimeSpan,System.TimeSpan)" />
+      <Member Name="op_UnaryPlus(System.TimeSpan)" />
+      <Member Name="op_UnaryNegation(System.TimeSpan)" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="ParseExact(System.String,System.String,System.IFormatProvider)" />
+      <Member Name="ParseExact(System.String,System.String[],System.IFormatProvider)" />
+      <Member Name="ParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.TimeSpanStyles)" />
+      <Member Name="ParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.TimeSpanStyles)" />
+      <Member Name="TryParse(System.String,System.TimeSpan@)" />
+      <Member Name="TryParse(System.String,System.IFormatProvider,System.TimeSpan@)" />
+      <Member Name="TryParseExact(System.String,System.String,System.IFormatProvider,System.TimeSpan@)" />
+      <Member Name="TryParseExact(System.String,System.String[],System.IFormatProvider,System.TimeSpan@)" />
+      <Member Name="TryParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.TimeSpanStyles,System.TimeSpan@)" />
+      <Member Name="TryParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.TimeSpanStyles,System.TimeSpan@)" />
+      <Member Name="Subtract(System.TimeSpan)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.String)" />
+      <Member MemberType="Property" Name="Days" />
+      <Member MemberType="Property" Name="Hours" />
+      <Member MemberType="Property" Name="Milliseconds" />
+      <Member MemberType="Property" Name="Minutes" />
+      <Member MemberType="Property" Name="Seconds" />
+      <Member MemberType="Property" Name="Ticks" />
+      <Member MemberType="Property" Name="TotalDays" />
+      <Member MemberType="Property" Name="TotalHours" />
+      <Member MemberType="Property" Name="TotalMilliseconds" />
+      <Member MemberType="Property" Name="TotalMinutes" />
+      <Member MemberType="Property" Name="TotalSeconds" />
+    </Type>
+    <Type Name="System.TimeZoneInfo">
+      <Member Name="get_DisplayName" />
+      <Member Name="get_StandardName" />
+      <Member Name="get_DaylightName" />
+      <Member Name="get_Id" />
+      <Member Name="get_BaseUtcOffset" />
+      <Member Name="get_SupportsDaylightSavingTime" />
+      <Member Name="get_Local" />
+      <Member Name="get_Utc" />
+      <Member Name="GetAmbiguousTimeOffsets(System.DateTimeOffset)" />
+      <Member Name="GetAmbiguousTimeOffsets(System.DateTime)" />
+      <Member Name="GetUtcOffset(System.DateTimeOffset)" />
+      <Member Name="GetUtcOffset(System.DateTime)" />
+      <Member Name="IsAmbiguousTime(System.DateTimeOffset)" />
+      <Member Name="IsAmbiguousTime(System.DateTime)" />
+      <Member Name="IsDaylightSavingTime(System.DateTimeOffset)" />
+      <Member Name="IsDaylightSavingTime(System.DateTime)" />
+      <Member Name="IsInvalidTime(System.DateTime)" />
+      <Member Name="ConvertTime(System.DateTimeOffset,System.TimeZoneInfo)" />
+      <Member Name="ConvertTime(System.DateTime,System.TimeZoneInfo)" />
+      <Member Name="ConvertTime(System.DateTime,System.TimeZoneInfo,System.TimeZoneInfo)" />
+      <Member Name="Equals(System.TimeZoneInfo)" />
+      <Member Name="FindSystemTimeZoneById(System.String)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetSystemTimeZones" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="DisplayName" />
+      <Member MemberType="Property" Name="StandardName" />
+      <Member MemberType="Property" Name="DaylightName" />
+      <Member MemberType="Property" Name="Id" />
+      <Member MemberType="Property" Name="BaseUtcOffset" />
+      <Member MemberType="Property" Name="SupportsDaylightSavingTime" />
+      <Member MemberType="Property" Name="Local" />
+      <Member MemberType="Property" Name="Utc" />
+    </Type>
+    <Type Name="System.TimeZoneInfo+AdjustmentRule">
+      <!-- CreateAdjustmentRule doesn't have a public contract, but tests and other callers can use Reflection to invoke it, so ensure it is left in mscorlib. -->
+      <Member Status="ApiRoot" Name="CreateAdjustmentRule(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo+TransitionTime,System.TimeZoneInfo+TransitionTime)" />
+    </Type>
+    <Type Name="System.TimeZoneInfo+TransitionTime">
+    </Type>
+    <Type Name="System.Tuple">
+      <Member Name="Create&lt;T1&gt;(T1)" />
+      <Member Name="Create&lt;T1,T2&gt;(T1,T2)" />
+      <Member Name="Create&lt;T1,T2,T3&gt;(T1,T2,T3)" />
+      <Member Name="Create&lt;T1,T2,T3,T4&gt;(T1,T2,T3,T4)" />
+      <Member Name="Create&lt;T1,T2,T3,T4,T5&gt;(T1,T2,T3,T4,T5)" />
+      <Member Name="Create&lt;T1,T2,T3,T4,T5,T6&gt;(T1,T2,T3,T4,T5,T6)" />
+      <Member Name="Create&lt;T1,T2,T3,T4,T5,T6,T7&gt;(T1,T2,T3,T4,T5,T6,T7)" />
+      <Member Name="Create&lt;T1,T2,T3,T4,T5,T6,T7,T8&gt;(T1,T2,T3,T4,T5,T6,T7,T8)" />
+    </Type>
+    <Type Name="System.Tuple&lt;T1&gt;">
+      <Member Name="#ctor(T1)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Item1" />
+      <Member Name="GetHashCode" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Item1" />
+    </Type>
+    <Type Name="System.Tuple&lt;T1,T2&gt;">
+      <Member Name="#ctor(T1,T2)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Item1" />
+      <Member Name="get_Item2" />
+      <Member Name="GetHashCode" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Item1" />
+      <Member MemberType="Property" Name="Item2" />
+    </Type>
+    <Type Name="System.Tuple&lt;T1,T2,T3&gt;">
+      <Member Name="#ctor(T1,T2,T3)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Item1" />
+      <Member Name="get_Item2" />
+      <Member Name="get_Item3" />
+      <Member Name="GetHashCode" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Item1" />
+      <Member MemberType="Property" Name="Item2" />
+      <Member MemberType="Property" Name="Item3" />
+    </Type>
+    <Type Name="System.Tuple&lt;T1,T2,T3,T4&gt;">
+      <Member Name="#ctor(T1,T2,T3,T4)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Item1" />
+      <Member Name="get_Item2" />
+      <Member Name="get_Item3" />
+      <Member Name="get_Item4" />
+      <Member Name="GetHashCode" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Item1" />
+      <Member MemberType="Property" Name="Item2" />
+      <Member MemberType="Property" Name="Item3" />
+      <Member MemberType="Property" Name="Item4" />
+    </Type>
+    <Type Name="System.Tuple&lt;T1,T2,T3,T4,T5&gt;">
+      <Member Name="#ctor(T1,T2,T3,T4,T5)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Item1" />
+      <Member Name="get_Item2" />
+      <Member Name="get_Item3" />
+      <Member Name="get_Item4" />
+      <Member Name="get_Item5" />
+      <Member Name="GetHashCode" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Item1" />
+      <Member MemberType="Property" Name="Item2" />
+      <Member MemberType="Property" Name="Item3" />
+      <Member MemberType="Property" Name="Item4" />
+      <Member MemberType="Property" Name="Item5" />
+    </Type>
+    <Type Name="System.Tuple&lt;T1,T2,T3,T4,T5,T6&gt;">
+      <Member Name="#ctor(T1,T2,T3,T4,T5,T6)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Item1" />
+      <Member Name="get_Item2" />
+      <Member Name="get_Item3" />
+      <Member Name="get_Item4" />
+      <Member Name="get_Item5" />
+      <Member Name="get_Item6" />
+      <Member Name="GetHashCode" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Item1" />
+      <Member MemberType="Property" Name="Item2" />
+      <Member MemberType="Property" Name="Item3" />
+      <Member MemberType="Property" Name="Item4" />
+      <Member MemberType="Property" Name="Item5" />
+      <Member MemberType="Property" Name="Item6" />
+    </Type>
+    <Type Name="System.Tuple&lt;T1,T2,T3,T4,T5,T6,T7&gt;">
+      <Member Name="#ctor(T1,T2,T3,T4,T5,T6,T7)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Item1" />
+      <Member Name="get_Item2" />
+      <Member Name="get_Item3" />
+      <Member Name="get_Item4" />
+      <Member Name="get_Item5" />
+      <Member Name="get_Item6" />
+      <Member Name="get_Item7" />
+      <Member Name="GetHashCode" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Item1" />
+      <Member MemberType="Property" Name="Item2" />
+      <Member MemberType="Property" Name="Item3" />
+      <Member MemberType="Property" Name="Item4" />
+      <Member MemberType="Property" Name="Item5" />
+      <Member MemberType="Property" Name="Item6" />
+      <Member MemberType="Property" Name="Item7" />
+    </Type>
+    <Type Name="System.Tuple&lt;T1,T2,T3,T4,T5,T6,T7,TRest&gt;">
+      <Member Name="#ctor(T1,T2,T3,T4,T5,T6,T7,TRest)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Item1" />
+      <Member Name="get_Item2" />
+      <Member Name="get_Item3" />
+      <Member Name="get_Item4" />
+      <Member Name="get_Item5" />
+      <Member Name="get_Item6" />
+      <Member Name="get_Item7" />
+      <Member Name="get_Rest" />
+      <Member Name="GetHashCode" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Item1" />
+      <Member MemberType="Property" Name="Item2" />
+      <Member MemberType="Property" Name="Item3" />
+      <Member MemberType="Property" Name="Item4" />
+      <Member MemberType="Property" Name="Item5" />
+      <Member MemberType="Property" Name="Item6" />
+      <Member MemberType="Property" Name="Item7" />
+      <Member MemberType="Property" Name="Rest" />
+    </Type>
+    <Type Name="System.Type">
+      <Member Name="#ctor" />
+      <Member MemberType="Field" Name="Delimiter" />
+      <Member MemberType="Field" Name="EmptyTypes" />
+      <Member MemberType="Field" Name="FilterNameIgnoreCase" />
+      <Member MemberType="Field" Name="Missing" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Type)" />
+      <Member Name="FindMembers(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object)" />
+      <Member Name="get_Assembly" />
+      <Member Name="get_AssemblyQualifiedName" />
+      <Member Name="get_Attributes" />
+      <Member Name="get_BaseType" />
+      <Member Name="get_ContainsGenericParameters" />
+      <Member Name="get_DeclaringType" />
+      <Member Name="get_DeclaringMethod" />
+      <Member Name="get_DefaultBinder" />
+      <Member Name="get_FullName" />
+      <Member Name="get_GenericParameterAttributes" />
+      <Member Name="get_GenericParameterPosition" />
+      <Member Name="get_GenericTypeArguments" />
+      <Member Name="get_GUID" />
+      <Member Name="get_HasElementType" />
+      <Member Name="get_IsAbstract" />
+      <Member Name="get_IsAnsiClass" />
+      <Member Name="get_IsArray" />
+      <Member Name="get_IsAutoClass" />
+      <Member Name="get_IsAutoLayout" />
+      <Member Name="get_IsByRef" />
+      <Member Name="get_IsConstructedGenericType" />
+      <Member Name="get_IsClass" />
+      <Member Name="get_IsCOMObject" />
+      <Member Name="get_IsEnum" />
+      <Member Name="get_IsExplicitLayout" />
+      <Member Name="get_IsGenericParameter" />
+      <Member Name="get_IsGenericType" />
+      <Member Name="get_IsGenericTypeDefinition" />
+      <Member Name="get_IsImport" />
+      <Member Name="get_IsInterface" />
+      <Member Name="get_IsLayoutSequential" />
+      <Member Name="get_IsMarshalByRef" />
+      <Member Name="get_IsNested" />
+      <Member Name="get_IsNestedAssembly" />
+      <Member Name="get_IsNestedFamANDAssem" />
+      <Member Name="get_IsNestedFamily" />
+      <Member Name="get_IsNestedFamORAssem" />
+      <Member Name="get_IsNestedPrivate" />
+      <Member Name="get_IsNestedPublic" />
+      <Member Name="get_IsNotPublic" />
+      <Member Name="get_IsPointer" />
+      <Member Name="get_IsPrimitive" />
+      <Member Name="get_IsPublic" />
+      <Member Name="get_IsSealed" />
+      <Member Name="get_IsSerializable" />
+      <Member Name="get_IsSpecialName" />
+      <Member Name="get_IsUnicodeClass" />
+      <Member Name="get_IsValueType" />
+      <Member Name="get_IsVisible" />
+      <Member Name="get_MemberType" />
+      <Member Name="get_Module" />
+      <Member Name="get_Namespace" />
+      <Member Name="get_ReflectedType" />
+      <Member Name="get_TypeHandle" />
+      <Member Name="get_UnderlyingSystemType" />
+      <Member Name="GetArrayRank" />
+      <Member Name="GetAttributeFlagsImpl" />
+      <Member Name="GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetConstructor(System.Type[])" />
+      <Member Name="GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetConstructors" />
+      <Member Name="GetConstructors(System.Reflection.BindingFlags)" />
+      <Member Name="GetDefaultMembers" />
+      <Member Name="GetElementType" />
+      <Member Name="GetEvent(System.String)" />
+      <Member Name="GetEvent(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetEvents" />
+      <Member Name="GetEvents(System.Reflection.BindingFlags)" />
+      <Member Name="GetField(System.String)" />
+      <Member Name="GetField(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetFields" />
+      <Member Name="GetFields(System.Reflection.BindingFlags)" />
+      <Member Name="GetGenericArguments" />
+      <Member Name="GetGenericParameterConstraints" />
+      <Member Name="GetGenericTypeDefinition" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetInterface(System.String,System.Boolean)" />
+      <Member Name="GetInterfaceMap(System.Type)" />
+      <Member Name="GetInterfaces" />
+      <Member Name="GetMember(System.String)" />
+      <Member Name="GetMember(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags)" />
+      <Member Name="GetMembers" />
+      <Member Name="GetMembers(System.Reflection.BindingFlags)" />
+      <Member Name="GetMethod(System.String)" />
+      <Member Name="GetMethod(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetMethod(System.String,System.Type[])" />
+      <Member Name="GetMethod(System.String,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetMethods" />
+      <Member Name="GetMethods(System.Reflection.BindingFlags)" />
+      <Member Name="GetNestedType(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetNestedTypes(System.Reflection.BindingFlags)" />
+      <Member Name="GetProperties" />
+      <Member Name="GetProperties(System.Reflection.BindingFlags)" />
+      <Member Name="GetProperty(System.String)" />
+      <Member Name="GetProperty(System.String,System.Reflection.BindingFlags)" />
+      <Member Name="GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetProperty(System.String,System.Type)" />
+      <Member Name="GetProperty(System.String,System.Type,System.Type[])" />
+      <Member Name="GetProperty(System.String,System.Type,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[])" />
+      <Member Name="GetType(System.String)" />
+      <Member Name="GetType(System.String,System.Boolean)" />
+      <Member Name="GetType(System.String,System.Boolean,System.Boolean)" />
+      <Member Name="GetTypeCode(System.Type)" />
+      <Member Name="GetTypeFromHandle(System.RuntimeTypeHandle)" />
+      <Member Name="GetTypeHandle(System.Object)" />
+      <Member Name="HasElementTypeImpl" />
+      <Member Name="InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[])" />
+      <Member Name="InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])" />
+      <Member Name="IsArrayImpl" />
+      <Member Name="IsAssignableFrom(System.Type)" />
+      <Member Name="IsByRefImpl" />
+      <Member Name="IsCOMObjectImpl" />
+      <Member Name="IsInstanceOfType(System.Object)" />
+      <Member Name="IsPointerImpl" />
+      <Member Name="IsPrimitiveImpl" />
+      <Member Name="IsSubclassOf(System.Type)" />
+      <Member Name="IsEquivalentTo(System.Type)" />
+      <Member Name="IsValueTypeImpl" />
+      <Member Name="MakeArrayType" />
+      <Member Name="MakeArrayType(System.Int32)" />
+      <Member Name="MakeByRefType" />
+      <Member Name="MakeGenericType(System.Type[])" />
+      <Member Name="MakePointerType" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Assembly" />
+      <Member MemberType="Property" Name="AssemblyQualifiedName" />
+      <Member MemberType="Property" Name="Attributes" />
+      <Member MemberType="Property" Name="BaseType" />
+      <Member MemberType="Property" Name="ContainsGenericParameters" />
+      <Member MemberType="Property" Name="DeclaringType" />
+      <Member MemberType="Property" Name="DeclaringMethod" />
+      <Member MemberType="Property" Name="DefaultBinder" />
+      <Member MemberType="Property" Name="FullName" />
+      <Member MemberType="Property" Name="GenericParameterAttributes" />
+      <Member MemberType="Property" Name="GenericParameterPosition" />
+      <Member MemberType="Property" Name="GenericTypeArguments" />
+      <Member MemberType="Property" Name="GUID" />
+      <Member MemberType="Property" Name="HasElementType" />
+      <Member MemberType="Property" Name="IsAbstract" />
+      <Member MemberType="Property" Name="IsAnsiClass" />
+      <Member MemberType="Property" Name="IsArray" />
+      <Member MemberType="Property" Name="IsAutoClass" />
+      <Member MemberType="Property" Name="IsAutoLayout" />
+      <Member MemberType="Property" Name="IsByRef" />
+      <Member MemberType="Property" Name="IsConstructedGenericType" />
+      <Member MemberType="Property" Name="IsClass" />
+      <Member MemberType="Property" Name="IsCOMObject" />
+      <Member MemberType="Property" Name="IsEnum" />
+      <Member MemberType="Property" Name="IsExplicitLayout" />
+      <Member MemberType="Property" Name="IsGenericParameter" />
+      <Member MemberType="Property" Name="IsGenericType" />
+      <Member MemberType="Property" Name="IsGenericTypeDefinition" />
+      <Member MemberType="Property" Name="IsImport" />
+      <Member MemberType="Property" Name="IsInterface" />
+      <Member MemberType="Property" Name="IsLayoutSequential" />
+      <Member MemberType="Property" Name="IsMarshalByRef" />
+      <Member MemberType="Property" Name="IsNested" />
+      <Member MemberType="Property" Name="IsNestedAssembly" />
+      <Member MemberType="Property" Name="IsNestedFamANDAssem" />
+      <Member MemberType="Property" Name="IsNestedFamily" />
+      <Member MemberType="Property" Name="IsNestedFamORAssem" />
+      <Member MemberType="Property" Name="IsNestedPrivate" />
+      <Member MemberType="Property" Name="IsNestedPublic" />
+      <Member MemberType="Property" Name="IsNotPublic" />
+      <Member MemberType="Property" Name="IsPointer" />
+      <Member MemberType="Property" Name="IsPrimitive" />
+      <Member MemberType="Property" Name="IsPublic" />
+      <Member MemberType="Property" Name="IsSealed" />
+      <Member MemberType="Property" Name="IsSerializable" />
+      <Member MemberType="Property" Name="IsSpecialName" />
+      <Member MemberType="Property" Name="IsUnicodeClass" />
+      <Member MemberType="Property" Name="IsValueType" />
+      <Member MemberType="Property" Name="IsVisible" />
+      <Member MemberType="Property" Name="MemberType" />
+      <Member MemberType="Property" Name="Module" />
+      <Member MemberType="Property" Name="Namespace" />
+      <Member MemberType="Property" Name="ReflectedType" />
+      <Member MemberType="Property" Name="TypeHandle" />
+      <Member MemberType="Property" Name="UnderlyingSystemType" />
+         <Member Name="GetEnumName(System.Object)" />
+      <Member Name="GetEnumNames" />
+      <Member Name="GetEnumUnderlyingType" />
+      <Member Name="GetEnumValues" />
+      <Member Name="GetInterface(System.String)" />
+      <Member Name="GetNestedType(System.String)" />
+      <Member Name="GetNestedTypes" />
+      <Member Name="GetProperty(System.String,System.Type[])" />
+      <Member Name="IsEnumDefined(System.Object)" />
+      <Member Name="get_StructLayoutAttribute" />
+      <Member Name="get_TypeInitializer" />
+      <Member Name="FindInterfaces(System.Reflection.TypeFilter,System.Object)" />               
+         <Member MemberType="Property" Name="TypeInitializer" />
+      <Member MemberType="Property" Name="StructLayoutAttribute" /> 
+    </Type>
+    <Type Name="System.TypeAccessException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.TypeCode">
+      <Member MemberType="Field" Name="Boolean" />
+      <Member MemberType="Field" Name="Byte" />
+      <Member MemberType="Field" Name="Char" />
+      <Member MemberType="Field" Name="DateTime" />
+      <Member MemberType="Field" Name="DBNull" />
+      <Member MemberType="Field" Name="Decimal" />
+      <Member MemberType="Field" Name="Double" />
+      <Member MemberType="Field" Name="Empty" />
+      <Member MemberType="Field" Name="Int16" />
+      <Member MemberType="Field" Name="Int32" />
+      <Member MemberType="Field" Name="Int64" />
+      <Member MemberType="Field" Name="Object" />
+      <Member MemberType="Field" Name="SByte" />
+      <Member MemberType="Field" Name="Single" />
+      <Member MemberType="Field" Name="String" />
+      <Member MemberType="Field" Name="UInt16" />
+      <Member MemberType="Field" Name="UInt32" />
+      <Member MemberType="Field" Name="UInt64" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.TypeInitializationException" >
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="get_TypeName" />
+      <Member MemberType="Property" Name="TypeName" />
+    </Type>
+    <Type Name="System.TypedReference" />
+    <Type Name="System.TypeLoadException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Status="ImplRoot" Name="#ctor(System.String,System.String,System.String,System.Int32)" />
+      <Member Name="get_TypeName" />
+      <Member MemberType="Property" Name="TypeName" />
+    </Type>
+    <Type Name="System.UInt16">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="CompareTo(System.UInt16)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.UInt16)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.UInt16@)" />
+      <Member Name="TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.UInt16@)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.UInt32">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="CompareTo(System.UInt32)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.UInt32)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.UInt32@)" />
+      <Member Name="TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.UInt32@)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.UInt64">
+      <Member MemberType="Field" Name="MaxValue" />
+      <Member MemberType="Field" Name="MinValue" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="CompareTo(System.UInt64)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.UInt64)" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetTypeCode" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles)" />
+      <Member Name="Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)" />
+      <Member Name="Parse(System.String,System.IFormatProvider)" />
+      <Member Name="TryParse(System.String,System.UInt64@)" />
+      <Member Name="TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.UInt64@)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.IFormatProvider)" />
+      <Member Name="ToString(System.String)" />
+      <Member Name="ToString(System.String,System.IFormatProvider)" />
+    </Type>
+    <Type Name="System.UIntPtr">
+      <Member MemberType="Field" Name="Zero" />
+      <Member Name="#ctor(System.UInt32)" />
+      <Member Name="#ctor(System.UInt64)" />
+      <Member Name="#ctor(System.Void*)" />
+      <Member Name="Add(System.UIntPtr,System.Int32)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="get_Size" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Addition(System.UIntPtr,System.Int32)" />
+      <Member Name="op_Equality(System.UIntPtr,System.UIntPtr)" />
+      <Member Name="op_Explicit(System.UInt32)" ReturnType="System.UIntPtr" />
+      <Member Name="op_Explicit(System.UInt64)" ReturnType="System.UIntPtr" />
+      <Member Name="op_Explicit(System.UIntPtr)" ReturnType="System.UInt32" />
+      <Member Name="op_Explicit(System.UIntPtr)" ReturnType="System.UInt64" />
+      <Member Name="op_Explicit(System.UIntPtr)" ReturnType="System.Void*" />
+      <Member Name="op_Explicit(System.Void*)" ReturnType="System.UIntPtr" />
+      <Member Name="op_Inequality(System.UIntPtr,System.UIntPtr)" />
+      <Member Name="op_Subtraction(System.UIntPtr,System.Int32)" />
+      <Member Name="Subtract(System.UIntPtr,System.Int32)" />
+      <Member Name="ToPointer" />
+      <Member Name="ToString" />
+      <Member Name="ToUInt32" />
+      <Member Name="ToUInt64" />
+      <Member MemberType="Property" Name="Size" />
+    </Type>
+    <Type Name="System.UnauthorizedAccessException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.UnhandledExceptionEventArgs">
+      <Member Name="#ctor(System.Object,System.Boolean)" />
+      <Member Name="get_ExceptionObject" />
+      <Member Name="get_IsTerminating" />
+      <Member MemberType="Property" Name="ExceptionObject" />
+      <Member MemberType="Property" Name="IsTerminating" />
+    </Type>    
+    <Type Name="System.UnhandledExceptionEventHandler">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(System.Object,System.UnhandledExceptionEventArgs,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(System.Object,System.UnhandledExceptionEventArgs)" />
+    </Type>
+    <Type Name="System.ValueType">
+      <Member Name="#ctor" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+    </Type>
+    <Type Name="System.Variant" Condition="FEATURE_COMINTEROP">
+      <Member Status="ImplRoot" MemberType="Field" Name="m_objref" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_data1" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_data2" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_flags" />
+      <Member Status="ImplRoot" Name="MarshalHelperConvertObjectToVariant(System.Object,System.Variant@)" />
+      <Member Status="ImplRoot" Name="MarshalHelperCastVariant(System.Object,System.Int32,System.Variant@)" />
+      <Member Status="ImplRoot" Name="MarshalHelperConvertVariantToObject(System.Variant@)" />
+    </Type>
+    <Type Name="System.Version">
+      <Member Name="#ctor(System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="Clone" />
+      <Member Name="CompareTo(System.Object)" />
+      <Member Name="CompareTo(System.Version)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Version)" />
+      <Member Name="get_Build" />
+      <Member Name="get_Major" />
+      <Member Name="get_MajorRevision" />
+      <Member Name="get_Minor" />
+      <Member Name="get_MinorRevision" />
+      <Member Name="get_Revision" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Version,System.Version)" />
+      <Member Name="op_GreaterThan(System.Version,System.Version)" />
+      <Member Name="op_GreaterThanOrEqual(System.Version,System.Version)" />
+      <Member Name="op_Inequality(System.Version,System.Version)" />
+      <Member Name="op_LessThan(System.Version,System.Version)" />
+      <Member Name="op_LessThanOrEqual(System.Version,System.Version)" />
+      <Member Name="Parse(System.String)" />
+      <Member Name="ToString" />
+      <Member Name="ToString(System.Int32)" />
+      <Member Name="TryParse(System.String,System.Version@)" />
+      <Member MemberType="Property" Name="Build" />
+      <Member MemberType="Property" Name="Major" />
+      <Member MemberType="Property" Name="MajorRevision" />
+      <Member MemberType="Property" Name="Minor" />
+      <Member MemberType="Property" Name="MinorRevision" />
+      <Member MemberType="Property" Name="Revision" />
+    </Type>
+    <Type Name="System.Void" />
+    <Type Name="System.WeakReference">
+      <Member Name="#ctor(System.Object)" />
+      <Member Name="#ctor(System.Object,System.Boolean)" />
+      <Member Name="#ctor" />
+      <Member Name="get_IsAlive" />
+      <Member Name="get_Target" />
+      <Member Name="get_TrackResurrection" />
+      <Member Name="set_Target(System.Object)" />
+      <Member MemberType="Property" Name="IsAlive" />
+      <Member MemberType="Property" Name="Target" />
+      <Member MemberType="Property" Name="TrackResurrection" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.WeakReference&lt;T&gt;">
+      <Member Name="#ctor(T)" />
+      <Member Name="#ctor(T,System.Boolean)" />
+      <Member Name="SetTarget(T)" />
+      <Member Name="TryGetTarget(T@)" />
+      <Member Status="ImplRoot" Name="Finalize" />
+    </Type>
+
+<!-- SMOSIER ADDED API ROOTS FOR C# -->
+    <Type Name="System.Runtime.CompilerServices.RuntimeCompatibilityAttribute">
+      <Member MemberType="Property" Name="WrapNonExceptionThrows" />
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.AsyncStateMachineAttribute">
+      <Member Name="#ctor(System.Type)" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.IteratorStateMachineAttribute">
+      <Member Name="#ctor(System.Type)" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.StateMachineAttribute">
+      <Member Name="#ctor(System.Type)" />
+      <Member Name="get_StateMachineType" />
+      <Member MemberType="Property" Name="StateMachineType" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.CallerFilePathAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.CallerLineNumberAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.CallerMemberNameAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.CompilerGeneratedAttribute">
+      <Member Name="#ctor" />
+    </Type>
+
+<!-- SMOSIER ADDED API ROOTS FOR our build process -->
+    <Type Name="System.Runtime.InteropServices.ComVisibleAttribute">
+      <Member Name="#ctor(System.Boolean)" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Name="System.Reflection.AssemblyFileVersionAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="get_Version" />
+      <Member MemberType="Property" Name="Version" />
+    </Type>
+
+    <Type Status="ImplRoot" Name="System.Security.Permissions.HostProtectionAttribute">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Security.Permissions.SecurityAction)" />
+      <Member Name="get_ExternalProcessMgmt" />
+      <Member Name="get_ExternalThreading" />
+      <Member Name="get_MayLeakOnAbort" />
+      <Member Name="get_Resources" />
+      <Member Name="get_SecurityInfrastructure" />
+      <Member Name="get_SelfAffectingProcessMgmt" />
+      <Member Name="get_SelfAffectingThreading" />
+      <Member Name="get_SharedState" />
+      <Member Name="get_Synchronization" />
+      <Member Name="get_UI" />
+      <Member Name="set_ExternalProcessMgmt(System.Boolean)" />
+      <Member Name="set_ExternalThreading(System.Boolean)" />
+      <Member Name="set_MayLeakOnAbort(System.Boolean)" />
+      <Member Name="set_Resources(System.Security.Permissions.HostProtectionResource)" />
+      <Member Name="set_SecurityInfrastructure(System.Boolean)" />
+      <Member Name="set_SelfAffectingProcessMgmt(System.Boolean)" />
+      <Member Name="set_SelfAffectingThreading(System.Boolean)" />
+      <Member Name="set_SharedState(System.Boolean)" />
+      <Member Name="set_Synchronization(System.Boolean)" />
+      <Member Name="set_UI(System.Boolean)" />
+      <Member MemberType="Property" Name="ExternalProcessMgmt" />
+      <Member MemberType="Property" Name="ExternalThreading" />
+      <Member MemberType="Property" Name="MayLeakOnAbort" />
+      <Member MemberType="Property" Name="Resources" />
+      <Member MemberType="Property" Name="SecurityInfrastructure" />
+      <Member MemberType="Property" Name="SelfAffectingProcessMgmt" />
+      <Member MemberType="Property" Name="SelfAffectingThreading" />
+      <Member MemberType="Property" Name="SharedState" />
+      <Member MemberType="Property" Name="Synchronization" />
+      <Member MemberType="Property" Name="UI" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Security.Permissions.HostProtectionResource" />
+
+    <Type Name="System.IO.BinaryReader">
+      <Member Name="#ctor(System.IO.Stream)" />
+      <Member Name="#ctor(System.IO.Stream,System.Text.Encoding)" />
+      <Member Name="#ctor(System.IO.Stream,System.Text.Encoding,System.Boolean)" />
+      <Member Name="Close" />
+      <Member Name="Dispose" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="FillBuffer(System.Int32)" />
+      <Member Name="get_BaseStream" />
+      <Member Name="PeekChar" />
+      <Member Name="Read" />
+      <Member Name="Read7BitEncodedInt" />
+      <Member Name="Read(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="Read(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="ReadBoolean" />
+      <Member Name="ReadByte" />
+      <Member Name="ReadBytes(System.Int32)" />
+      <Member Name="ReadChar" />
+      <Member Name="ReadChars(System.Int32)" />
+      <Member Name="ReadDecimal" />
+      <Member Name="ReadDouble" />
+      <Member Name="ReadInt16" />
+      <Member Name="ReadInt32" />
+      <Member Name="ReadInt64" />
+      <Member Name="ReadSByte" />
+      <Member Name="ReadSingle" />
+      <Member Name="ReadString" />
+      <Member Name="ReadUInt16" />
+      <Member Name="ReadUInt32" />
+      <Member Name="ReadUInt64" />
+      <Member MemberType="Property" Name="BaseStream" />
+    </Type>
+    <Type Name="System.IO.BinaryWriter">
+      <Member MemberType="Field" Name="Null" />
+      <Member MemberType="Field" Name="OutStream" />
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.IO.Stream)" />
+      <Member Name="#ctor(System.IO.Stream,System.Text.Encoding)" />
+      <Member Name="#ctor(System.IO.Stream,System.Text.Encoding,System.Boolean)" />
+      <Member Name="Close" />
+      <Member Name="Dispose" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Flush" />
+      <Member Name="get_BaseStream" />
+      <Member Name="Seek(System.Int32,System.IO.SeekOrigin)" />
+      <Member Name="Write(System.Boolean)" />
+      <Member Name="Write(System.Byte)" />
+      <Member Name="Write(System.Byte[])" />
+      <Member Name="Write(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="Write(System.Char)" />
+      <Member Name="Write(System.Char[])" />
+      <Member Name="Write(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="Write(System.Decimal)" />
+      <Member Name="Write(System.Double)" />
+      <Member Name="Write(System.Int16)" />
+      <Member Name="Write(System.Int32)" />
+      <Member Name="Write(System.Int64)" />
+      <Member Name="Write(System.SByte)" />
+      <Member Name="Write(System.Single)" />
+      <Member Name="Write(System.String)" />
+      <Member Name="Write(System.UInt16)" />
+      <Member Name="Write(System.UInt32)" />
+      <Member Name="Write(System.UInt64)" />
+      <Member Name="Write7BitEncodedInt(System.Int32)" />
+      <Member MemberType="Property" Name="BaseStream" />
+    </Type>
+    <Type Name="System.IO.DirectoryNotFoundException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.IO.EndOfStreamException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.IO.FileNotFoundException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member Name="#ctor(System.String,System.String,System.Exception)" />
+      <Member Name="get_FileName" />
+      <Member MemberType="Property" Name="FileName" />
+      <Member Status="ImplRoot" Name="#ctor(System.String,System.String,System.Int32)" />
+    </Type>
+    <Type Name="System.IO.IOException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="#ctor(System.String,System.Int32)"  />
+    </Type>
+    <Type Name="System.IO.MemoryStream">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Byte[])" />
+      <Member Name="#ctor(System.Byte[],System.Boolean)" />
+      <Member Name="#ctor(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Byte[],System.Int32,System.Int32,System.Boolean)" />
+      <Member Name="#ctor(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean)" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="CopyToAsync(System.IO.Stream,System.Int32,System.Threading.CancellationToken)"  />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Flush" />
+      <Member Name="FlushAsync(System.Threading.CancellationToken)"  />
+      <Member Name="get_CanRead" />
+      <Member Name="get_CanSeek" />
+      <Member Name="get_CanWrite" />
+      <Member Name="get_Capacity" />
+      <Member Name="get_Length" />
+      <Member Name="get_Position" />
+      <Member Name="GetBuffer" />
+      <Member Name="TryGetBuffer(System.ArraySegment&lt;System.Byte&gt;@)" />
+      <Member Name="Read(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="ReadAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)"  />
+      <Member Name="ReadByte" />
+      <Member Name="Seek(System.Int64,System.IO.SeekOrigin)" />
+      <Member Name="set_Capacity(System.Int32)" />
+      <Member Name="set_Position(System.Int64)" />
+      <Member Name="SetLength(System.Int64)" />
+      <Member Name="ToArray" />
+      <Member Name="Write(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)"  />
+      <Member Name="WriteByte(System.Byte)" />
+      <Member Name="WriteTo(System.IO.Stream)" />
+      <Member MemberType="Property" Name="CanRead" />
+      <Member MemberType="Property" Name="CanSeek" />
+      <Member MemberType="Property" Name="CanWrite" />
+      <Member MemberType="Property" Name="Capacity" />
+      <Member MemberType="Property" Name="Length" />
+      <Member MemberType="Property" Name="Position" />
+      <Member Status="ApiFxInternal" Name="InternalGetOriginAndLength(System.Int32@,System.Int32@)" Condition="FEATURE_COMINTEROP" />
+    </Type>
+    <Type Name="System.IO.Path">
+      <Member MemberType="Field" Name="AltDirectorySeparatorChar" />
+      <Member MemberType="Field" Name="DirectorySeparatorChar" />
+      <Member MemberType="Field" Name="PathSeparator" />
+      <Member MemberType="Field" Name="VolumeSeparatorChar" />
+      <Member Name="ChangeExtension(System.String,System.String)" />
+      <Member Name="Combine(System.String,System.String)" />
+      <Member Name="Combine(System.String,System.String,System.String)"  />
+      <Member Name="Combine(System.String[])"  />
+      <Member Name="GetDirectoryName(System.String)" />
+      <Member Name="GetExtension(System.String)" />
+      <Member Name="GetFileName(System.String)" />
+      <Member Name="GetFileNameWithoutExtension(System.String)" />
+      <Member Name="GetFullPath(System.String)" />
+      <Member Name="GetInvalidPathChars" />
+      <Member Name="GetInvalidFileNameChars"  />
+      <Member Name="GetPathRoot(System.String)" />
+      <Member Name="HasExtension(System.String)" />
+      <Member Name="IsPathRooted(System.String)" />
+      <Member Name="GetRandomFileName" />
+      <Member Name="GetTempFileName" />
+      <Member Name="GetTempPath" />
+    </Type>
+    <Type Name="System.IO.PathTooLongException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.IO.SearchOption" Condition="FEATURE_LEGACYSURFACE">
+      <Member MemberType="Field" Name="TopDirectoryOnly" />
+      <Member MemberType="Field" Name="AllDirectories" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.IO.SeekOrigin" Condition="FEATURE_LEGACYSURFACE">
+      <Member MemberType="Field" Name="Begin" />
+      <Member MemberType="Field" Name="Current" />
+      <Member MemberType="Field" Name="End" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.IO.Stream">
+      <Member MemberType="Field" Name="Null" />
+      <Member Name="#ctor" />
+      <Member Name="BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)" />
+      <Member Name="BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)" />
+      <Member Name="CopyTo(System.IO.Stream)" />
+      <Member Name="CopyTo(System.IO.Stream,System.Int32)" />
+      <Member Name="CopyToAsync(System.IO.Stream)"  />
+      <Member Name="CopyToAsync(System.IO.Stream,System.Int32)"  />
+      <Member Name="CopyToAsync(System.IO.Stream,System.Int32,System.Threading.CancellationToken)"  />
+      <Member Name="Close" />
+      <Member Name="Dispose" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="EndRead(System.IAsyncResult)" />
+      <Member Name="EndWrite(System.IAsyncResult)" />
+      <Member Name="Flush" />
+      <Member Name="FlushAsync"  />
+      <Member Name="FlushAsync(System.Threading.CancellationToken)"  />
+      <Member Name="get_CanRead" />
+      <Member Name="get_CanSeek" />
+      <Member Name="get_CanTimeout" />
+      <Member Name="get_CanWrite" />
+      <Member Name="get_Length" />
+      <Member Name="get_Position" />
+      <Member Name="get_ReadTimeout" />
+      <Member Name="get_WriteTimeout" />
+      <Member Name="Read(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="ReadByte" />
+      <Member Name="ReadAsync(System.Byte[],System.Int32,System.Int32)"  />
+      <Member Name="ReadAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)"  />
+      <Member Name="Seek(System.Int64,System.IO.SeekOrigin)" />
+      <Member Name="set_Position(System.Int64)" />
+      <Member Name="set_ReadTimeout(System.Int32)" />
+      <Member Name="set_WriteTimeout(System.Int32)" />
+      <Member Name="SetLength(System.Int64)" />
+      <Member Name="Write(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="WriteAsync(System.Byte[],System.Int32,System.Int32)"  />
+      <Member Name="WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)"  />
+      <Member Name="WriteByte(System.Byte)" />
+      <Member MemberType="Property" Name="CanRead" />
+      <Member MemberType="Property" Name="CanSeek" />
+      <Member MemberType="Property" Name="CanTimeout" />
+      <Member MemberType="Property" Name="CanWrite" />
+      <Member MemberType="Property" Name="Length" />
+      <Member MemberType="Property" Name="Position" />
+      <Member MemberType="Property" Name="ReadTimeout" />
+      <Member MemberType="Property" Name="WriteTimeout" />
+    </Type>
+    <Type Name="System.IO.StreamReader">
+      <Member MemberType="Field" Name="Null" />
+      <Member Name="#ctor(System.IO.Stream)" />
+      <Member Name="#ctor(System.IO.Stream,System.Boolean)" />
+      <Member Name="#ctor(System.IO.Stream,System.Text.Encoding)" />
+      <Member Name="#ctor(System.IO.Stream,System.Text.Encoding,System.Boolean)" />
+      <Member Name="#ctor(System.IO.Stream,System.Text.Encoding,System.Boolean,System.Int32)" />
+      <Member Name="#ctor(System.IO.Stream,System.Text.Encoding,System.Boolean,System.Int32,System.Boolean)"   />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Boolean)" />
+      <Member Name="#ctor(System.String,System.Text.Encoding)" />
+      <Member Name="#ctor(System.String,System.Text.Encoding,System.Boolean)" />
+      <Member Name="#ctor(System.String,System.Text.Encoding,System.Boolean,System.Int32)" />
+      <Member Name="Close" />
+      <Member Name="DiscardBufferedData" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="get_BaseStream" />
+      <Member Name="get_CurrentEncoding" />
+      <Member Name="get_EndOfStream" />
+      <Member Name="Peek" />
+      <Member Name="Read" />
+      <Member Name="Read(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="ReadAsync(System.Char[],System.Int32,System.Int32)"  />
+      <Member Name="ReadBlock(System.Char[],System.Int32,System.Int32)"  />
+      <Member Name="ReadBlockAsync(System.Char[],System.Int32,System.Int32)"  />
+      <Member Name="ReadLine" />
+      <Member Name="ReadLineAsync"  />
+      <Member Name="ReadToEnd" />
+      <Member Name="ReadToEndAsync"  />
+      <Member MemberType="Property" Name="BaseStream" />
+      <Member MemberType="Property" Name="CurrentEncoding" />
+      <Member MemberType="Property" Name="EndOfStream" />
+    </Type>
+    <Type Name="System.IO.StreamWriter">
+      <Member MemberType="Field" Name="Null" />
+      <Member Name="#ctor(System.IO.Stream)" />
+      <Member Name="#ctor(System.IO.Stream,System.Text.Encoding)" />
+      <Member Name="#ctor(System.IO.Stream,System.Text.Encoding,System.Int32)" />
+      <Member Name="#ctor(System.IO.Stream,System.Text.Encoding,System.Int32,System.Boolean)" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Boolean)" />
+      <Member Name="#ctor(System.String,System.Boolean,System.Text.Encoding)" />
+      <Member Name="#ctor(System.String,System.Boolean,System.Text.Encoding,System.Int32)" />
+      <Member Name="Close" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Flush" />
+      <Member Name="FlushAsync"  />
+      <Member Name="get_AutoFlush" />
+      <Member Name="get_BaseStream" />
+      <Member Name="get_Encoding" />
+      <Member Name="set_AutoFlush(System.Boolean)" />
+      <Member Name="Write(System.Char)" />
+      <Member Name="Write(System.Char[])" />
+      <Member Name="Write(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="Write(System.String)" />
+      <Member Name="WriteAsync(System.Char)"  />
+      <Member Name="WriteAsync(System.Char[],System.Int32,System.Int32)"  />
+      <Member Name="WriteAsync(System.String)"  />
+      <Member Name="WriteLineAsync"  />
+      <Member Name="WriteLineAsync(System.Char)"  />
+      <Member Name="WriteLineAsync(System.Char[],System.Int32,System.Int32)"  />
+      <Member Name="WriteLineAsync(System.String)"  />
+      <Member MemberType="Property" Name="AutoFlush" />
+      <Member MemberType="Property" Name="BaseStream" />
+      <Member MemberType="Property" Name="Encoding" />
+    </Type>
+    <Type Name="System.IO.StringReader">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="Close" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Peek" />
+      <Member Name="Read" />
+      <Member Name="Read(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="ReadAsync(System.Char[],System.Int32,System.Int32)"  />
+      <Member Name="ReadBlockAsync(System.Char[],System.Int32,System.Int32)"  />
+      <Member Name="ReadLine" />
+      <Member Name="ReadLineAsync"  />
+      <Member Name="ReadToEnd" />
+      <Member Name="ReadToEndAsync"  />
+    </Type>
+    <Type Name="System.IO.StringWriter">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.IFormatProvider)" />
+      <Member Name="#ctor(System.Text.StringBuilder)" />
+      <Member Name="#ctor(System.Text.StringBuilder,System.IFormatProvider)" />
+      <Member Name="Close" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="FlushAsync"  />
+      <Member Name="get_Encoding" />
+      <Member Name="GetStringBuilder" />
+      <Member Name="ToString" />
+      <Member Name="Write(System.Char)" />
+      <Member Name="Write(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="Write(System.String)" />
+      <Member Name="WriteAsync(System.Char)"  />
+      <Member Name="WriteAsync(System.Char[],System.Int32,System.Int32)"  />
+      <Member Name="WriteAsync(System.String)"  />
+      <Member Name="WriteLineAsync(System.Char)"  />
+      <Member Name="WriteLineAsync(System.Char[],System.Int32,System.Int32)"  />
+      <Member Name="WriteLineAsync(System.String)"  />
+      <Member MemberType="Property" Name="Encoding" />
+    </Type>
+    <Type Name="System.IO.TextReader">
+      <Member MemberType="Field" Name="Null" />
+      <Member Name="#ctor" />
+      <Member Name="Close" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Peek" />
+      <Member Name="Read" />
+      <Member Name="Read(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="ReadAsync(System.Char[],System.Int32,System.Int32)"  />
+      <Member Name="ReadBlock(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="ReadBlockAsync(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="ReadLine" />
+      <Member Name="ReadLineAsync"  />
+      <Member Name="ReadToEnd" />
+      <Member Name="ReadToEndAsync"  />
+    </Type>
+    <Type Name="System.IO.TextWriter">
+      <Member MemberType="Field" Name="CoreNewLine" />
+      <Member MemberType="Field" Name="Null" />
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.IFormatProvider)" />
+      <Member Name="Close" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Flush" />
+      <Member Name="FlushAsync" />
+      <Member Name="get_Encoding" />
+      <Member Name="get_FormatProvider" />
+      <Member Name="get_NewLine" />
+      <Member Name="set_NewLine(System.String)" />
+      <Member Name="Write(System.Boolean)" />
+      <Member Name="Write(System.Char)" />
+      <Member Name="Write(System.Char[])" />
+      <Member Name="Write(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="Write(System.Decimal)" />
+      <Member Name="Write(System.Double)" />
+      <Member Name="Write(System.Int32)" />
+      <Member Name="Write(System.Int64)" />
+      <Member Name="Write(System.Object)" />
+      <Member Name="Write(System.Single)" />
+      <Member Name="Write(System.String)" />
+      <Member Name="Write(System.String,System.Object)" />
+      <Member Name="Write(System.String,System.Object,System.Object)" />
+      <Member Name="Write(System.String,System.Object,System.Object,System.Object)" />
+      <Member Name="Write(System.String,System.Object[])" />
+      <Member Name="Write(System.UInt32)" />
+      <Member Name="Write(System.UInt64)" />
+      <Member Name="WriteAsync(System.Char)" />
+      <Member Name="WriteAsync(System.Char[])" />
+      <Member Name="WriteAsync(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="WriteAsync(System.String)" />
+      <Member Name="WriteLine" />
+      <Member Name="WriteLine(System.Boolean)" />
+      <Member Name="WriteLine(System.Char)" />
+      <Member Name="WriteLine(System.Char[])" />
+      <Member Name="WriteLine(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="WriteLine(System.Decimal)" />
+      <Member Name="WriteLine(System.Double)" />
+      <Member Name="WriteLine(System.Int32)" />
+      <Member Name="WriteLine(System.Int64)" />
+      <Member Name="WriteLine(System.Object)" />
+      <Member Name="WriteLine(System.Single)" />
+      <Member Name="WriteLine(System.String)" />
+      <Member Name="WriteLine(System.String,System.Object)" />
+      <Member Name="WriteLine(System.String,System.Object,System.Object)" />
+      <Member Name="WriteLine(System.String,System.Object,System.Object,System.Object)" />
+      <Member Name="WriteLine(System.String,System.Object[])" />
+      <Member Name="WriteLine(System.UInt32)" />
+      <Member Name="WriteLine(System.UInt64)" />
+      <Member Name="WriteLineAsync" />
+      <Member Name="WriteLineAsync(System.Char)" />
+      <Member Name="WriteLineAsync(System.Char[])" />
+      <Member Name="WriteLineAsync(System.Char[],System.Int32,System.Int32)" />
+      <Member Name="WriteLineAsync(System.String)" />
+      <Member MemberType="Property" Name="Encoding" />
+      <Member MemberType="Property" Name="FormatProvider" />
+      <Member MemberType="Property" Name="NewLine" />
+    </Type>
+    <Type Name="System.IO.UnmanagedMemoryAccessor">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64)" />
+      <Member Name="#ctor(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess)" />
+      <Member Name="Dispose" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="get_CanRead" />
+      <Member Name="get_CanWrite" />
+      <Member Name="get_Capacity" />
+      <Member Name="get_IsOpen" />
+      <Member Name="Initialize(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess)" />
+      <Member Name="ReadBoolean(System.Int64)" />
+      <Member Name="ReadByte(System.Int64)" />
+      <Member Name="ReadChar(System.Int64)" />
+      <Member Name="ReadDecimal(System.Int64)" />
+      <Member Name="ReadDouble(System.Int64)" />
+      <Member Name="ReadInt16(System.Int64)" />
+      <Member Name="ReadInt32(System.Int64)" />
+      <Member Name="ReadInt64(System.Int64)" />
+      <Member Name="ReadSByte(System.Int64)" />
+      <Member Name="ReadSingle(System.Int64)" />
+      <Member Name="ReadUInt16(System.Int64)" />
+      <Member Name="ReadUInt32(System.Int64)" />
+      <Member Name="ReadUInt64(System.Int64)" />
+      <Member Name="Write(System.Int64,System.Boolean)" />
+      <Member Name="Write(System.Int64,System.Byte)" />
+      <Member Name="Write(System.Int64,System.Char)" />
+      <Member Name="Write(System.Int64,System.Decimal)" />
+      <Member Name="Write(System.Int64,System.Double)" />
+      <Member Name="Write(System.Int64,System.Int16)" />
+      <Member Name="Write(System.Int64,System.Int32)" />
+      <Member Name="Write(System.Int64,System.Int64)" />
+      <Member Name="Write(System.Int64,System.SByte)" />
+      <Member Name="Write(System.Int64,System.Single)" />
+      <Member Name="Write(System.Int64,System.UInt16)" />
+      <Member Name="Write(System.Int64,System.UInt32)" />
+      <Member Name="Write(System.Int64,System.UInt64)" />
+      <Member MemberType="Property" Name="CanRead" />
+      <Member MemberType="Property" Name="CanWrite" />
+      <Member MemberType="Property" Name="Capacity" />
+      <Member MemberType="Property" Name="IsOpen" />
+    </Type>
+    <Type Name="System.IO.UnmanagedMemoryStream">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Byte*,System.Int64)" />
+      <Member Name="#ctor(System.Byte*,System.Int64,System.Int64,System.IO.FileAccess)" />
+      <Member Name="#ctor(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64)" />
+      <Member Name="#ctor(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess)" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Flush" />
+      <Member Name="get_CanRead" />
+      <Member Name="get_CanSeek" />
+      <Member Name="get_CanWrite" />
+      <Member Name="get_Capacity" />        
+      <Member Name="get_Length" />
+      <Member Name="get_Position" />      
+      <Member Name="get_PositionPointer" /> 
+      <Member Name="Initialize(System.Byte*,System.Int64,System.Int64,System.IO.FileAccess)" />
+      <Member Name="Initialize(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess)" />
+      <Member Name="Read(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="ReadByte" />
+      <Member Name="Seek(System.Int64,System.IO.SeekOrigin)" />
+      <Member Name="set_Position(System.Int64)" />
+      <Member Name="SetLength(System.Int64)"  />
+      <Member Name="Write(System.Byte[],System.Int32,System.Int32)" />
+      <Member Name="WriteByte(System.Byte)" />
+      <Member MemberType="Property" Name="CanRead" />
+      <Member MemberType="Property" Name="CanSeek" />
+      <Member MemberType="Property" Name="CanWrite" />
+      <Member MemberType="Property" Name="Capacity" />
+      <Member MemberType="Property" Name="Length" />
+      <Member MemberType="Property" Name="Position" /> 
+      <Member MemberType="Property" Name="PositionPointer" /> 
+    </Type>          
+    <Type Name="System.Security.Permissions.SecurityAttribute">
+      <Member Name="#ctor(System.Security.Permissions.SecurityAction)" />
+      <Member Name="get_Action" />
+      <Member Name="get_Unrestricted" />
+      <Member Name="set_Action(System.Security.Permissions.SecurityAction)" />
+      <Member Name="set_Unrestricted(System.Boolean)" />
+      <Member Name="FindSecurityAttributeTypeHandle(System.String)"/>
+      <Member MemberType="Property" Name="Action" />
+      <Member MemberType="Property" Name="Unrestricted" />
+    </Type>
+
+    <Type Status="ApiRoot" Name="System.Diagnostics.Contracts.Contract" >
+        <Member MemberType="Event" Name="ContractFailed"    />
+        <Member Name="Assert(System.Boolean)" />
+        <Member Name="Assert(System.Boolean,System.String)" />
+        <Member Name="Assume(System.Boolean)" />
+        <Member Name="Assume(System.Boolean,System.String)" />
+        <Member Name="EndContractBlock" />
+        <Member Name="Ensures(System.Boolean,System.String)" />
+        <Member Name="Ensures(System.Boolean)" />
+        <Member Name="EnsuresOnThrow&lt;TException&gt;(System.Boolean)" />
+        <Member Name="EnsuresOnThrow&lt;TException&gt;(System.Boolean,System.String)" />
+        <Member Name="Exists&lt;T&gt;(System.Collections.Generic.IEnumerable&lt;T&gt;,System.Predicate&lt;T&gt;)" />
+        <Member Name="Exists(System.Int32,System.Int32,System.Predicate&lt;System.Int32&gt;)" />
+        <Member Name="ForAll&lt;T&gt;(System.Collections.Generic.IEnumerable&lt;T&gt;,System.Predicate&lt;T&gt;)" />
+        <Member Name="ForAll(System.Int32,System.Int32,System.Predicate&lt;System.Int32&gt;)" />
+        <Member Name="Invariant(System.Boolean)" />
+        <Member Name="Invariant(System.Boolean,System.String)" />
+        <Member Name="OldValue&lt;T&gt;(T)" />
+        <Member Name="Requires(System.Boolean)" />
+        <Member Name="Requires(System.Boolean,System.String)" />
+        <Member Name="Requires&lt;TException&gt;(System.Boolean)" />
+        <Member Name="Requires&lt;TException&gt;(System.Boolean,System.String)" />
+        <Member Name="Result&lt;T&gt;" />
+        <Member Name="ValueAtReturn&lt;T&gt;(T@)" />
+    </Type>
+    <Type Name="System.Diagnostics.Contracts.ContractAbbreviatorAttribute"  >
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Diagnostics.Contracts.ContractArgumentValidatorAttribute"  >
+      <Member Name="#ctor" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Diagnostics.Contracts.ContractPublicPropertyNameAttribute">
+        <Member Name="#ctor(System.String)" />
+        <Member MemberType="Property" Name="Name" />
+    </Type>
+    <Type Name="System.Diagnostics.Contracts.ContractFailedEventArgs"  >
+      <Member Name="#ctor(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.Exception)" />
+      <Member Name="get_Condition" />
+      <Member Name="get_FailureKind" />
+      <Member Name="get_Handled" />
+      <Member Name="get_Message" />
+      <Member Name="get_OriginalException" />
+      <Member Name="get_Unwind" />
+      <Member Name="SetHandled" />
+      <Member Name="SetUnwind" />
+      <Member MemberType="Property" Name="Condition" />
+      <Member MemberType="Property" Name="FailureKind" />
+      <Member MemberType="Property" Name="Handled" />
+      <Member MemberType="Property" Name="Message" />
+      <Member MemberType="Property" Name="OriginalException" />
+      <Member MemberType="Property" Name="Unwind" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Diagnostics.Contracts.ContractOptionAttribute"  >
+      <Member Name="#ctor(System.String,System.String,System.Boolean)" />
+      <Member Name="#ctor(System.String,System.String,System.String)" />
+      <Member MemberType="Property" Name="Category" />
+      <Member MemberType="Property" Name="Setting" />
+      <Member MemberType="Property" Name="Enabled" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Diagnostics.Contracts.PureAttribute">
+        <Member Name="#ctor" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Diagnostics.Contracts.ContractInvariantMethodAttribute">
+        <Member Name="#ctor" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Diagnostics.Contracts.ContractReferenceAssemblyAttribute">
+        <Member Name="#ctor" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Diagnostics.Contracts.ContractClassAttribute">
+        <Member Name="#ctor(System.Type)" />
+        <Member MemberType="Property" Name="TypeContainingContracts" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Diagnostics.Contracts.ContractClassForAttribute">
+        <Member Name="#ctor(System.Type)" />
+        <Member MemberType="Property" Name="TypeContractsAreFor" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Diagnostics.Contracts.ContractRuntimeIgnoredAttribute">
+        <Member Name="#ctor" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Diagnostics.Contracts.ContractVerificationAttribute">
+        <Member Name="#ctor(System.Boolean)" />
+        <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Diagnostics.Contracts.Internal.ContractHelper">
+        <Member Name="RaiseContractFailedEvent(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.Exception)" />
+        <Member Name="TriggerFailure(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.String,System.Exception)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Diagnostics.Contracts.ContractException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.String,System.Exception)" />
+      <Member MemberType="Property" Name="Condition" />
+      <Member MemberType="Property" Name="Failure" />
+      <Member MemberType="Property" Name="Kind" />
+      <Member MemberType="Property" Name="UserMessage" />
+    </Type>
+    <Type Name="System.StringSplitOptions" />
+    <Type Status="ImplRoot" Name="System.__Canon" />
+    <Type Status="ImplRoot" Name="System.__ComObject" Condition="FEATURE_COMINTEROP">
+      <Member MemberType="Field" Name="m_ObjectToDataMap" />
+      <Member Name="ReleaseSelf" />
+      <Member Name="ReleaseAllData" />
+      <Member Name="GetEventProvider(System.RuntimeType)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.BCLDebug">
+      <Member Name="GetRegistryLoggingValues(System.Boolean@,System.Boolean@,System.Int32@,System.Boolean@,System.Boolean@,System.Boolean@)" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Configuration.Assemblies.AssemblyHashAlgorithm" />
+    <Type Status="ImplRoot" Name="System.Configuration.Assemblies.AssemblyVersionCompatibility" />
+    <Type Status="ImplRoot" Name="System.ContextBoundObject" />
+    <Type Status="ImplRoot" Name="System.CrossAppDomainMarshaledException">
+      <Member Name="#ctor(System.String,System.Int32)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Currency">
+      <Member Status="ImplRoot" Name="#ctor(System.Decimal)" /> <!-- EE - il stubs -->
+    </Type>    
+    <Type Status="ImplRoot" Name="System.Diagnostics.EditAndContinueHelper">
+      <Member MemberType="Field" Name="_objectReference" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Diagnostics.StackFrameHelper" />
+
+    <Type Name="System.Diagnostics.Tracing.EventAttribute">
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="get_EventId" />
+      <Member MemberType="Property" Name="ActivityOptions" />
+      <Member MemberType="Property" Name="Channel" />
+      <Member MemberType="Property" Name="Keywords" />  
+      <Member MemberType="Property" Name="Level" />  
+      <Member MemberType="Property" Name="Message" />  
+      <Member MemberType="Property" Name="Opcode" />  
+      <Member MemberType="Property" Name="Task" />  
+      <Member MemberType="Property" Name="Version" />
+      <Member MemberType="Property" Name="Tags" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventActivityOptions">
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="Detachable" />
+      <Member MemberType="Field" Name="Disable" />
+      <Member MemberType="Field" Name="Recursive" />
+    </Type>
+
+
+    <Type Name="System.Diagnostics.Tracing.EventFieldFormat">
+      <Member MemberType="Field" Name="Boolean" />
+      <Member MemberType="Field" Name="Default" />
+      <Member MemberType="Field" Name="Hexadecimal" />
+      <Member MemberType="Field" Name="HResult" />
+      <Member MemberType="Field" Name="Json" />
+      <Member MemberType="Field" Name="String" />
+      <Member MemberType="Field" Name="Xml" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventDescriptor">
+      <Member Name="#ctor(System.Int32,System.Byte,System.Byte,System.Int64)" />
+      <Member Name="#ctor(System.Int32,System.Byte,System.Byte,System.Byte,System.Byte,System.Int32,System.Int64)" />
+      <Member Name="get_EventId" />
+      <Member Name="get_Channel" /> 
+      <Member Name="get_Level" />  
+      <Member Name="get_Opcode" />
+      <Member Name="get_Task" />
+      <Member Name="get_Version" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Diagnostics.Tracing.EventDescriptor)" />
+    </Type> 
+    
+    <Type Name="System.Diagnostics.Tracing.EventChannel">
+      <Member MemberType="Field" Name="Admin" />
+      <Member MemberType="Field" Name="Analytic" />
+      <Member MemberType="Field" Name="Debug" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="Operational" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventCommand">
+      <Member MemberType="Field" Name="Disable" />
+      <Member MemberType="Field" Name="Enable" />
+      <Member MemberType="Field" Name="SendManifest" />
+      <Member MemberType="Field" Name="Update" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventCommandEventArgs">
+      <Member Name="get_Arguments" />
+      <Member Name="get_Command" />
+      <Member Name="DisableEvent(System.Int32)" />
+      <Member Name="EnableEvent(System.Int32)" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventDataAttribute">
+      <Member Name="#ctor" />
+      <Member MemberType="Property" Name="Name" /> 
+      <Member MemberType="Property" Name="Level" />  
+      <Member MemberType="Property" Name="Opcode" />  
+      <Member MemberType="Property" Name="Keywords" />  
+      <Member MemberType="Property" Name="Tags" />  
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventKeywords">
+      <Member MemberType="Field" Name="AuditFailure" />
+      <Member MemberType="Field" Name="AuditSuccess" />
+      <Member MemberType="Field" Name="CorrelationHint" />
+      <Member MemberType="Field" Name="EventLogClassic" />
+      <Member MemberType="Field" Name="MicrosoftTelemetry" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="Sqm" />
+      <Member MemberType="Field" Name="WdiContext" />
+      <Member MemberType="Field" Name="WdiDiagnostic" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventLevel">
+      <Member MemberType="Field" Name="Critical" />
+      <Member MemberType="Field" Name="Error" />
+      <Member MemberType="Field" Name="Informational" />
+      <Member MemberType="Field" Name="LogAlways" />
+      <Member MemberType="Field" Name="Verbose" />
+      <Member MemberType="Field" Name="Warning" />    
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventListener">
+      <Member Name="#ctor" />
+      <Member Name="DisableEvents(System.Diagnostics.Tracing.EventSource)" />
+      <Member Name="Dispose" />
+      <Member Name="EnableEvents(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel)" />
+      <Member Name="EnableEvents(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords)" />  
+      <Member Name="EnableEvents(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords,System.Collections.Generic.IDictionary&lt;System.String,System.String&gt;)" />  
+      <Member Name="EventSourceIndex(System.Diagnostics.Tracing.EventSource)" />
+      <Member Name="OnEventSourceCreated(System.Diagnostics.Tracing.EventSource)" />
+      <Member Name="OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs)" />
+    </Type>    
+    
+    <Type Name="System.Diagnostics.Tracing.EventManifestOptions">
+      <Member MemberType="Field" Name="AllCultures" />
+      <Member MemberType="Field" Name="AllowEventSourceOverride" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="OnlyIfNeededForRegistration" />
+      <Member MemberType="Field" Name="Strict" />
+    </Type>    
+    
+    <Type Name="System.Diagnostics.Tracing.EventOpcode">
+      <Member MemberType="Field" Name="DataCollectionStart" />
+      <Member MemberType="Field" Name="DataCollectionStop" />
+      <Member MemberType="Field" Name="Extension" />
+      <Member MemberType="Field" Name="Info" />
+      <Member MemberType="Field" Name="Receive" />
+      <Member MemberType="Field" Name="Reply" />    
+      <Member MemberType="Field" Name="Resume" />    
+      <Member MemberType="Field" Name="Send" />    
+      <Member MemberType="Field" Name="Start" />    
+      <Member MemberType="Field" Name="Stop" />    
+      <Member MemberType="Field" Name="Suspend" />    
+    </Type>
+    
+    <Type Name="System.Diagnostics.Tracing.EventSource"> 
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Boolean)" />
+      <Member Name="#ctor(System.Diagnostics.Tracing.EventSourceSettings)" />
+      <Member Name="#ctor(System.Diagnostics.Tracing.EventSourceSettings,System.String[])" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Diagnostics.Tracing.EventSourceSettings)" />
+      <Member Name="#ctor(System.String,System.Diagnostics.Tracing.EventSourceSettings,System.String[])" />
+      <Member Name="get_Guid" />
+      <Member Name="get_Name" />
+      <Member MemberType="Property" Name="ConstructionException" />
+      <Member MemberType="Property" Name="CurrentThreadActivityId" />
+      <Member MemberType="Event" Name="EventCommandExecuted" />
+      <Member Name="Dispose" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="GenerateManifest(System.Type,System.String)" />
+      <Member Name="GenerateManifest(System.Type,System.String,System.Diagnostics.Tracing.EventManifestOptions)" />
+      <Member Name="GetGuid(System.Type)" />
+      <Member Name="GetName(System.Type)" />
+      <Member Name="GetTrait(System.String)" />
+      <Member Name="GetSources" />
+      <Member Name="IsEnabled" />
+      <Member Name="IsEnabled(System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords)" />
+      <Member Name="IsEnabled(System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords,System.Diagnostics.Tracing.EventChannel)" />
+      <Member Name="OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs)" />
+      <Member Name="SendCommand(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventCommand,System.Collections.Generic.IDictionary&lt;System.String,System.String&gt;)" />
+      <Member Name="SetCurrentThreadActivityId(System.Guid)" />
+      <Member Name="SetCurrentThreadActivityId(System.Guid,System.Guid@)" />
+      <Member MemberType="Property" Name="Settings" />
+      <Member Name="ToString" />
+      <Member Name="Write(System.String)" />
+      <Member Name="Write(System.String,System.Diagnostics.Tracing.EventSourceOptions)" />
+      <Member Name="Write&lt;T&gt;(System.String,T)" />
+      <Member Name="Write&lt;T&gt;(System.String,System.Diagnostics.Tracing.EventSourceOptions,T)" />
+      <Member Name="Write&lt;T&gt;(System.String,System.Diagnostics.Tracing.EventSourceOptions@,System.Guid@,System.Guid@,T@)" />
+      <Member Name="Write&lt;T&gt;(System.String,System.Diagnostics.Tracing.EventSourceOptions@,T@)" />
+      <Member Name="WriteEvent(System.Int32)" />
+      <Member Name="WriteEvent(System.Int32,System.Byte[])" />
+      <Member Name="WriteEvent(System.Int32,System.Int32)" />
+      <Member Name="WriteEvent(System.Int32,System.Int32,System.Int32)" />
+      <Member Name="WriteEvent(System.Int32,System.Int32,System.Int32,System.Int32)" />
+      <Member Name="WriteEvent(System.Int32,System.Int32,System.String)" />
+      <Member Name="WriteEvent(System.Int32,System.Int64)" />
+      <Member Name="WriteEvent(System.Int32,System.Int64,System.Byte[])" />
+      <Member Name="WriteEvent(System.Int32,System.Int64,System.Int64)" />
+      <Member Name="WriteEvent(System.Int32,System.Int64,System.Int64,System.Int64)" />
+      <Member Name="WriteEvent(System.Int32,System.Int64,System.String)" />
+      <Member Name="WriteEvent(System.Int32,System.Object[])" />
+      <Member Name="WriteEvent(System.Int32,System.String)" />
+      <Member Name="WriteEvent(System.Int32,System.String,System.Int32)" />
+      <Member Name="WriteEvent(System.Int32,System.String,System.Int32,System.Int32)" />
+      <Member Name="WriteEvent(System.Int32,System.String,System.Int64)" />
+      <Member Name="WriteEvent(System.Int32,System.String,System.String)" />
+      <Member Name="WriteEvent(System.Int32,System.String,System.String,System.String)" />
+      <Member Name="WriteEventCore(System.Int32,System.Int32,System.Diagnostics.Tracing.EventSource+EventData*)" />
+      <Member Name="WriteEventWithRelatedActivityId(System.Int32,System.Guid,System.Object[])" />
+      <Member Name="WriteEventWithRelatedActivityIdCore(System.Int32,System.Guid*,System.Int32,System.Diagnostics.Tracing.EventSource+EventData*)" />
+      <Member Name="get_Settings" /> 
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventSource+EventData">
+      <Member MemberType="Property" Name="DataPointer" /> 
+      <Member MemberType="Property" Name="Size" /> 
+    </Type>
+      
+    <Type Name="System.Diagnostics.Tracing.EventSourceAttribute">
+      <Member Name="#ctor" />
+      <Member MemberType="Property" Name="Guid" /> 
+      <Member MemberType="Property" Name="LocalizationResources" /> 
+      <Member MemberType="Property" Name="Name" /> 
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventIgnoreAttribute">
+      <Member Name="#ctor" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventSourceException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventSourceOptions">
+      <Member MemberType="Property" Name="Keywords" />
+      <Member MemberType="Property" Name="Level" />
+      <Member MemberType="Property" Name="Opcode" />
+      <Member MemberType="Property" Name="Tags" />
+      <Member MemberType="Property" Name="ActivityOptions" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventSourceSettings">
+      <Member MemberType="Field" Name="Default" />
+      <Member MemberType="Field" Name="EtwManifestEventFormat" />
+      <Member MemberType="Field" Name="EtwSelfDescribingEventFormat" />
+      <Member MemberType="Field" Name="ThrowOnEventWriteErrors" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventTask">
+      <Member MemberType="Field" Name="None" /> 
+    </Type>    
+
+    <Type Name="System.Diagnostics.Tracing.EventTags">
+      <Member MemberType="Field" Name="None" /> 
+    </Type>  
+
+    <Type Name="System.Diagnostics.Tracing.EventFieldTags">
+      <Member MemberType="Field" Name="None" /> 
+    </Type>  
+
+    <Type Name="System.Diagnostics.Tracing.EventFieldAttribute">
+      <Member Name="#ctor" />
+      <Member MemberType="Property" Name="Tags" />
+      <Member MemberType="Property" Name="Name" />
+      <Member MemberType="Property" Name="Format" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.EventWrittenEventArgs">
+      <Member Name="get_Channel" />
+      <Member Name="get_EventId" />
+      <Member Name="get_EventSource" />
+      <Member Name="get_Keywords" />
+      <Member Name="get_Level" />
+      <Member Name="get_Message" />
+      <Member Name="get_Opcode" />
+      <Member Name="get_Payload" />
+      <Member Name="get_PayloadNames" />
+      <Member Name="get_Task" />
+      <Member Name="get_Version" />
+      <Member Name="get_Tags" />
+      <Member MemberType="Property" Name="ActivityId" />
+      <Member MemberType="Property" Name="EventName" />
+      <Member MemberType="Property" Name="RelatedActivityId" />
+    </Type>
+
+    <Type Name="System.Diagnostics.Tracing.NonEventAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    
+   <Type Name="System.Diagnostics.Tracing.FrameworkEventSource+Tasks">
+      <Member MemberType="Field" Name="GetResponse" />
+      <Member MemberType="Field" Name="GetRequestStream" />
+      <Member MemberType="Field" Name="ThreadTransfer" />
+   </Type>
+
+   <Type Name="System.Diagnostics.Tracing.FrameworkEventSource+Keywords">
+      <Member MemberType="Field" Name="Loader" />
+      <Member MemberType="Field" Name="ThreadPool" />
+      <Member MemberType="Field" Name="NetClient" />
+      <Member MemberType="Field" Name="DynamicTypeUsage" />
+      <Member MemberType="Field" Name="ThreadTransfer" />
+   </Type>
+
+   <Type Name="System.Diagnostics.Tracing.FrameworkEventSource+Opcodes">
+      <Member MemberType="Field" Name="ReceiveHandled" />
+   </Type>
+
+    
+    <Type Status="ImplRoot" Name="System.DuplicateWaitObjectException" />
+
+    <Type Status="ImplRoot" Name="System.IO.Stream+SynchronousAsyncResult">      
+      <Member Name="get_AsyncState" />
+      <Member Name="get_AsyncWaitHandle" />
+      <Member Name="get_CompletedSynchronously" />
+      <Member Name="get_IsCompleted" />
+      <Member MemberType="Property" Name="AsyncState" />
+      <Member MemberType="Property" Name="AsyncWaitHandle" />
+      <Member MemberType="Property" Name="CompletedSynchronously" />
+      <Member MemberType="Property" Name="IsCompleted" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.LoaderOptimization" />
+    <Type Name="System.OperationCanceledException" >
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="#ctor(System.Threading.CancellationToken)" />
+      <Member Name="#ctor(System.String,System.Threading.CancellationToken)" />
+      <Member Name="#ctor(System.String,System.Exception,System.Threading.CancellationToken)" />
+      <Member Name="get_CancellationToken" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Reflection.CustomAttributeCtorParameter" />
+    <Type Status="ImplRoot" Name="System.Reflection.CustomAttributeEncodedArgument" />
+    <Type Status="ImplRoot" Name="System.Reflection.CustomAttributeNamedParameter" />
+    <Type Status="ImplRoot" Name="System.Reflection.CustomAttributeType" />
+    <Type Status="ImplRoot" Name="System.Reflection.Emit.DynamicResolver" />
+    <Type Status="ImplRoot" Name="System.Reflection.Emit.DynamicResolver+SecurityControlFlags" />
+    <Type Status="ImplRoot" Name="System.Reflection.Emit.DynamicScope" />
+    <Type Status="ImplRoot" Name="System.Reflection.ExceptionHandlingClause" />
+
+    
+    <Type Status="ApiRoot" Name="System.Reflection.LocalVariableInfo">
+      <Member Name="#ctor" />
+      <Member Name="get_IsPinned" />
+      <Member Name="get_LocalIndex" />
+      <Member Name="get_LocalType" />
+      <Member MemberType="Property" Name="IsPinned" />
+      <Member MemberType="Property" Name="LocalIndex" />
+      <Member MemberType="Property" Name="LocalType" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Reflection.MetadataImport">
+      <Member Name="ThrowError(System.Int32)" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Reflection.MethodBody">
+      <Member MemberType="Field" Name="m_exceptionHandlingClauses" />
+      <Member MemberType="Field" Name="m_IL" />
+      <Member MemberType="Field" Name="m_initLocals" />
+      <Member MemberType="Field" Name="m_localSignatureMetadataToken" />
+      <Member MemberType="Field" Name="m_localVariables" />
+      <Member MemberType="Field" Name="m_maxStackSize" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Reflection.Emit.ExceptionHandler">
+      <Member Name="op_Equality(System.Reflection.Emit.ExceptionHandler,System.Reflection.Emit.ExceptionHandler)" />
+      <Member Name="op_Inequality(System.Reflection.Emit.ExceptionHandler,System.Reflection.Emit.ExceptionHandler)" />
+    </Type>
+    <Type Name="System.Reflection.ReflectionTypeLoadException">
+      <Member Name="#ctor(System.Type[],System.Exception[])" />
+      <Member Name="#ctor(System.Type[],System.Exception[],System.String)" />              
+      <Member MemberType="Property" Name="LoaderExceptions" />
+      <Member MemberType="Property" Name="Types" />
+      <Member Name="get_LoaderExceptions" />
+      <Member Name="get_Types" />
+    </Type>
+    <Type Name="System.Reflection.ResourceAttributes">
+      <Member MemberType="Field" Name="Private" />
+      <Member MemberType="Field" Name="Public" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Reflection.RtFieldInfo">
+      <Member Status="ImplRoot" Name="GetFieldHandle" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Reflection.RuntimeConstructorInfo">
+      <Member Status="ImplRoot" MemberType="Field" Name="_empty1" />
+      <Member Status="ImplRoot" MemberType="Field" Name="_empty2" />
+      <Member Status="ImplRoot" MemberType="Field" Name="_empty3" />
+    </Type>
+       <Type Name="System.Reflection.TypeFilter">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Status="ApiRoot" Name="BeginInvoke(System.Type,System.Object,System.AsyncCallback,System.Object)" />
+      <Member Status="ApiRoot" Name="EndInvoke(System.IAsyncResult)" />
+      <Member Status="ApiRoot" Name="Invoke(System.Type,System.Object)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.ReflectionOnlyType" />
+    <Type Status="ImplRoot" Name="System.ResId" />
+    <Type Status="ImplRoot" Name="System.Resolver">
+      <Member Name="GetJitContext(System.Int32@)" /> <!-- EE -->
+      <Member Name="GetCodeInfo(System.Int32@,System.Int32@,System.Int32@)" /> <!-- EE -->
+      <Member Name="GetLocalsSignature" /> <!-- EE -->
+      <Member Name="GetEHInfo(System.Int32,System.Void*)" /> <!-- EE -->
+      <Member Name="GetRawEHInfo" /> <!-- EE -->
+      <Member Name="GetStringLiteral(System.Int32)" /> <!-- EE -->
+      <Member Name="ResolveToken(System.Int32,System.IntPtr@,System.IntPtr@,System.IntPtr@)" /> <!-- EE -->
+      <Member Name="ResolveSignature(System.Int32,System.Int32)" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.CompilerServices.RuntimeWrappedException">
+      <Member Name="#ctor(System.Object)" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.CompilerServices.TypeDependencyAttribute">
+      <Member Name="#ctor(System.String)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ArrayWithOffset">
+      <Member Name="#ctor(System.Object,System.Int32)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="Equals(System.Runtime.InteropServices.ArrayWithOffset)" />
+      <Member Name="GetArray" />
+      <Member Name="GetHashCode" />
+      <Member Name="GetOffset" />
+      <Member Name="op_Equality(System.Runtime.InteropServices.ArrayWithOffset,System.Runtime.InteropServices.ArrayWithOffset)" />
+      <Member Name="op_Inequality(System.Runtime.InteropServices.ArrayWithOffset,System.Runtime.InteropServices.ArrayWithOffset)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.ConstrainedExecution.ReliabilityContractAttribute" />
+    <Type Status="ImplRoot" Name="System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute" />
+    <Type Name="System.Runtime.ConstrainedExecution.CriticalFinalizerObject">
+      <Member Name="#ctor"/>
+      <Member Name="Finalize" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.Expando.IExpando">
+      <Member Name="AddField(System.String)" /> <!-- EE -->
+      <Member Name="RemoveMember(System.Reflection.MemberInfo)" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.ICustomMarshaler">
+      <Member Name="MarshalNativeToManaged(System.IntPtr)" /> <!-- EE -->
+      <Member Name="MarshalManagedToNative(System.Object)" /> <!-- EE -->
+      <Member Name="CleanUpNativeData(System.IntPtr)" /> <!-- EE -->
+      <Member Name="CleanUpManagedData(System.Object)" /> <!-- EE -->
+      <Member Name="GetNativeDataSize" /> <!-- EE -->
+    </Type>
+    <Type Name="System.Runtime.InteropServices.InvalidOleVariantTypeException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IStringable" Condition="FEATURE_COMINTEROP">
+      <Member Name="ToString"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IIterator&lt;T&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="get_Current"/>
+      <Member Name="get_HasCurrent" />
+      <Member Name="MoveNext"/>
+      <Member Name="GetMany(T[])"/>
+    </Type>    
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.BindableIterableToEnumerableAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetEnumerator_Stub" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.BindableVectorToCollectionAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Count" />
+      <Member Name="IsSynchronized" />
+      <Member Name="SyncRoot" />
+      <Member Name="CopyTo(System.Array,System.Int32)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.BindableVectorToListAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Indexer_Get(System.Int32)" />
+      <Member Name="Indexer_Set(System.Int32,System.Object)" />
+      <Member Name="Add(System.Object)" />
+      <Member Name="Contains(System.Object)" />
+      <Member Name="Clear" />
+      <Member Name="IsFixedSize" />
+      <Member Name="IsReadOnly" />
+      <Member Name="IndexOf(System.Object)" />
+      <Member Name="Insert(System.Int32,System.Object)" />
+      <Member Name="Remove(System.Object)" />
+      <Member Name="RemoveAt(System.Int32)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.CLRIReferenceImpl&lt;T&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="UnboxHelper(System.Object)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.CLRIKeyValuePairImpl&lt;K,V&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="BoxHelper(System.Object)" />
+      <Member Name="UnboxHelper(System.Object)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.CLRIReferenceArrayImpl&lt;T&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="UnboxHelper(System.Object)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.WindowsRuntime.DefaultInterfaceAttribute" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor(System.Type)" />
+      <Member MemberType="Property" Name="DefaultInterface" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.WindowsRuntime.ReadOnlyArrayAttribute" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.WindowsRuntime.ReturnValueNameAttribute" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor(System.String)" />
+      <Member MemberType="Property" Name="Name" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.WindowsRuntime.WriteOnlyArrayAttribute" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.DictionaryToMapAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Lookup&lt;K,V&gt;(K)" />
+      <Member Name="Size&lt;K,V&gt;" />
+      <Member Name="HasKey&lt;K,V&gt;(K)" />
+      <Member Name="GetView&lt;K,V&gt;" />
+      <Member Name="Insert&lt;K,V&gt;(K,V)" />
+      <Member Name="Remove&lt;K,V&gt;(K)" />
+      <Member Name="Clear&lt;K,V&gt;" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.VectorViewToReadOnlyCollectionAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Count&lt;T&gt;" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.MapViewToReadOnlyCollectionAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Count&lt;K,V&gt;" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.EnumerableToBindableIterableAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="First_Stub" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.EnumerableToIterableAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="First_Stub&lt;T&gt;" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken" Condition="FEATURE_COMINTEROP">
+      <Member Name="op_Equality(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken,System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken)" />
+      <Member Name="op_Inequality(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken,System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.WindowsRuntime.EventRegistrationTokenTable&lt;T&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor"/>
+      <Member Name="get_InvocationList"/>
+      <Member Name="set_InvocationList(T)"/>
+      <Member MemberType="Property" Name="InvocationList"/>
+      <Member Name="AddEventHandler(T)"/>
+      <Member Name="RemoveEventHandler(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken)"/>
+      <Member Name="RemoveEventHandler(T)"/>
+      <Member Status="ApiFxInternal" Name="ExtractHandler(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken)" />
+      <Member Name="GetOrCreateEventRegistrationTokenTable(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationTokenTable&lt;T&gt;@)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.GetEnumerator_Delegate&lt;T@&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IActivationFactory" Condition="FEATURE_COMINTEROP">
+      <Member Name="ActivateInstance"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IBindableIterable" Condition="FEATURE_COMINTEROP">
+      <Member Name="First" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IBindableIterator" Condition="FEATURE_COMINTEROP">
+      <Member Name="get_Current" />
+      <Member MemberType="Property" Name="Current" />
+      <Member Name="get_HasCurrent" />
+      <Member MemberType="Property" Name="HasCurrent" />
+      <Member Name="MoveNext" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IBindableVector" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetAt(System.UInt32)" />
+      <Member Name="get_Size" />
+      <Member MemberType="Property" Name="Size" />
+      <Member Name="GetView" />
+      <Member Name="IndexOf(System.Object,System.UInt32@)" />
+      <Member Name="SetAt(System.UInt32,System.Object)" />
+      <Member Name="InsertAt(System.UInt32,System.Object)" />
+      <Member Name="RemoveAt(System.UInt32)" />
+      <Member Name="Append(System.Object)" />
+      <Member Name="RemoveAtEnd" />
+      <Member Name="Clear" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IBindableVectorView" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetAt(System.UInt32)" />
+      <Member Name="get_Size" />
+      <Member MemberType="Property" Name="Size" />
+      <Member Name="IndexOf(System.Object,System.UInt32@)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IClosable" Condition="FEATURE_COMINTEROP">
+      <Member Name="Close"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IDisposableToIClosableAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor"/>
+      <Member Name="Close"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IClosableToIDisposableAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor"/>
+      <Member Name="Dispose"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.ICustomProperty" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetValue(System.Object)"/>
+      <Member Name="GetValue(System.Object,System.Object)"/>
+      <Member Name="SetValue(System.Object,System.Object)"/>
+      <Member Name="SetValue(System.Object,System.Object,System.Object)"/>
+      <Member Name="get_CanRead"/>
+      <Member Name="get_CanWrite"/>
+      <Member Name="get_Name"/>
+      <Member Name="get_Type"/>
+      <Member MemberType="Property" Name="CanRead"/>
+      <Member MemberType="Property" Name="CanWrite"/>
+      <Member MemberType="Property" Name="Name"/>
+      <Member MemberType="Property" Name="Type"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.ICustomPropertyProviderImpl" Condition="FEATURE_COMINTEROP">
+      <Member Name="CreateProperty(System.Object,System.String)" />
+      <Member Name="CreateIndexedProperty(System.Object,System.String,System.StubHelpers.TypeNameNative*)" />
+      <Member Name="GetType(System.Object,System.StubHelpers.TypeNameNative*)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.ICustomPropertyProviderProxy" Condition="FEATURE_COMINTEROP">
+      <Member Name="CreateInstance(System.Object)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IIterable&lt;T&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="First" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IKeyValuePair&lt;K,V&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="get_Key" />
+      <Member Name="get_Value" />
+      <Member MemberType="Property" Name="Key" />
+      <Member MemberType="Property" Name="Value" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IMap&lt;K,V&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="Lookup(K)" />
+      <Member Name="get_Size" />
+      <Member Name="Size" MemberType="Property" />
+      <Member Name="HasKey(K)" />
+      <Member Name="GetView" />
+      <Member Name="Insert(K,V)" />
+      <Member Name="Remove(K)" />
+      <Member Name="Clear" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.Indexer_Get_Delegate&lt;T@&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(System.Int32,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(System.Int32)" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.InteropServices.WindowsRuntime.InterfaceImplementedInVersionAttribute" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor(System.Type,System.Byte,System.Byte,System.Byte,System.Byte)"/>
+      <Member MemberType="Property" Name="BuildVersion" />
+      <Member MemberType="Property" Name="MajorVersion" />
+      <Member MemberType="Property" Name="MinorVersion" />
+      <Member MemberType="Property" Name="RevisionVersion" />
+      <Member MemberType="Property" Name="InterfaceType" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IterableToEnumerableAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetEnumerator_Stub&lt;T&gt;" />
+      <Member Name="GetEnumerator_Variance_Stub&lt;T&gt;" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IMapView&lt;K,V&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="Lookup(K)" />
+      <Member Name="get_Size" />
+      <Member Name="Size" MemberType="Property" />
+      <Member Name="HasKey(K)" />
+      <Member Name="Split(System.Runtime.InteropServices.WindowsRuntime.IMapView&lt;K,V&gt;@,System.Runtime.InteropServices.WindowsRuntime.IMapView&lt;K,V&gt;@)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IMapViewToIReadOnlyDictionaryAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Indexer_Get&lt;K,V&gt;(K)" />
+      <Member Name="Keys&lt;K,V&gt;" />
+      <Member Name="Values&lt;K,V&gt;" />
+      <Member Name="ContainsKey&lt;K,V&gt;(K)" />
+      <Member Name="TryGetValue&lt;K,V&gt;(K,V@)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IPropertyValue" Condition="FEATURE_COMINTEROP">
+      <Member Name="get_Type"/>
+      <Member MemberType="Property" Name="Type"/>
+      <Member Name="get_IsNumericScalar"/>
+      <Member MemberType="Property" Name="IsNumericScalar"/>
+      <Member Name="GetUInt8" />
+      <Member Name="GetInt16" />
+      <Member Name="GetUInt16" />
+      <Member Name="GetInt32" />
+      <Member Name="GetUInt32" />
+      <Member Name="GetInt64" />
+      <Member Name="GetUInt64" />
+      <Member Name="GetSingle" />
+      <Member Name="GetDouble" />
+      <Member Name="GetChar16" />
+      <Member Name="GetBoolean" />
+      <Member Name="GetString" />
+      <Member Name="GetGuid" />
+      <Member Name="GetDateTime" />
+      <Member Name="GetTimeSpan" />
+      <Member Name="GetPoint" />
+      <Member Name="GetSize" />
+      <Member Name="GetRect" />
+      <Member Name="GetUInt8Array" />
+      <Member Name="GetInt16Array" />
+      <Member Name="GetUInt16Array" />
+      <Member Name="GetInt32Array" />
+      <Member Name="GetUInt32Array" />
+      <Member Name="GetInt64Array" />
+      <Member Name="GetUInt64Array" />
+      <Member Name="GetSingleArray" />
+      <Member Name="GetDoubleArray" />
+      <Member Name="GetChar16Array" />
+      <Member Name="GetBooleanArray" />
+      <Member Name="GetStringArray" />
+      <Member Name="GetInspectableArray" />
+      <Member Name="GetGuidArray" />
+      <Member Name="GetDateTimeArray" />
+      <Member Name="GetTimeSpanArray" />
+      <Member Name="GetPointArray" />
+      <Member Name="GetSizeArray" />
+      <Member Name="GetRectArray" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IReadOnlyDictionaryToIMapViewAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Lookup&lt;K,V&gt;(K)" />
+      <Member Name="Size&lt;K,V&gt;" />
+      <Member Name="HasKey&lt;K,V&gt;(K)" />
+      <Member Name="Split&lt;K,V&gt;(System.Runtime.InteropServices.WindowsRuntime.IMapView&lt;K,V&gt;@,System.Runtime.InteropServices.WindowsRuntime.IMapView&lt;K,V&gt;@)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IReadOnlyListToIVectorViewAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetAt&lt;T&gt;(System.UInt32)" />
+      <Member Name="Size&lt;T&gt;" />
+      <Member Name="IndexOf&lt;T&gt;(T,System.UInt32@)" />
+      <Member Name="GetMany&lt;T&gt;(System.UInt32,T[])" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IReferenceFactory" Condition="FEATURE_COMINTEROP">
+      <Member Name="CreateIReference(System.Object)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IRestrictedErrorInfo" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetErrorDetails(System.String@,System.Int32@,System.String@,System.String@)" />
+      <Member Name="GetReference(System.String@)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IVector&lt;T&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetAt(System.UInt32)" />
+      <Member Name="get_Size" />
+      <Member Name="Size" MemberType="Property" />
+      <Member Name="GetView" />
+      <Member Name="IndexOf(T,System.UInt32@)" />
+      <Member Name="SetAt(System.UInt32,T)" />
+      <Member Name="RemoveAt(System.UInt32)" />
+      <Member Name="Append(T)" />
+      <Member Name="RemoveAtEnd" />
+      <Member Name="Clear" />
+      <Member Name="GetMany(System.UInt32,T[])" />
+      <Member Name="ReplaceAll(T[])" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IVectorView&lt;T&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetAt(System.UInt32)" />
+      <Member Name="get_Size" />
+      <Member Name="Size" MemberType="Property" />
+      <Member Name="IndexOf(T,System.UInt32@)" />
+      <Member Name="GetMany(System.UInt32,T[])" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IVectorViewToIReadOnlyListAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Indexer_Get&lt;T&gt;(System.Int32)" />
+      <Member Name="Indexer_Get_Variance&lt;T&gt;(System.Int32)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.ListToBindableVectorAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetAt(System.UInt32)" />
+      <Member Name="Size" />
+      <Member Name="GetView" />
+      <Member Name="IndexOf(System.Object,System.UInt32@)" />
+      <Member Name="SetAt(System.UInt32,System.Object)" />
+      <Member Name="InsertAt(System.UInt32,System.Object)" />
+      <Member Name="RemoveAt(System.UInt32)" />
+      <Member Name="Append(System.Object)" />
+      <Member Name="RemoveAtEnd" />
+      <Member Name="Clear" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.ListToVectorAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetAt&lt;T&gt;(System.UInt32)" />
+      <Member Name="Size&lt;T&gt;" />
+      <Member Name="GetView&lt;T&gt;" />
+      <Member Name="IndexOf&lt;T&gt;(T,System.UInt32@)" />
+      <Member Name="SetAt&lt;T&gt;(System.UInt32,T)" />
+      <Member Name="InsertAt&lt;T&gt;(System.UInt32,T)" />
+      <Member Name="RemoveAt&lt;T&gt;(System.UInt32)" />
+      <Member Name="Append&lt;T&gt;(T)" />
+      <Member Name="RemoveAtEnd&lt;T&gt;" />
+      <Member Name="Clear&lt;T&gt;" />
+      <Member Name="GetMany&lt;T&gt;(System.UInt32,T[])" />
+      <Member Name="ReplaceAll&lt;T&gt;(T[])" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.MapToCollectionAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Count&lt;K,V&gt;" />
+      <Member Name="IsReadOnly&lt;K,V&gt;" />
+      <Member Name="Add&lt;K,V&gt;(System.Collections.Generic.KeyValuePair&lt;K,V&gt;)" />
+      <Member Name="Clear&lt;K,V&gt;" />
+      <Member Name="Contains&lt;K,V&gt;(System.Collections.Generic.KeyValuePair&lt;K,V&gt;)" />
+      <Member Name="CopyTo&lt;K,V&gt;(System.Collections.Generic.KeyValuePair&lt;K,V&gt;[],System.Int32)" />
+      <Member Name="Remove&lt;K,V&gt;(System.Collections.Generic.KeyValuePair&lt;K,V&gt;)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.MapToDictionaryAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Indexer_Get&lt;K,V&gt;(K)" />
+      <Member Name="Indexer_Set&lt;K,V&gt;(K,V)" />
+      <Member Name="Keys&lt;K,V&gt;" />
+      <Member Name="Values&lt;K,V&gt;" />
+      <Member Name="ContainsKey&lt;K,V&gt;(K)" />
+      <Member Name="Add&lt;K,V&gt;(K,V)" />
+      <Member Name="Remove&lt;K,V&gt;(K)" />
+      <Member Name="TryGetValue&lt;K,V&gt;(K,V@)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.RuntimeClass" Condition="FEATURE_COMINTEROP" />
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.VectorToCollectionAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Count&lt;T&gt;" />
+      <Member Name="IsReadOnly&lt;T&gt;" />
+      <Member Name="Add&lt;T&gt;(T)" />
+      <Member Name="Clear&lt;T&gt;" />
+      <Member Name="Contains&lt;T&gt;(T)" />
+      <Member Name="CopyTo&lt;T&gt;(T[],System.Int32)" />
+      <Member Name="Remove&lt;T&gt;(T)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.VectorToListAdapter" Condition="FEATURE_COMINTEROP">
+      <Member Name="Indexer_Get&lt;T&gt;(System.Int32)" />
+      <Member Name="Indexer_Set&lt;T&gt;(System.Int32,T)" />
+      <Member Name="IndexOf&lt;T&gt;(T)" />
+      <Member Name="Insert&lt;T&gt;(System.Int32,T)" />
+      <Member Name="RemoveAt&lt;T&gt;(System.Int32)" />
+    </Type>
+    <Type Status="ApiFxInternal" Name="System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeImportAttribute" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.WindowsFoundationEventHandler&lt;T&gt;" Condition="FEATURE_COMINTEROP">
+      <Member Name="#ctor(System.Object,System.IntPtr)" />
+      <Member Name="BeginInvoke(System.Object,T,System.AsyncCallback,System.Object)" />
+      <Member Name="EndInvoke(System.IAsyncResult)" />
+      <Member Name="Invoke(System.Object,T)" />
+    </Type>
+    <Type Status="ApiFxInternal" Name="System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferHelper" Condition="FEATURE_COMINTEROP">
+      <Member Name="StoreOverlappedPtrInCCW(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Threading.NativeOverlapped*)" />
+      <Member Name="StoreOverlappedInCCW(System.Object,System.Threading.NativeOverlapped*)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.WindowsRuntime.IManagedActivationFactory" Condition="FEATURE_COMINTEROP">
+      <Member Name="RunClassConstructor" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMarshal" Condition="FEATURE_COMINTEROP">
+      <Member Status="ApiRoot" Name="GetRegistrationTokenCacheSize" />
+      <Member Name="AddEventHandler&lt;T&gt;(System.Func&lt;T,System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken&gt;,System.Action&lt;System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken&gt;,T)" />
+      <Member Name="FreeHString(System.IntPtr)" />
+      <Member Name="GetActivationFactory(System.Type)" />
+      <Member Name="GetActivationFactoryForType(System.Type)" />
+      <Member Name="GetManagedActivationFactory(System.Type)" />
+      <Member Name="PtrToStringHString(System.IntPtr)" />
+      <Member Name="RemoveAllEventHandlers(System.Action&lt;System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken&gt;)" />
+      <Member Name="RemoveEventHandler&lt;T&gt;(System.Action&lt;System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken&gt;,T)" />
+      <Member Name="StringToHString(System.String)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Runtime.Versioning.ResourceConsumptionAttribute">
+      <Member Name="#ctor(System.Runtime.Versioning.ResourceScope)" />
+      <Member Name="#ctor(System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope)" />
+      <Member MemberType="Property" Name="ConsumptionScope" />
+      <Member MemberType="Property" Name="ResourceScope" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.Versioning.ResourceExposureAttribute">
+      <Member Name="#ctor(System.Runtime.Versioning.ResourceScope)" />
+      <Member MemberType="Property" Name="ResourceExposureLevel" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.Versioning.TargetFrameworkAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member MemberType="Property" Name="FrameworkName" />
+      <Member MemberType="Property" Name="FrameworkDisplayName" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.Versioning.VersioningHelper">
+      <Member Name="MakeVersionSafeName(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope)" />
+      <Member Name="MakeVersionSafeName(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope,System.Type)" />
+    </Type>
+    <Type Name="System.Runtime.Serialization.FormatterServices">
+        <Member Name="GetUninitializedObject(System.Type)" />
+    </Type>
+    <Type Name="System.Runtime.Serialization.SerializationException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />  
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.Serialization.OnSerializingAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.Serialization.OnSerializedAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.Serialization.OnDeserializingAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.Serialization.OnDeserializedAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.Serialization.StreamingContext">
+      <Member Name="#ctor(System.Runtime.Serialization.StreamingContextStates)" />
+      <Member Name="#ctor(System.Runtime.Serialization.StreamingContextStates,System.Object)" />
+      <Member MemberType="Property" Name="Context" />
+      <Member MemberType="Property" Name="State" />
+    </Type>
+    <Type Status="ApiRoot" Name="System.Runtime.Serialization.StreamingContextStates">
+      <Member MemberType="Field" Name="CrossProcess" />
+      <Member MemberType="Field" Name="CrossMachine" />
+      <Member MemberType="Field" Name="File" />
+      <Member MemberType="Field" Name="Persistence" />
+      <Member MemberType="Field" Name="Remoting" />
+      <Member MemberType="Field" Name="Other" />
+      <Member MemberType="Field" Name="Clone" />
+      <Member MemberType="Field" Name="CrossAppDomain" />
+      <Member MemberType="Field" Name="All" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.RuntimeType">
+      <Member Status="ImplRoot" MemberType="Field" Name="m_keepalive" />
+      <Member Name="GetPropertyInfo(System.RuntimeType,System.Int32)" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Security.CodeAccessPermission" />
+    <Type Status="ImplRoot" Name="System.Security.PermissionType" />
+    <Type Status="ImplRoot" Name="System.Security.CodeAccessSecurityEngine">
+      <Member Name="CheckHelper(System.Object,System.Security.PermissionSet,System.Security.PermissionSet,System.Security.CodeAccessPermission,System.Security.PermissionToken,System.RuntimeMethodHandleInternal,System.Reflection.RuntimeAssembly,System.Security.Permissions.SecurityAction)" /> <!-- EE -->
+      <Member Name="CheckSetHelper(System.Object,System.Security.PermissionSet,System.Security.PermissionSet,System.Security.PermissionSet,System.RuntimeMethodHandleInternal,System.Reflection.RuntimeAssembly,System.Security.Permissions.SecurityAction)" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Security.DynamicSecurityMethodAttribute" />
+    <Type Status="ImplRoot" Name="System.Security.FrameSecurityDescriptor">
+      <Member MemberType="Field" Name="m_callerToken" Condition="not FEATURE_PAL" />
+      <Member MemberType="Field" Name="m_DeclarativeDenials" />
+      <Member MemberType="Field" Name="m_DeclarativeRestrictions" />
+      <Member MemberType="Field" Name="m_denials" />
+      <Member MemberType="Field" Name="m_impToken" Condition="not FEATURE_PAL" />
+      <Member MemberType="Field" Name="m_restriction" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Security.PermissionListSet">
+      <Member Name="CheckDemandNoThrow(System.Security.CodeAccessPermission)" /> <!-- EE -->
+      <Member Name="CheckSetDemandNoThrow(System.Security.PermissionSet)" /> <!-- EE -->
+      <Member Name="Update(System.Security.PermissionSet)" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Security.Permissions.PermissionState" />
+    <Type Name="System.Security.Permissions.SecurityAction" />
+    <Type Status="ImplRoot" Name="System.Security.Permissions.SecurityPermission" />
+    <Type Name="System.Security.Permissions.CodeAccessSecurityAttribute">
+      <Member Name="#ctor(System.Security.Permissions.SecurityAction)" />
+    </Type>
+    <Type Name="System.Security.Permissions.SecurityPermissionAttribute">
+      <Member Name="#ctor(System.Security.Permissions.SecurityAction)" />
+      <Member MemberType="Property" Name="ControlAppDomain" />
+      <Member MemberType="Property" Name="ControlDomainPolicy" />
+      <Member MemberType="Property" Name="ControlEvidence" />
+      <Member MemberType="Property" Name="ControlPolicy" />
+      <Member MemberType="Property" Name="ControlThread" />
+      <Member MemberType="Property" Name="Flags" />
+      <Member MemberType="Property" Name="UnmanagedCode" />
+      <Member MemberType="Property" Name="SkipVerification" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Security.PermissionSet">
+      <Member MemberType="Field" Name="m_serializedPermissionSet" />  <!-- smosier: avoid changing layout of objects mirrored in EE for now -->
+      <Member MemberType="Field" Name="m_unrestrictedPermSet" />  <!-- smosier: avoid changing layout of objects mirrored in EE for now -->
+      <Member MemberType="Field" Name="m_normalPermSet" />  <!-- smosier: avoid changing layout of objects mirrored in EE for now -->
+      <Member MemberType="Field" Name="readableonly" />  <!-- smosier: avoid changing layout of objects mirrored in EE for now -->
+      <Member Name="CreateSerialized(System.Object[],System.Boolean,System.Byte[]@,System.Security.PermissionSet@,System.Security.Permissions.HostProtectionResource,System.Boolean)" /> <!-- EE -->
+      <Member Name="Contains(System.Security.IPermission)" /> <!-- EE -->
+      <Member Name="Demand" /> <!-- EE -->
+      <Member Name="DemandNonCAS" /> <!-- EE -->
+      <Member Name="Union(System.Security.PermissionSet)" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Security.PermissionToken" />
+    <Type Status="ImplRoot" Name="System.Security.Policy.Evidence" />
+    <Type Name="System.Security.Principal.IIdentity">
+      <Member MemberType="Property" Name="AuthenticationType" />
+      <Member MemberType="Property" Name="IsAuthenticated" />
+      <Member MemberType="Property" Name="Name" />
+      <Member Name="get_AuthenticationType" />
+      <Member Name="get_IsAuthenticated" />
+      <Member Name="get_Name" />
+    </Type>
+    <Type Name="System.Security.Principal.IPrincipal">
+      <Member MemberType="Property" Name="Identity" />
+      <Member Name="IsInRole(System.String)" />
+      <Member Name ="get_Identity" />
+    </Type>
+    <Type Name="System.Security.Principal.TokenImpersonationLevel">
+      <Member MemberType="Field" Name="Anonymous" />
+      <Member MemberType="Field" Name="Delegation" />
+      <Member MemberType="Field" Name="Identification" />
+      <Member MemberType="Field" Name="Impersonation" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Security.SecurityCriticalAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Security.SecurityRuntime">
+      <Member Name="FrameDescHelper(System.Security.FrameSecurityDescriptor,System.Security.IPermission,System.Security.PermissionToken,System.RuntimeMethodHandleInternal)" /> <!-- EE -->
+      <Member Name="FrameDescSetHelper(System.Security.FrameSecurityDescriptor,System.Security.PermissionSet,System.Security.PermissionSet@,System.RuntimeMethodHandleInternal)" /> <!-- EE -->
+    </Type>
+    <Type Name="System.Security.SecurityTransparentAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Security.SecuritySafeCriticalAttribute" >
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Security.UnverifiableCodeAttribute">
+      <Member Name="#ctor" />
+    </Type>
+    <Type Name="System.Security.VerificationException" >
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.SharedStatics">
+      <Member MemberType="Field"  Name="_sharedStatics" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.SZArrayHelper">
+      <Member Name="Add&lt;T&gt;(T)" />
+      <Member Name="Clear&lt;T&gt;" />
+      <Member Name="Contains&lt;T&gt;(T)" />
+      <Member Name="CopyTo&lt;T&gt;(T[],System.Int32)" />
+      <Member Name="get_Count&lt;T&gt;" />
+      <Member Name="get_IsReadOnly&lt;T&gt;" />
+      <Member Name="get_Item&lt;T&gt;(System.Int32)" />
+      <Member Name="GetEnumerator&lt;T&gt;" />
+      <Member Name="IndexOf&lt;T&gt;(T)" />
+      <Member Name="Insert&lt;T&gt;(System.Int32,T)" />
+      <Member Name="Remove&lt;T&gt;(T)" />
+      <Member Name="RemoveAt&lt;T&gt;(System.Int32)" />
+      <Member Name="set_Item&lt;T&gt;(System.Int32,T)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading._IOCompletionCallback">
+      <Member Name="PerformIOCompletionCallback(System.UInt32,System.UInt32,System.Threading.NativeOverlapped*)" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading._ThreadPoolWaitCallback">
+      <Member Name="PerformWaitCallback" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading._ThreadPoolWaitOrTimerCallback">
+      <Member Name="PerformWaitOrTimerCallback(System.Object,System.Boolean)" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading.TimerQueue">
+      <Member Name="AppDomainTimerCallback" /> <!-- EE -->
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading.InternalCrossContextDelegate" />
+    <Type Status="ImplRoot" Name="System.Threading.OverlappedData" />
+
+    <Type Status="ImplRoot" Name="System.Threading.ThreadInterruptedException" />
+    <Type Name="System.ThreadStaticAttribute">
+        <Member Name="#ctor" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.TypeUnloadedException" />
+    <Type Status="ImplRoot" Name="System.Runtime.InteropServices.PInvokeMap" />
+    <Type Name="System.ArgIterator">  <!-- for MC++ -->
+      <Member Status="ImplRoot" Name="#ctor(System.RuntimeArgumentHandle,System.Void*)" /> <!-- EE - il stubs -->
+    </Type>
+        <Type Name="System.Runtime.InteropServices.BestFitMappingAttribute">
+      <Member MemberType="Field" Name="ThrowOnUnmappableChar" />
+      <Member Name="#ctor(System.Boolean)" />
+      <Member MemberType="Property" Name="BestFitMapping" />
+      <Member Name="get_BestFitMapping" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComEventInterfaceAttribute">
+      <Member Name="#ctor(System.Type,System.Type)" />
+      <Member MemberType="Property" Name="EventProvider" />
+      <Member MemberType="Property" Name="SourceInterface" />
+      <Member Name="get_EventProvider" />
+      <Member Name="get_SourceInterface" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComEventsHelper">
+      <Member Name="Combine(System.Object,System.Guid,System.Int32,System.Delegate)" />
+      <Member Name="Remove(System.Object,System.Guid,System.Int32,System.Delegate)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComMemberType">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="Method" />
+      <Member MemberType="Field" Name="PropGet" />
+      <Member MemberType="Field" Name="PropSet" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComSourceInterfacesAttribute">
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.Type)" />
+      <Member Name="#ctor(System.Type,System.Type)" />
+      <Member Name="#ctor(System.Type,System.Type,System.Type)" />
+      <Member Name="#ctor(System.Type,System.Type,System.Type,System.Type)" />
+      <Member MemberType="Property" Name="Value" />
+      <Member Name="get_Value" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.CustomQueryInterfaceMode">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="Allow" />
+      <Member MemberType="Field" Name="Ignore" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.CustomQueryInterfaceResult">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="Failed" />
+      <Member MemberType="Field" Name="Handled" />
+      <Member MemberType="Field" Name="NotHandled" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.DefaultDllImportSearchPathsAttribute">
+      <Member Name="#ctor(System.Runtime.InteropServices.DllImportSearchPath)" />
+      <Member MemberType="Property" Name="Paths" />
+      <Member Name="get_Paths" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.DllImportSearchPath">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="ApplicationDirectory" />
+      <Member MemberType="Field" Name="AssemblyDirectory" />
+      <Member MemberType="Field" Name="LegacyBehavior" />
+      <Member MemberType="Field" Name="SafeDirectories" />
+      <Member MemberType="Field" Name="System32" />
+      <Member MemberType="Field" Name="UseDllDirectoryForDependencies" />
+      <Member MemberType="Field" Name="UserDirectories" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ICustomAdapter">
+      <Member Name="GetUnderlyingObject" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.SafeBuffer">
+      <Member Name="#ctor(System.Boolean)" />
+      <Member MemberType="Property" Name="ByteLength" />
+      <Member Name="AcquirePointer(System.Byte*@)" />
+      <Member Name="get_ByteLength" />
+      <Member Name="Initialize(System.UInt32,System.UInt32)" />
+      <Member Name="Initialize(System.UInt64)" />
+      <Member Name="Initialize&lt;T&gt;(System.UInt32)" />
+      <Member Name="Read&lt;T&gt;(System.UInt64)" />
+      <Member Name="ReadArray&lt;T&gt;(System.UInt64,T[],System.Int32,System.Int32)" />
+      <Member Name="ReleasePointer" />
+      <Member Name="Write&lt;T&gt;(System.UInt64,T)" />
+      <Member Name="WriteArray&lt;T&gt;(System.UInt64,T[],System.Int32,System.Int32)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.TypeIdentifierAttribute">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String,System.String)" />
+      <Member MemberType="Property" Name="Identifier" />
+      <Member MemberType="Property" Name="Scope" />
+      <Member Name="get_Identifier" />
+      <Member Name="get_Scope" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.VarEnum">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="VT_ARRAY" />
+      <Member MemberType="Field" Name="VT_BLOB" />
+      <Member MemberType="Field" Name="VT_BLOB_OBJECT" />
+      <Member MemberType="Field" Name="VT_BOOL" />
+      <Member MemberType="Field" Name="VT_BSTR" />
+      <Member MemberType="Field" Name="VT_BYREF" />
+      <Member MemberType="Field" Name="VT_CARRAY" />
+      <Member MemberType="Field" Name="VT_CF" />
+      <Member MemberType="Field" Name="VT_CLSID" />
+      <Member MemberType="Field" Name="VT_CY" />
+      <Member MemberType="Field" Name="VT_DATE" />
+      <Member MemberType="Field" Name="VT_DECIMAL" />
+      <Member MemberType="Field" Name="VT_DISPATCH" />
+      <Member MemberType="Field" Name="VT_EMPTY" />
+      <Member MemberType="Field" Name="VT_ERROR" />
+      <Member MemberType="Field" Name="VT_FILETIME" />
+      <Member MemberType="Field" Name="VT_HRESULT" />
+      <Member MemberType="Field" Name="VT_I1" />
+      <Member MemberType="Field" Name="VT_I2" />
+      <Member MemberType="Field" Name="VT_I4" />
+      <Member MemberType="Field" Name="VT_I8" />
+      <Member MemberType="Field" Name="VT_INT" />
+      <Member MemberType="Field" Name="VT_LPSTR" />
+      <Member MemberType="Field" Name="VT_LPWSTR" />
+      <Member MemberType="Field" Name="VT_NULL" />
+      <Member MemberType="Field" Name="VT_PTR" />
+      <Member MemberType="Field" Name="VT_R4" />
+      <Member MemberType="Field" Name="VT_R8" />
+      <Member MemberType="Field" Name="VT_RECORD" />
+      <Member MemberType="Field" Name="VT_SAFEARRAY" />
+      <Member MemberType="Field" Name="VT_STORAGE" />
+      <Member MemberType="Field" Name="VT_STORED_OBJECT" />
+      <Member MemberType="Field" Name="VT_STREAM" />
+      <Member MemberType="Field" Name="VT_STREAMED_OBJECT" />
+      <Member MemberType="Field" Name="VT_UI1" />
+      <Member MemberType="Field" Name="VT_UI2" />
+      <Member MemberType="Field" Name="VT_UI4" />
+      <Member MemberType="Field" Name="VT_UI8" />
+      <Member MemberType="Field" Name="VT_UINT" />
+      <Member MemberType="Field" Name="VT_UNKNOWN" />
+      <Member MemberType="Field" Name="VT_USERDEFINED" />
+      <Member MemberType="Field" Name="VT_VARIANT" />
+      <Member MemberType="Field" Name="VT_VECTOR" />
+      <Member MemberType="Field" Name="VT_VOID" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.BIND_OPTS">
+      <Member MemberType="Field" Name="cbStruct" />
+      <Member MemberType="Field" Name="dwTickCountDeadline" />
+      <Member MemberType="Field" Name="grfFlags" />
+      <Member MemberType="Field" Name="grfMode" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.BINDPTR">
+      <Member MemberType="Field" Name="lpfuncdesc" />
+      <Member MemberType="Field" Name="lptcomp" />
+      <Member MemberType="Field" Name="lpvardesc" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.CALLCONV">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="CC_CDECL" />
+      <Member MemberType="Field" Name="CC_MACPASCAL" />
+      <Member MemberType="Field" Name="CC_MAX" />
+      <Member MemberType="Field" Name="CC_MPWCDECL" />
+      <Member MemberType="Field" Name="CC_MPWPASCAL" />
+      <Member MemberType="Field" Name="CC_MSCPASCAL" />
+      <Member MemberType="Field" Name="CC_PASCAL" />
+      <Member MemberType="Field" Name="CC_RESERVED" />
+      <Member MemberType="Field" Name="CC_STDCALL" />
+      <Member MemberType="Field" Name="CC_SYSCALL" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.CONNECTDATA">
+      <Member MemberType="Field" Name="dwCookie" />
+      <Member MemberType="Field" Name="pUnk" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.DESCKIND">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="DESCKIND_FUNCDESC" />
+      <Member MemberType="Field" Name="DESCKIND_IMPLICITAPPOBJ" />
+      <Member MemberType="Field" Name="DESCKIND_MAX" />
+      <Member MemberType="Field" Name="DESCKIND_NONE" />
+      <Member MemberType="Field" Name="DESCKIND_TYPECOMP" />
+      <Member MemberType="Field" Name="DESCKIND_VARDESC" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.DISPPARAMS">
+      <Member MemberType="Field" Name="cArgs" />
+      <Member MemberType="Field" Name="cNamedArgs" />
+      <Member MemberType="Field" Name="rgdispidNamedArgs" />
+      <Member MemberType="Field" Name="rgvarg" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.ELEMDESC">
+      <Member MemberType="Field" Name="desc" />
+      <Member MemberType="Field" Name="tdesc" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.ELEMDESC+DESCUNION">
+      <Member MemberType="Field" Name="idldesc" />
+      <Member MemberType="Field" Name="paramdesc" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.EXCEPINFO">
+      <Member MemberType="Field" Name="wCode" />
+      <Member MemberType="Field" Name="wReserved" />
+      <Member MemberType="Field" Name="dwHelpContext" />
+      <Member MemberType="Field" Name="scode" />
+      <Member MemberType="Field" Name="pfnDeferredFillIn" />
+      <Member MemberType="Field" Name="pvReserved" />
+      <Member MemberType="Field" Name="bstrDescription" />
+      <Member MemberType="Field" Name="bstrHelpFile" />
+      <Member MemberType="Field" Name="bstrSource" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.FUNCDESC">
+      <Member MemberType="Field" Name="cParams" />
+      <Member MemberType="Field" Name="cParamsOpt" />
+      <Member MemberType="Field" Name="cScodes" />
+      <Member MemberType="Field" Name="oVft" />
+      <Member MemberType="Field" Name="wFuncFlags" />
+      <Member MemberType="Field" Name="memid" />
+      <Member MemberType="Field" Name="lprgelemdescParam" />
+      <Member MemberType="Field" Name="lprgscode" />
+      <Member MemberType="Field" Name="callconv" />
+      <Member MemberType="Field" Name="elemdescFunc" />
+      <Member MemberType="Field" Name="funckind" />
+      <Member MemberType="Field" Name="invkind" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.FUNCFLAGS">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="FUNCFLAG_FBINDABLE" />
+      <Member MemberType="Field" Name="FUNCFLAG_FDEFAULTBIND" />
+      <Member MemberType="Field" Name="FUNCFLAG_FDEFAULTCOLLELEM" />
+      <Member MemberType="Field" Name="FUNCFLAG_FDISPLAYBIND" />
+      <Member MemberType="Field" Name="FUNCFLAG_FHIDDEN" />
+      <Member MemberType="Field" Name="FUNCFLAG_FIMMEDIATEBIND" />
+      <Member MemberType="Field" Name="FUNCFLAG_FNONBROWSABLE" />
+      <Member MemberType="Field" Name="FUNCFLAG_FREPLACEABLE" />
+      <Member MemberType="Field" Name="FUNCFLAG_FREQUESTEDIT" />
+      <Member MemberType="Field" Name="FUNCFLAG_FRESTRICTED" />
+      <Member MemberType="Field" Name="FUNCFLAG_FSOURCE" />
+      <Member MemberType="Field" Name="FUNCFLAG_FUIDEFAULT" />
+      <Member MemberType="Field" Name="FUNCFLAG_FUSESGETLASTERROR" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.FUNCKIND">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="FUNC_DISPATCH" />
+      <Member MemberType="Field" Name="FUNC_NONVIRTUAL" />
+      <Member MemberType="Field" Name="FUNC_PUREVIRTUAL" />
+      <Member MemberType="Field" Name="FUNC_STATIC" />
+      <Member MemberType="Field" Name="FUNC_VIRTUAL" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IBindCtx">
+      <Member Name="EnumObjectParam(System.Runtime.InteropServices.ComTypes.IEnumString@)" />
+      <Member Name="GetBindOptions(System.Runtime.InteropServices.ComTypes.BIND_OPTS@)" />
+      <Member Name="GetObjectParam(System.String,System.Object@)" />
+      <Member Name="GetRunningObjectTable(System.Runtime.InteropServices.ComTypes.IRunningObjectTable@)" />
+      <Member Name="RegisterObjectBound(System.Object)" />
+      <Member Name="RegisterObjectParam(System.String,System.Object)" />
+      <Member Name="ReleaseBoundObjects" />
+      <Member Name="RevokeObjectBound(System.Object)" />
+      <Member Name="RevokeObjectParam(System.String)" />
+      <Member Name="SetBindOptions(System.Runtime.InteropServices.ComTypes.BIND_OPTS@)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IConnectionPoint">
+      <Member Name="Advise(System.Object,System.Int32@)" />
+      <Member Name="EnumConnections(System.Runtime.InteropServices.ComTypes.IEnumConnections@)" />
+      <Member Name="GetConnectionInterface(System.Guid@)" />
+      <Member Name="GetConnectionPointContainer(System.Runtime.InteropServices.ComTypes.IConnectionPointContainer@)" />
+      <Member Name="Unadvise(System.Int32)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IConnectionPointContainer">
+      <Member Name="EnumConnectionPoints(System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints@)" />
+      <Member Name="FindConnectionPoint(System.Guid@,System.Runtime.InteropServices.ComTypes.IConnectionPoint@)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IDLDESC">
+      <Member MemberType="Field" Name="dwReserved" />
+      <Member MemberType="Field" Name="wIDLFlags" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IDLFLAG">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="IDLFLAG_FIN" />
+      <Member MemberType="Field" Name="IDLFLAG_FLCID" />
+      <Member MemberType="Field" Name="IDLFLAG_FOUT" />
+      <Member MemberType="Field" Name="IDLFLAG_FRETVAL" />
+      <Member MemberType="Field" Name="IDLFLAG_NONE" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints">
+      <Member Name="Clone(System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints@)" />
+      <Member Name="Next(System.Int32,System.Runtime.InteropServices.ComTypes.IConnectionPoint[],System.IntPtr)" />
+      <Member Name="Reset" />
+      <Member Name="Skip(System.Int32)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IEnumConnections">
+      <Member Name="Clone(System.Runtime.InteropServices.ComTypes.IEnumConnections@)" />
+      <Member Name="Next(System.Int32,System.Runtime.InteropServices.ComTypes.CONNECTDATA[],System.IntPtr)" />
+      <Member Name="Reset" />
+      <Member Name="Skip(System.Int32)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IEnumMoniker">
+      <Member Name="Clone(System.Runtime.InteropServices.ComTypes.IEnumMoniker@)" />
+      <Member Name="Next(System.Int32,System.Runtime.InteropServices.ComTypes.IMoniker[],System.IntPtr)" />
+      <Member Name="Reset" />
+      <Member Name="Skip(System.Int32)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IEnumString">
+      <Member Name="Clone(System.Runtime.InteropServices.ComTypes.IEnumString@)" />
+      <Member Name="Next(System.Int32,System.String[],System.IntPtr)" />
+      <Member Name="Reset" />
+      <Member Name="Skip(System.Int32)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IEnumVARIANT">
+      <Member Name="Clone" />
+      <Member Name="Next(System.Int32,System.Object[],System.IntPtr)" />
+      <Member Name="Reset" />
+      <Member Name="Skip(System.Int32)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IMoniker">
+      <Member Name="BindToObject(System.Runtime.InteropServices.ComTypes.IBindCtx,System.Runtime.InteropServices.ComTypes.IMoniker,System.Guid@,System.Object@)" />
+      <Member Name="BindToStorage(System.Runtime.InteropServices.ComTypes.IBindCtx,System.Runtime.InteropServices.ComTypes.IMoniker,System.Guid@,System.Object@)" />
+      <Member Name="CommonPrefixWith(System.Runtime.InteropServices.ComTypes.IMoniker,System.Runtime.InteropServices.ComTypes.IMoniker@)" />
+      <Member Name="ComposeWith(System.Runtime.InteropServices.ComTypes.IMoniker,System.Boolean,System.Runtime.InteropServices.ComTypes.IMoniker@)" />
+      <Member Name="Enum(System.Boolean,System.Runtime.InteropServices.ComTypes.IEnumMoniker@)" />
+      <Member Name="GetClassID(System.Guid@)" />
+      <Member Name="GetDisplayName(System.Runtime.InteropServices.ComTypes.IBindCtx,System.Runtime.InteropServices.ComTypes.IMoniker,System.String@)" />
+      <Member Name="GetSizeMax(System.Int64@)" />
+      <Member Name="GetTimeOfLastChange(System.Runtime.InteropServices.ComTypes.IBindCtx,System.Runtime.InteropServices.ComTypes.IMoniker,System.Runtime.InteropServices.ComTypes.FILETIME@)" />
+      <Member Name="Hash(System.Int32@)" />
+      <Member Name="Inverse(System.Runtime.InteropServices.ComTypes.IMoniker@)" />
+      <Member Name="IsDirty" />
+      <Member Name="IsEqual(System.Runtime.InteropServices.ComTypes.IMoniker)" />
+      <Member Name="IsRunning(System.Runtime.InteropServices.ComTypes.IBindCtx,System.Runtime.InteropServices.ComTypes.IMoniker,System.Runtime.InteropServices.ComTypes.IMoniker)" />
+      <Member Name="IsSystemMoniker(System.Int32@)" />
+      <Member Name="Load(System.Runtime.InteropServices.ComTypes.IStream)" />
+      <Member Name="ParseDisplayName(System.Runtime.InteropServices.ComTypes.IBindCtx,System.Runtime.InteropServices.ComTypes.IMoniker,System.String,System.Int32@,System.Runtime.InteropServices.ComTypes.IMoniker@)" />
+      <Member Name="Reduce(System.Runtime.InteropServices.ComTypes.IBindCtx,System.Int32,System.Runtime.InteropServices.ComTypes.IMoniker@,System.Runtime.InteropServices.ComTypes.IMoniker@)" />
+      <Member Name="RelativePathTo(System.Runtime.InteropServices.ComTypes.IMoniker,System.Runtime.InteropServices.ComTypes.IMoniker@)" />
+      <Member Name="Save(System.Runtime.InteropServices.ComTypes.IStream,System.Boolean)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="IMPLTYPEFLAG_FDEFAULT" />
+      <Member MemberType="Field" Name="IMPLTYPEFLAG_FDEFAULTVTABLE" />
+      <Member MemberType="Field" Name="IMPLTYPEFLAG_FRESTRICTED" />
+      <Member MemberType="Field" Name="IMPLTYPEFLAG_FSOURCE" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.INVOKEKIND">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="INVOKE_FUNC" />
+      <Member MemberType="Field" Name="INVOKE_PROPERTYGET" />
+      <Member MemberType="Field" Name="INVOKE_PROPERTYPUT" />
+      <Member MemberType="Field" Name="INVOKE_PROPERTYPUTREF" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IPersistFile">
+      <Member Name="GetClassID(System.Guid@)" />
+      <Member Name="GetCurFile(System.String@)" />
+      <Member Name="IsDirty" />
+      <Member Name="Load(System.String,System.Int32)" />
+      <Member Name="Save(System.String,System.Boolean)" />
+      <Member Name="SaveCompleted(System.String)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.IRunningObjectTable">
+      <Member Name="EnumRunning(System.Runtime.InteropServices.ComTypes.IEnumMoniker@)" />
+      <Member Name="GetObject(System.Runtime.InteropServices.ComTypes.IMoniker,System.Object@)" />
+      <Member Name="GetTimeOfLastChange(System.Runtime.InteropServices.ComTypes.IMoniker,System.Runtime.InteropServices.ComTypes.FILETIME@)" />
+      <Member Name="IsRunning(System.Runtime.InteropServices.ComTypes.IMoniker)" />
+      <Member Name="NoteChangeTime(System.Int32,System.Runtime.InteropServices.ComTypes.FILETIME@)" />
+      <Member Name="Register(System.Int32,System.Object,System.Runtime.InteropServices.ComTypes.IMoniker)" />
+      <Member Name="Revoke(System.Int32)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.ITypeComp">
+      <Member Name="Bind(System.String,System.Int32,System.Int16,System.Runtime.InteropServices.ComTypes.ITypeInfo@,System.Runtime.InteropServices.ComTypes.DESCKIND@,System.Runtime.InteropServices.ComTypes.BINDPTR@)" />
+      <Member Name="BindType(System.String,System.Int32,System.Runtime.InteropServices.ComTypes.ITypeInfo@,System.Runtime.InteropServices.ComTypes.ITypeComp@)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.ITypeInfo">
+      <Member Name="AddressOfMember(System.Int32,System.Runtime.InteropServices.ComTypes.INVOKEKIND,System.IntPtr@)" />
+      <Member Name="CreateInstance(System.Object,System.Guid@,System.Object@)" />
+      <Member Name="GetContainingTypeLib(System.Runtime.InteropServices.ComTypes.ITypeLib@,System.Int32@)" />
+      <Member Name="GetDllEntry(System.Int32,System.Runtime.InteropServices.ComTypes.INVOKEKIND,System.IntPtr,System.IntPtr,System.IntPtr)" />
+      <Member Name="GetDocumentation(System.Int32,System.String@,System.String@,System.Int32@,System.String@)" />
+      <Member Name="GetFuncDesc(System.Int32,System.IntPtr@)" />
+      <Member Name="GetIDsOfNames(System.String[],System.Int32,System.Int32[])" />
+      <Member Name="GetImplTypeFlags(System.Int32,System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS@)" />
+      <Member Name="GetMops(System.Int32,System.String@)" />
+      <Member Name="GetNames(System.Int32,System.String[],System.Int32,System.Int32@)" />
+      <Member Name="GetRefTypeInfo(System.Int32,System.Runtime.InteropServices.ComTypes.ITypeInfo@)" />
+      <Member Name="GetRefTypeOfImplType(System.Int32,System.Int32@)" />
+      <Member Name="GetTypeAttr(System.IntPtr@)" />
+      <Member Name="GetTypeComp(System.Runtime.InteropServices.ComTypes.ITypeComp@)" />
+      <Member Name="GetVarDesc(System.Int32,System.IntPtr@)" />
+      <Member Name="Invoke(System.Object,System.Int32,System.Int16,System.Runtime.InteropServices.ComTypes.DISPPARAMS@,System.IntPtr,System.IntPtr,System.Int32@)" />
+      <Member Name="ReleaseFuncDesc(System.IntPtr)" />
+      <Member Name="ReleaseTypeAttr(System.IntPtr)" />
+      <Member Name="ReleaseVarDesc(System.IntPtr)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.ITypeInfo2">
+      <Member Name="AddressOfMember(System.Int32,System.Runtime.InteropServices.ComTypes.INVOKEKIND,System.IntPtr@)" />
+      <Member Name="CreateInstance(System.Object,System.Guid@,System.Object@)" />
+      <Member Name="GetAllCustData(System.IntPtr)" />
+      <Member Name="GetAllFuncCustData(System.Int32,System.IntPtr)" />
+      <Member Name="GetAllImplTypeCustData(System.Int32,System.IntPtr)" />
+      <Member Name="GetAllParamCustData(System.Int32,System.Int32,System.IntPtr)" />
+      <Member Name="GetAllVarCustData(System.Int32,System.IntPtr)" />
+      <Member Name="GetContainingTypeLib(System.Runtime.InteropServices.ComTypes.ITypeLib@,System.Int32@)" />
+      <Member Name="GetCustData(System.Guid@,System.Object@)" />
+      <Member Name="GetDllEntry(System.Int32,System.Runtime.InteropServices.ComTypes.INVOKEKIND,System.IntPtr,System.IntPtr,System.IntPtr)" />
+      <Member Name="GetDocumentation(System.Int32,System.String@,System.String@,System.Int32@,System.String@)" />
+      <Member Name="GetDocumentation2(System.Int32,System.String@,System.Int32@,System.String@)" />
+      <Member Name="GetFuncCustData(System.Int32,System.Guid@,System.Object@)" />
+      <Member Name="GetFuncDesc(System.Int32,System.IntPtr@)" />
+      <Member Name="GetFuncIndexOfMemId(System.Int32,System.Runtime.InteropServices.ComTypes.INVOKEKIND,System.Int32@)" />
+      <Member Name="GetIDsOfNames(System.String[],System.Int32,System.Int32[])" />
+      <Member Name="GetImplTypeCustData(System.Int32,System.Guid@,System.Object@)" />
+      <Member Name="GetImplTypeFlags(System.Int32,System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS@)" />
+      <Member Name="GetMops(System.Int32,System.String@)" />
+      <Member Name="GetNames(System.Int32,System.String[],System.Int32,System.Int32@)" />
+      <Member Name="GetParamCustData(System.Int32,System.Int32,System.Guid@,System.Object@)" />
+      <Member Name="GetRefTypeInfo(System.Int32,System.Runtime.InteropServices.ComTypes.ITypeInfo@)" />
+      <Member Name="GetRefTypeOfImplType(System.Int32,System.Int32@)" />
+      <Member Name="GetTypeAttr(System.IntPtr@)" />
+      <Member Name="GetTypeComp(System.Runtime.InteropServices.ComTypes.ITypeComp@)" />
+      <Member Name="GetTypeFlags(System.Int32@)" />
+      <Member Name="GetTypeKind(System.Runtime.InteropServices.ComTypes.TYPEKIND@)" />
+      <Member Name="GetVarCustData(System.Int32,System.Guid@,System.Object@)" />
+      <Member Name="GetVarDesc(System.Int32,System.IntPtr@)" />
+      <Member Name="GetVarIndexOfMemId(System.Int32,System.Int32@)" />
+      <Member Name="Invoke(System.Object,System.Int32,System.Int16,System.Runtime.InteropServices.ComTypes.DISPPARAMS@,System.IntPtr,System.IntPtr,System.Int32@)" />
+      <Member Name="ReleaseFuncDesc(System.IntPtr)" />
+      <Member Name="ReleaseTypeAttr(System.IntPtr)" />
+      <Member Name="ReleaseVarDesc(System.IntPtr)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.ITypeLib">
+      <Member Name="FindName(System.String,System.Int32,System.Runtime.InteropServices.ComTypes.ITypeInfo[],System.Int32[],System.Int16@)" />
+      <Member Name="GetDocumentation(System.Int32,System.String@,System.String@,System.Int32@,System.String@)" />
+      <Member Name="GetLibAttr(System.IntPtr@)" />
+      <Member Name="GetTypeComp(System.Runtime.InteropServices.ComTypes.ITypeComp@)" />
+      <Member Name="GetTypeInfo(System.Int32,System.Runtime.InteropServices.ComTypes.ITypeInfo@)" />
+      <Member Name="GetTypeInfoCount" />
+      <Member Name="GetTypeInfoOfGuid(System.Guid@,System.Runtime.InteropServices.ComTypes.ITypeInfo@)" />
+      <Member Name="GetTypeInfoType(System.Int32,System.Runtime.InteropServices.ComTypes.TYPEKIND@)" />
+      <Member Name="IsName(System.String,System.Int32)" />
+      <Member Name="ReleaseTLibAttr(System.IntPtr)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.ITypeLib2">
+      <Member Name="FindName(System.String,System.Int32,System.Runtime.InteropServices.ComTypes.ITypeInfo[],System.Int32[],System.Int16@)" />
+      <Member Name="GetAllCustData(System.IntPtr)" />
+      <Member Name="GetCustData(System.Guid@,System.Object@)" />
+      <Member Name="GetDocumentation(System.Int32,System.String@,System.String@,System.Int32@,System.String@)" />
+      <Member Name="GetDocumentation2(System.Int32,System.String@,System.Int32@,System.String@)" />
+      <Member Name="GetLibAttr(System.IntPtr@)" />
+      <Member Name="GetLibStatistics(System.IntPtr,System.Int32@)" />
+      <Member Name="GetTypeComp(System.Runtime.InteropServices.ComTypes.ITypeComp@)" />
+      <Member Name="GetTypeInfo(System.Int32,System.Runtime.InteropServices.ComTypes.ITypeInfo@)" />
+      <Member Name="GetTypeInfoCount" />
+      <Member Name="GetTypeInfoOfGuid(System.Guid@,System.Runtime.InteropServices.ComTypes.ITypeInfo@)" />
+      <Member Name="GetTypeInfoType(System.Int32,System.Runtime.InteropServices.ComTypes.TYPEKIND@)" />
+      <Member Name="IsName(System.String,System.Int32)" />
+      <Member Name="ReleaseTLibAttr(System.IntPtr)" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.LIBFLAGS">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="LIBFLAG_FCONTROL" />
+      <Member MemberType="Field" Name="LIBFLAG_FHASDISKIMAGE" />
+      <Member MemberType="Field" Name="LIBFLAG_FHIDDEN" />
+      <Member MemberType="Field" Name="LIBFLAG_FRESTRICTED" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.PARAMDESC">
+      <Member MemberType="Field" Name="lpVarValue" />
+      <Member MemberType="Field" Name="wParamFlags" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.PARAMFLAG">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="PARAMFLAG_FHASCUSTDATA" />
+      <Member MemberType="Field" Name="PARAMFLAG_FHASDEFAULT" />
+      <Member MemberType="Field" Name="PARAMFLAG_FIN" />
+      <Member MemberType="Field" Name="PARAMFLAG_FLCID" />
+      <Member MemberType="Field" Name="PARAMFLAG_FOPT" />
+      <Member MemberType="Field" Name="PARAMFLAG_FOUT" />
+      <Member MemberType="Field" Name="PARAMFLAG_FRETVAL" />
+      <Member MemberType="Field" Name="PARAMFLAG_NONE" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.SYSKIND">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="SYS_MAC" />
+      <Member MemberType="Field" Name="SYS_WIN16" />
+      <Member MemberType="Field" Name="SYS_WIN32" />
+      <Member MemberType="Field" Name="SYS_WIN64" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.TYPEATTR">
+      <Member MemberType="Field" Name="guid" />
+      <Member MemberType="Field" Name="cbAlignment" />
+      <Member MemberType="Field" Name="cbSizeVft" />
+      <Member MemberType="Field" Name="cFuncs" />
+      <Member MemberType="Field" Name="cImplTypes" />
+      <Member MemberType="Field" Name="cVars" />
+      <Member MemberType="Field" Name="wMajorVerNum" />
+      <Member MemberType="Field" Name="wMinorVerNum" />
+      <Member MemberType="Field" Name="cbSizeInstance" />
+      <Member MemberType="Field" Name="dwReserved" />
+      <Member MemberType="Field" Name="lcid" />
+      <Member MemberType="Field" Name="MEMBER_ID_NIL" />
+      <Member MemberType="Field" Name="memidConstructor" />
+      <Member MemberType="Field" Name="memidDestructor" />
+      <Member MemberType="Field" Name="lpstrSchema" />
+      <Member MemberType="Field" Name="idldescType" />
+      <Member MemberType="Field" Name="tdescAlias" />
+      <Member MemberType="Field" Name="wTypeFlags" />
+      <Member MemberType="Field" Name="typekind" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.TYPEDESC">
+      <Member MemberType="Field" Name="vt" />
+      <Member MemberType="Field" Name="lpValue" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.TYPEFLAGS">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="TYPEFLAG_FAGGREGATABLE" />
+      <Member MemberType="Field" Name="TYPEFLAG_FAPPOBJECT" />
+      <Member MemberType="Field" Name="TYPEFLAG_FCANCREATE" />
+      <Member MemberType="Field" Name="TYPEFLAG_FCONTROL" />
+      <Member MemberType="Field" Name="TYPEFLAG_FDISPATCHABLE" />
+      <Member MemberType="Field" Name="TYPEFLAG_FDUAL" />
+      <Member MemberType="Field" Name="TYPEFLAG_FHIDDEN" />
+      <Member MemberType="Field" Name="TYPEFLAG_FLICENSED" />
+      <Member MemberType="Field" Name="TYPEFLAG_FNONEXTENSIBLE" />
+      <Member MemberType="Field" Name="TYPEFLAG_FOLEAUTOMATION" />
+      <Member MemberType="Field" Name="TYPEFLAG_FPREDECLID" />
+      <Member MemberType="Field" Name="TYPEFLAG_FPROXY" />
+      <Member MemberType="Field" Name="TYPEFLAG_FREPLACEABLE" />
+      <Member MemberType="Field" Name="TYPEFLAG_FRESTRICTED" />
+      <Member MemberType="Field" Name="TYPEFLAG_FREVERSEBIND" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.TYPEKIND">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="TKIND_ALIAS" />
+      <Member MemberType="Field" Name="TKIND_COCLASS" />
+      <Member MemberType="Field" Name="TKIND_DISPATCH" />
+      <Member MemberType="Field" Name="TKIND_ENUM" />
+      <Member MemberType="Field" Name="TKIND_INTERFACE" />
+      <Member MemberType="Field" Name="TKIND_MAX" />
+      <Member MemberType="Field" Name="TKIND_MODULE" />
+      <Member MemberType="Field" Name="TKIND_RECORD" />
+      <Member MemberType="Field" Name="TKIND_UNION" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.TYPELIBATTR">
+      <Member MemberType="Field" Name="guid" />
+      <Member MemberType="Field" Name="wMajorVerNum" />
+      <Member MemberType="Field" Name="wMinorVerNum" />
+      <Member MemberType="Field" Name="lcid" />
+      <Member MemberType="Field" Name="wLibFlags" />
+      <Member MemberType="Field" Name="syskind" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.VARDESC">
+      <Member MemberType="Field" Name="desc" />
+      <Member MemberType="Field" Name="wVarFlags" />
+      <Member MemberType="Field" Name="memid" />
+      <Member MemberType="Field" Name="elemdescVar" />
+      <Member MemberType="Field" Name="varkind" />
+      <Member MemberType="Field" Name="lpstrSchema" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.VARDESC+DESCUNION">
+      <Member MemberType="Field" Name="oInst" />
+      <Member MemberType="Field" Name="lpvarValue" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.VARFLAGS">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="VARFLAG_FBINDABLE" />
+      <Member MemberType="Field" Name="VARFLAG_FDEFAULTBIND" />
+      <Member MemberType="Field" Name="VARFLAG_FDEFAULTCOLLELEM" />
+      <Member MemberType="Field" Name="VARFLAG_FDISPLAYBIND" />
+      <Member MemberType="Field" Name="VARFLAG_FHIDDEN" />
+      <Member MemberType="Field" Name="VARFLAG_FIMMEDIATEBIND" />
+      <Member MemberType="Field" Name="VARFLAG_FNONBROWSABLE" />
+      <Member MemberType="Field" Name="VARFLAG_FREADONLY" />
+      <Member MemberType="Field" Name="VARFLAG_FREPLACEABLE" />
+      <Member MemberType="Field" Name="VARFLAG_FREQUESTEDIT" />
+      <Member MemberType="Field" Name="VARFLAG_FRESTRICTED" />
+      <Member MemberType="Field" Name="VARFLAG_FSOURCE" />
+      <Member MemberType="Field" Name="VARFLAG_FUIDEFAULT" />
+    </Type>
+    <Type Name="System.Runtime.InteropServices.ComTypes.VARKIND">
+      <Member MemberType="Field" Name="value__" />
+      <Member MemberType="Field" Name="VAR_CONST" />
+      <Member MemberType="Field" Name="VAR_DISPATCH" />
+      <Member MemberType="Field" Name="VAR_PERINSTANCE" />
+      <Member MemberType="Field" Name="VAR_STATIC" />
+    </Type>
+
+    <Type Status="ImplRoot" Name="System.StubHelpers.StubHelpers">
+      <Member Name="ClearLastError" />
+      <Member Name="SetLastError" />
+      <Member Name="IsQCall(System.IntPtr)" />
+      <Member Name="InitDeclaringType(System.IntPtr)" />
+      <Member Name="GetNDirectTarget(System.IntPtr)" />
+      <Member Name="GetDelegateTarget(System.Delegate,System.IntPtr@)" />
+      <Member Name="ThrowInteropParamException(System.Int32,System.Int32)" />
+      <Member Name="AddToCleanupList(System.StubHelpers.CleanupWorkList@,System.Runtime.InteropServices.SafeHandle)" />
+      <Member Name="DestroyCleanupList(System.StubHelpers.CleanupWorkList@)" />
+      <Member Name="GetHRExceptionObject(System.Int32)" />
+      <Member Name="CreateCustomMarshalerHelper(System.IntPtr,System.Int32,System.IntPtr)" />
+      <Member Name="CheckStringLength(System.Int32)" />
+      <Member Name="DecimalCanonicalizeInternal(System.Decimal@)" />
+      <Member Name="FmtClassUpdateNativeInternal(System.Object,System.Byte*,System.StubHelpers.CleanupWorkList@)" />
+      <Member Name="FmtClassUpdateCLRInternal(System.Object,System.Byte*)" />
+      <Member Name="LayoutDestroyNativeInternal(System.Byte*,System.IntPtr)" />
+      <Member Name="AllocateInternal(System.IntPtr)" />
+      <Member Name="strlen(System.SByte*)" />
+      <Member Name="MarshalToManagedVaListInternal(System.IntPtr,System.IntPtr)" />
+      <Member Name="MarshalToUnmanagedVaListInternal(System.IntPtr,System.UInt32,System.IntPtr)" />
+      <Member Name="CalcVaListSize(System.IntPtr)" />
+      <Member Name="ProfilerBeginTransitionCallback(System.IntPtr,System.IntPtr,System.Object)" /> <!-- EE -->
+      <Member Name="ProfilerEndTransitionCallback(System.IntPtr,System.IntPtr)" /> <!-- EE -->
+      <Member Name="SafeHandleAddRef(System.Runtime.InteropServices.SafeHandle,System.Boolean@)" />
+      <Member Name="SafeHandleRelease(System.Runtime.InteropServices.SafeHandle)" />
+      <Member Name="ValidateObject(System.Object,System.IntPtr,System.Object)" />
+      <Member Name="ValidateByref(System.IntPtr,System.IntPtr,System.Object)" />
+      <Member Name="LogPinnedArgument(System.IntPtr,System.IntPtr)" />
+      <Member Name="GetStubContext" />
+      <Member Name="GetStubContextAddr" Architecture="amd64" />
+      <Member Name="GetStubContextAddr" Architecture="arm64" />
+      <Member Name="ArrayTypeCheck(System.Object,System.Object[])" Condition="FEATURE_ARRAYSTUB_AS_IL" />
+      <Member Name="MulticastDebuggerTraceHelper(System.Object,System.Int32)" Condition="FEATURE_STUBS_AS_IL" />
+      <Member Name="GetCOMHRExceptionObject(System.Int32,System.IntPtr,System.Object)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="GetCOMHRExceptionObject_WinRT(System.Int32,System.IntPtr,System.Object)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="GetCOMIPFromRCW(System.Object,System.IntPtr,System.IntPtr@,System.Boolean@)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="GetCOMIPFromRCW_WinRT(System.Object,System.IntPtr,System.IntPtr@)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="GetCOMIPFromRCW_WinRTSharedGeneric(System.Object,System.IntPtr,System.IntPtr@)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="GetCOMIPFromRCW_WinRTDelegate(System.Object,System.IntPtr,System.IntPtr@)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="ShouldCallWinRTInterface(System.Object,System.IntPtr)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="StubRegisterRCW(System.Object)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="StubUnregisterRCW(System.Object)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="GetDelegateInvokeMethod(System.Delegate)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="GetWinRTFactoryObject(System.IntPtr)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="GetWinRTFactoryReturnValue(System.Object,System.IntPtr)" Condition="FEATURE_COMINTEROP" />
+      <Member Name="GetOuterInspectable(System.Object,System.IntPtr)" Condition="FEATURE_COMINTEROP" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.AnsiCharMarshaler">
+      <Member Name="ConvertToNative(System.Char,System.Boolean,System.Boolean)" />
+      <Member Name="ConvertToManaged(System.Byte)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.AnsiBSTRMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="ConvertToNative(System.Int32,System.String)" />
+      <Member Name="ConvertToManaged(System.IntPtr)" />
+      <Member Name="ClearNative(System.IntPtr)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.BSTRMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="ConvertToNative(System.String,System.IntPtr)" />
+      <Member Name="ConvertToManaged(System.IntPtr)" />
+      <Member Name="ClearNative(System.IntPtr)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.CSTRMarshaler">
+      <Member Name="ConvertToNative(System.Int32,System.String,System.IntPtr)" />
+      <Member Name="ConvertToManaged(System.IntPtr)" />
+      <Member Name="ClearNative(System.IntPtr)" />
+    </Type>
+    <Type Status="ApiFxInternal" Name="System.StubHelpers.EventArgsMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="CreateNativeNCCEventArgsInstance(System.Int32,System.Object,System.Object,System.Int32,System.Int32)"/>
+      <Member Name="CreateNativePCEventArgsInstance(System.String)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.HResultExceptionMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="ConvertToNative(System.Exception)" />
+      <Member Name="ConvertToManaged(System.Int32)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.KeyValuePairMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="ConvertToNative&lt;K,V&gt;(System.Collections.Generic.KeyValuePair&lt;K,V&gt;@)" />
+      <Member Name="ConvertToManaged&lt;K,V&gt;(System.IntPtr)" />
+      <Member Name="ConvertToManagedBox&lt;K,V&gt;(System.IntPtr)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.MngdSafeArrayMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="CreateMarshaler(System.IntPtr,System.IntPtr,System.Int32,System.Int32)" />
+      <Member Name="ConvertSpaceToNative(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ConvertContentsToNative(System.IntPtr,System.Object@,System.IntPtr,System.Object)" />
+      <Member Name="ConvertSpaceToManaged(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ConvertContentsToManaged(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ClearNative(System.IntPtr,System.Object@,System.IntPtr)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.MngdHiddenLengthArrayMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="CreateMarshaler(System.IntPtr,System.IntPtr,System.IntPtr,System.UInt16)" />
+      <Member Name="ConvertSpaceToManaged(System.IntPtr,System.Object@,System.IntPtr,System.Int32)" />
+      <Member Name="ConvertContentsToManaged(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ConvertSpaceToNative(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ConvertContentsToNative(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ClearNativeContents(System.IntPtr,System.IntPtr,System.Int32)" />
+      <Member Name="ClearNativeContents_Type(System.IntPtr,System.Int32)" />
+      <Member Name="ConvertContentsToManaged_DateTime(System.DateTimeOffset[]@,System.IntPtr)" />
+      <Member Name="ConvertContentsToManaged_Type(System.Type[]@,System.IntPtr)" />
+      <Member Name="ConvertContentsToManaged_Exception(System.Exception[]@,System.IntPtr)" />
+      <Member Name="ConvertContentsToManaged_Nullable&lt;T&gt;(System.Nullable&lt;T&gt;[]@,System.IntPtr)" />
+      <Member Name="ConvertContentsToManaged_KeyValuePair&lt;K,V&gt;(System.Collections.Generic.KeyValuePair&lt;K,V&gt;[]@,System.IntPtr)" />
+      <Member Name="ConvertContentsToNative_DateTime(System.DateTimeOffset[]@,System.IntPtr)" />
+      <Member Name="ConvertContentsToNative_Type(System.Type[]@,System.IntPtr)" />
+      <Member Name="ConvertContentsToNative_Exception(System.Exception[]@,System.IntPtr)" />
+      <Member Name="ConvertContentsToNative_Nullable&lt;T&gt;(System.Nullable&lt;T&gt;[]@,System.IntPtr)" />
+      <Member Name="ConvertContentsToNative_KeyValuePair&lt;K,V&gt;(System.Collections.Generic.KeyValuePair&lt;K,V&gt;[]@,System.IntPtr)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.NullableMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="ConvertToNative&lt;T&gt;(System.Nullable&lt;T&gt;@)" />
+      <Member Name="ConvertToManaged&lt;T&gt;(System.IntPtr)" />
+      <Member Name="ConvertToManagedRetVoid&lt;T&gt;(System.IntPtr,System.Nullable&lt;T&gt;@)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.WSTRBufferMarshaler">
+      <Member Name="ConvertToNative(System.String)" />
+      <Member Name="ConvertToManaged(System.IntPtr)" />
+      <Member Name="ClearNative(System.IntPtr)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.ValueClassMarshaler">
+      <Member Name="ConvertToNative(System.IntPtr,System.IntPtr,System.IntPtr,System.StubHelpers.CleanupWorkList@)" />
+      <Member Name="ConvertToManaged(System.IntPtr,System.IntPtr,System.IntPtr)" />
+      <Member Name="ClearNative(System.IntPtr,System.IntPtr)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.DateMarshaler">
+      <Member Name="ConvertToNative(System.DateTime)" />
+      <Member Name="ConvertToManaged(System.Double)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.DateTimeOffsetMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="ConvertToNative(System.DateTimeOffset@,System.StubHelpers.DateTimeNative@)"/>
+      <Member Name="ConvertToManaged(System.DateTimeOffset@,System.StubHelpers.DateTimeNative@)"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.HStringMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="ConvertToNative(System.String)"/>
+      <Member Name="ConvertToNativeReference(System.String,System.Runtime.InteropServices.WindowsRuntime.HSTRING_HEADER*)"/>
+      <Member Name="ConvertToManaged(System.IntPtr)"/>
+      <Member Name="ClearNative(System.IntPtr)"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.ObjectMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="ConvertToNative(System.Object,System.IntPtr)"/>
+      <Member Name="ConvertToManaged(System.IntPtr)"/>
+      <Member Name="ClearNative(System.IntPtr)"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.InterfaceMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="ConvertToNative(System.Object,System.IntPtr,System.IntPtr,System.Int32)"/>
+      <Member Name="ConvertToManaged(System.IntPtr,System.IntPtr,System.IntPtr,System.Int32)"/>
+      <Member Name="ClearNative(System.IntPtr)"/>
+      <Member Name="ConvertToManagedWithoutUnboxing(System.IntPtr)"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.UriMarshaler" Condition="FEATURE_COMINTEROP">
+      <Member Name="GetRawUriFromNative(System.IntPtr)"/>
+      <Member Name="CreateNativeUriInstance(System.String)"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.VBByValStrMarshaler">
+      <Member Name="ConvertToNative(System.String,System.Boolean,System.Boolean,System.Int32@)" />
+      <Member Name="ConvertToManaged(System.IntPtr,System.Int32)" />
+      <Member Name="ClearNative(System.IntPtr)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.MngdNativeArrayMarshaler">
+      <Member Name="CreateMarshaler(System.IntPtr,System.IntPtr,System.Int32)" />
+      <Member Name="ConvertSpaceToNative(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ConvertContentsToNative(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ConvertSpaceToManaged(System.IntPtr,System.Object@,System.IntPtr,System.Int32)" />
+      <Member Name="ConvertContentsToManaged(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ClearNative(System.IntPtr,System.IntPtr,System.Int32)" />
+      <Member Name="ClearNativeContents(System.IntPtr,System.IntPtr,System.Int32)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.MngdRefCustomMarshaler">
+      <Member Name="CreateMarshaler(System.IntPtr,System.IntPtr)" />
+      <Member Name="ConvertContentsToNative(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ConvertContentsToManaged(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ClearNative(System.IntPtr,System.Object@,System.IntPtr)" />
+      <Member Name="ClearManaged(System.IntPtr,System.Object@,System.IntPtr)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.AsAnyMarshaler">
+       <Member Name="#ctor(System.IntPtr)" />
+       <Member Name="ConvertToNative(System.Object,System.Int32)" />
+       <Member Name="ConvertToManaged(System.Object,System.IntPtr)" />
+       <Member Name="ClearNative(System.IntPtr)" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.NativeVariant" />
+    <Type Status="ImplRoot" Name="Microsoft.Win32.Win32Native+OSVERSIONINFOEX">
+      <Member MemberType="Field" Name="OSVersionInfoSize" />
+      <Member MemberType="Field" Name="MajorVersion" />
+      <Member MemberType="Field" Name="MinorVersion" />
+      <Member MemberType="Field" Name="BuildNumber" />
+      <Member MemberType="Field" Name="PlatformId" />
+      <Member MemberType="Field" Name="CSDVersion" />
+      <Member MemberType="Field" Name="ServicePackMajor" />
+      <Member MemberType="Field" Name="ServicePackMinor" />
+      <Member MemberType="Field" Name="SuiteMask" />
+      <Member MemberType="Field" Name="ProductType" />
+      <Member MemberType="Field" Name="Reserved" />
+      <Member Name="#ctor" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.StubHelpers.TypeNameNative" Condition="FEATURE_COMINTEROP">
+      <Member MemberType="Field" Name="typeName" />
+      <Member MemberType="Field" Name="typeKind" />
+    </Type>
+    <Type Status="ImplRoot" Name="Microsoft.Win32.Win32Native+WIN32_FIND_DATA">
+      <Member MemberType="Field" Name="cFileName" />
+      <Member MemberType="Field" Name="dwFileAttributes" />
+      <Member MemberType="Field" Name="dwReserved0" />
+      <Member MemberType="Field" Name="dwReserved1" />
+      <Member MemberType="Field" Name="ftCreationTime_dwHighDateTime" />
+      <Member MemberType="Field" Name="ftCreationTime_dwLowDateTime" />
+      <Member MemberType="Field" Name="ftLastAccessTime_dwHighDateTime" />
+      <Member MemberType="Field" Name="ftLastAccessTime_dwLowDateTime" />
+      <Member MemberType="Field" Name="ftLastWriteTime_dwHighDateTime" />
+      <Member MemberType="Field" Name="ftLastWriteTime_dwLowDateTime" />
+      <Member MemberType="Field" Name="nFileSizeHigh" />
+      <Member MemberType="Field" Name="nFileSizeLow" />
+      <Member MemberType="Field" Name="cAlternateFileName" />
+      <Member Name="#ctor" />
+    </Type>
+    <!-- PFX Types -->
+    <!-- System.Threading.Tasks namespace -->
+    <Type Name="System.Threading.Tasks.TaskScheduler">
+      <Member Name="#ctor" />
+      <Member Name="TryExecuteTaskInline(System.Threading.Tasks.Task,System.Boolean)" />
+      <Member Name="TryExecuteTask(System.Threading.Tasks.Task)" />
+      <Member Name="get_MaximumConcurrencyLevel" />
+      <Member Name="get_Default" />
+      <Member Name="get_Current" />
+      <Member Name="get_Id" />
+      <Member Name="QueueTask(System.Threading.Tasks.Task)" />
+      <Member Name="TryDequeue(System.Threading.Tasks.Task)" />
+      <Member Name="GetScheduledTasks" />
+      <Member Name="FromCurrentSynchronizationContext" />
+      <Member Status="ImplRoot" Name="GetTaskSchedulersForDebugger" />
+      <Member Status="ImplRoot" Name="GetScheduledTasksForDebugger" />
+      <Member MemberType="Event" Name="UnobservedTaskException" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading.Tasks.TaskScheduler+SystemThreadingTasks_TaskSchedulerDebugView">
+      <Member Status="ImplRoot" Name="#ctor(System.Threading.Tasks.TaskScheduler)" />
+      <Member Status="ImplRoot" Name="get_ScheduledTasks" />
+      <Member Status="ImplRoot" Name="get_Id" />
+    </Type>
+    <Type Name="System.Threading.Tasks.TaskSchedulerException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Exception)" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Threading.Tasks.Task">
+      <Member Name="#ctor(System.Action)" />
+      <Member Name="#ctor(System.Action,System.Threading.CancellationToken)" />
+      <Member Name="#ctor(System.Action&lt;System.Object&gt;,System.Object)" />
+      <Member Name="#ctor(System.Action,System.Threading.Tasks.TaskCreationOptions)" />
+      <Member Name="#ctor(System.Action&lt;System.Object&gt;,System.Object,System.Threading.CancellationToken)" />
+      <Member Name="#ctor(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)" />
+      <Member Name="#ctor(System.Action&lt;System.Object&gt;,System.Object,System.Threading.Tasks.TaskCreationOptions)" />
+      <Member Name="#ctor(System.Action&lt;System.Object&gt;,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&gt;)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&gt;,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task,System.Object&gt;,System.Object)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task,System.Object&gt;,System.Object,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task,System.Object&gt;,System.Object,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task,System.Object&gt;,System.Object,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task,System.Object&gt;,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task,TResult&gt;)" />
+      <Member Name="ContinueWith&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task,TResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWith&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task,TResult&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWith&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task,TResult&gt;,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task,TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task,System.Object,TResult&gt;,System.Object)" />
+      <Member Name="ContinueWith&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task,System.Object,TResult&gt;,System.Object,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWith&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task,System.Object,TResult&gt;,System.Object,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWith&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task,System.Object,TResult&gt;,System.Object,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task,System.Object,TResult&gt;,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="FromResult&lt;TResult&gt;(TResult)" />
+      <Member Name="FromException(System.Exception)" />
+      <Member Name="FromException&lt;TResult&gt;(System.Exception)" />
+      <Member Name="FromCanceled(System.Threading.CancellationToken)" />
+      <Member Name="FromCanceled&lt;TResult&gt;(System.Threading.CancellationToken)" />
+      <Member Status="ApiFxInternal" Name="FromCancellation(System.Threading.CancellationToken)" />
+      <Member Status="ApiFxInternal" Name="FromCancellation&lt;TResult&gt;(System.Threading.CancellationToken)" />
+      <Member Name="Run(System.Action)" />
+      <Member Name="Run(System.Action,System.Threading.CancellationToken)" />
+      <Member Name="Run&lt;TResult&gt;(System.Func&lt;TResult&gt;)" />
+      <Member Name="Run&lt;TResult&gt;(System.Func&lt;TResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="Run(System.Func&lt;System.Threading.Tasks.Task&gt;)" />
+      <Member Name="Run(System.Func&lt;System.Threading.Tasks.Task&gt;,System.Threading.CancellationToken)" />
+      <Member Name="Run&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;&gt;)" />
+      <Member Name="Run&lt;TResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;&gt;,System.Threading.CancellationToken)" />
+      <Member Name="Delay(System.TimeSpan)" />
+      <Member Name="Delay(System.TimeSpan,System.Threading.CancellationToken)" />
+      <Member Name="Delay(System.Int32)" />
+      <Member Name="Delay(System.Int32,System.Threading.CancellationToken)" />
+      <Member Name="WhenAll(System.Collections.Generic.IEnumerable&lt;System.Threading.Tasks.Task&gt;)" />
+      <Member Name="WhenAll(System.Threading.Tasks.Task[])" />
+      <Member Name="WhenAll&lt;TResult&gt;(System.Collections.Generic.IEnumerable&lt;System.Threading.Tasks.Task&lt;TResult&gt;&gt;)" />
+      <Member Name="WhenAll&lt;TResult&gt;(System.Threading.Tasks.Task&lt;TResult&gt;[])" />
+      <Member Name="WhenAny(System.Collections.Generic.IEnumerable&lt;System.Threading.Tasks.Task&gt;)" />
+      <Member Name="WhenAny(System.Threading.Tasks.Task[])" />
+      <Member Name="WhenAny&lt;TResult&gt;(System.Collections.Generic.IEnumerable&lt;System.Threading.Tasks.Task&lt;TResult&gt;&gt;)" />
+      <Member Name="WhenAny&lt;TResult&gt;(System.Threading.Tasks.Task&lt;TResult&gt;[])" />
+      <Member Name="Dispose" />
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="RunSynchronously" />
+      <Member Name="RunSynchronously(System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="Start" />
+      <Member Name="Start(System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="Wait" />
+      <Member Name="Wait(System.Int32)" />
+      <Member Name="Wait(System.Threading.CancellationToken)" />
+      <Member Name="Wait(System.TimeSpan)" />
+      <Member Name="Wait(System.Int32,System.Threading.CancellationToken)" />
+      <Member Name="WaitAll(System.Threading.Tasks.Task[])" />
+      <Member Name="WaitAll(System.Threading.Tasks.Task[],System.Int32)" />
+      <Member Name="WaitAll(System.Threading.Tasks.Task[],System.Threading.CancellationToken)" />
+      <Member Name="WaitAll(System.Threading.Tasks.Task[],System.TimeSpan)" />
+      <Member Name="WaitAll(System.Threading.Tasks.Task[],System.Int32,System.Threading.CancellationToken)" />
+      <Member Name="WaitAny(System.Threading.Tasks.Task[])" />
+      <Member Name="WaitAny(System.Threading.Tasks.Task[],System.Int32)" />
+      <Member Name="WaitAny(System.Threading.Tasks.Task[],System.Threading.CancellationToken)" />
+      <Member Name="WaitAny(System.Threading.Tasks.Task[],System.TimeSpan)" />
+      <Member Name="WaitAny(System.Threading.Tasks.Task[],System.Int32,System.Threading.CancellationToken)" />
+      <Member Name="GetAwaiter" />
+      <Member Name="ConfigureAwait(System.Boolean)" />
+      <Member Name="Yield" />
+      <Member Name="get_AsyncState" />
+      <Member Name="get_CompletedTask" />
+      <Member Name="get_CreationOptions" />
+      <Member Name="get_CurrentId" />
+      <Member Name="get_Exception" />
+      <Member Name="get_Factory" />
+      <Member Name="get_Id" />
+      <Member Name="get_IsCanceled" />
+      <Member Name="get_IsCompleted" />
+      <Member Name="get_IsFaulted" />
+      <Member Name="get_Status" />
+      <Member Status="ImplRoot" Name="get_DebuggerDisplayMethodDescription" />
+      <!--Internal members exposed to be used by Unwrap extension method in System.Core.dll-->
+      <Member Status="ImplRoot" Name="CreateUnwrapPromise&lt;TResult&gt;(System.Threading.Tasks.Task,System.Boolean)" />
+      <Member Status="ImplRoot" Name="NotifyDebuggerOfWaitCompletion"                       />
+      <Member Status="ImplRoot" Name="SetNotificationForWaitCompletion(System.Boolean)"     />
+      <!--Internal helper members exposed to be used by VS Debugger-->
+      <Member Status="ImplRoot" Name="GetDelegateContinuationsForDebugger" />
+      <Member Status="ImplRoot" Name="GetActiveTaskFromId(System.Int32)" />
+      <Member Status="ImplRoot" Name="GetActiveTasks" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading.Tasks.SystemThreadingTasks_TaskDebugView">
+      <Member Status="ImplRoot" Name="#ctor(System.Threading.Tasks.Task)" />
+      <Member Status="ImplRoot" Name="get_AsyncState" />
+      <Member Status="ImplRoot" Name="get_CreationOptions" />
+      <Member Status="ImplRoot" Name="get_Exception" />
+      <Member Status="ImplRoot" Name="get_Id" />
+      <Member Status="ImplRoot" Name="get_Status" />
+      <Member Status="ImplRoot" Name="get_CancellationPending" />
+    </Type>
+    <Type Name="System.Threading.Tasks.Task&lt;TResult&gt;">
+      <Member Name="#ctor(System.Func&lt;TResult&gt;)" />
+      <Member Name="#ctor(System.Func&lt;TResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="#ctor(System.Func&lt;System.Object,TResult&gt;,System.Object)" />
+      <Member Name="#ctor(System.Func&lt;TResult&gt;,System.Threading.Tasks.TaskCreationOptions)" />
+      <Member Name="#ctor(System.Func&lt;System.Object,TResult&gt;,System.Object,System.Threading.CancellationToken)" />
+      <Member Name="#ctor(System.Func&lt;TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)" />
+      <Member Name="#ctor(System.Func&lt;System.Object,TResult&gt;,System.Object,System.Threading.Tasks.TaskCreationOptions)" />
+      <Member Name="#ctor(System.Func&lt;System.Object,TResult&gt;,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&lt;TResult&gt;&gt;)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&lt;TResult&gt;&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&lt;TResult&gt;&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&lt;TResult&gt;&gt;,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&lt;TResult&gt;&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&lt;TResult&gt;,System.Object&gt;,System.Object)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&lt;TResult&gt;,System.Object&gt;,System.Object,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&lt;TResult&gt;,System.Object&gt;,System.Object,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&lt;TResult&gt;,System.Object&gt;,System.Object,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith(System.Action&lt;System.Threading.Tasks.Task&lt;TResult&gt;,System.Object&gt;,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith&lt;TNewResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;,TNewResult&gt;)" />
+      <Member Name="ContinueWith&lt;TNewResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;,TNewResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWith&lt;TNewResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;,TNewResult&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWith&lt;TNewResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;,TNewResult&gt;,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith&lt;TNewResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;,TNewResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith&lt;TNewResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;,System.Object,TNewResult&gt;,System.Object)" />
+      <Member Name="ContinueWith&lt;TNewResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;,System.Object,TNewResult&gt;,System.Object,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWith&lt;TNewResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;,System.Object,TNewResult&gt;,System.Object,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWith&lt;TNewResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;,System.Object,TNewResult&gt;,System.Object,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWith&lt;TNewResult&gt;(System.Func&lt;System.Threading.Tasks.Task&lt;TResult&gt;,System.Object,TNewResult&gt;,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ConfigureAwait(System.Boolean)" />
+      <Member Name="GetAwaiter" />
+      <Member Name="get_Factory" />
+      <Member Name="get_Result" />
+      <!-- DebuggerDisplayMethodDescription ysed by the debugger display-->
+      <Member Status="ImplRoot" Name="get_DebuggerDisplayMethodDescription" />
+      <Member Status="ImplRoot" Name="get_DebuggerDisplayResultDescription" />
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading.Tasks.SystemThreadingTasks_FutureDebugView&lt;TResult&gt;">
+      <Member Status="ImplRoot" Name="#ctor(System.Threading.Tasks.Task&lt;TResult&gt;)" />
+      <Member Status="ImplRoot" Name="get_AsyncState" />
+      <Member Status="ImplRoot" Name="get_CreationOptions" />
+      <Member Status="ImplRoot" Name="get_Exception" />
+      <Member Status="ImplRoot" Name="get_Id" />
+      <Member Status="ImplRoot" Name="get_Status" />
+      <Member Status="ImplRoot" Name="get_Result" />
+      <Member Status="ImplRoot" Name="get_CancellationPending" />
+    </Type>
+    <Type Name="System.Threading.Tasks.VoidTaskResult"/>
+    <Type Name="System.Threading.Tasks.TaskCanceledException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Threading.Tasks.Task)" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+      <Member Name="get_Task" />
+    </Type>
+    <Type Name="System.Threading.Tasks.TaskCompletionSource&lt;TResult&gt;">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Object)" />
+      <Member Name="#ctor(System.Threading.Tasks.TaskCreationOptions)" />
+      <Member Name="#ctor(System.Object,System.Threading.Tasks.TaskCreationOptions)" />
+      <Member Name="SetCanceled" />
+      <Member Name="SetException(System.Exception)" />
+      <Member Name="SetException(System.Collections.Generic.IEnumerable&lt;System.Exception&gt;)" />
+      <Member Name="SetResult(TResult)" />
+      <Member Name="TrySetCanceled" />
+      <Member Name="TrySetCanceled(System.Threading.CancellationToken)" />
+      <Member Name="TrySetException(System.Exception)" />
+      <Member Name="TrySetException(System.Collections.Generic.IEnumerable&lt;System.Exception&gt;)" />
+      <Member Name="TrySetResult(TResult)" />
+      <Member Name="get_Task" />
+    </Type>
+    <Type Name="System.Threading.Tasks.TaskFactory">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Threading.CancellationToken)" />
+      <Member Name="#ctor(System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="#ctor(System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="#ctor(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAll(System.Threading.Tasks.Task[],System.Action&lt;System.Threading.Tasks.Task[]&gt;)" />
+      <Member Name="ContinueWhenAll(System.Threading.Tasks.Task[],System.Action&lt;System.Threading.Tasks.Task[]&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAll(System.Threading.Tasks.Task[],System.Action&lt;System.Threading.Tasks.Task[]&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAll(System.Threading.Tasks.Task[],System.Action&lt;System.Threading.Tasks.Task[]&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAll&lt;TResult&gt;(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task[],TResult&gt;)" />
+      <Member Name="ContinueWhenAll&lt;TResult&gt;(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task[],TResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAll&lt;TResult&gt;(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task[],TResult&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAll&lt;TResult&gt;(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task[],TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Action&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[]&gt;)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Action&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[]&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Action&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[]&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Action&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[]&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult,TResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],TResult&gt;)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult,TResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],TResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult,TResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],TResult&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult,TResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAny(System.Threading.Tasks.Task[],System.Action&lt;System.Threading.Tasks.Task&gt;)" />
+      <Member Name="ContinueWhenAny(System.Threading.Tasks.Task[],System.Action&lt;System.Threading.Tasks.Task&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAny(System.Threading.Tasks.Task[],System.Action&lt;System.Threading.Tasks.Task&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAny(System.Threading.Tasks.Task[],System.Action&lt;System.Threading.Tasks.Task&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAny&lt;TResult&gt;(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task,TResult&gt;)" />
+      <Member Name="ContinueWhenAny&lt;TResult&gt;(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task,TResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAny&lt;TResult&gt;(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task,TResult&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAny&lt;TResult&gt;(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task,TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Action&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;&gt;)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Action&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Action&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Action&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult,TResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;,TResult&gt;)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult,TResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;,TResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult,TResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;,TResult&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult,TResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;,TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="FromAsync(System.IAsyncResult,System.Action&lt;System.IAsyncResult&gt;)"/>
+      <Member Name="FromAsync(System.IAsyncResult,System.Action&lt;System.IAsyncResult&gt;,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync(System.IAsyncResult,System.Action&lt;System.IAsyncResult&gt;,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)"/>
+      <Member Name="FromAsync&lt;TResult&gt;(System.IAsyncResult,System.Func&lt;System.IAsyncResult,TResult&gt;)"/>
+      <Member Name="FromAsync&lt;TResult&gt;(System.IAsyncResult,System.Func&lt;System.IAsyncResult,TResult&gt;,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync&lt;TResult&gt;(System.IAsyncResult,System.Func&lt;System.IAsyncResult,TResult&gt;,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)"/>
+      <Member Name="FromAsync(System.Func&lt;System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Action&lt;System.IAsyncResult&gt;,System.Object)"/>
+      <Member Name="FromAsync(System.Func&lt;System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Action&lt;System.IAsyncResult&gt;,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync&lt;TResult&gt;(System.Func&lt;System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,System.Object)"/>
+      <Member Name="FromAsync&lt;TResult&gt;(System.Func&lt;System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync&lt;TArg1&gt;(System.Func&lt;TArg1,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Action&lt;System.IAsyncResult&gt;,TArg1,System.Object)"/>
+      <Member Name="FromAsync&lt;TArg1&gt;(System.Func&lt;TArg1,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Action&lt;System.IAsyncResult&gt;,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync&lt;TArg1,TResult&gt;(System.Func&lt;TArg1,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,System.Object)"/>
+      <Member Name="FromAsync&lt;TArg1,TResult&gt;(System.Func&lt;TArg1,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2&gt;(System.Func&lt;TArg1,TArg2,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Action&lt;System.IAsyncResult&gt;,TArg1,TArg2,System.Object)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2&gt;(System.Func&lt;TArg1,TArg2,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Action&lt;System.IAsyncResult&gt;,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2,TResult&gt;(System.Func&lt;TArg1,TArg2,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,TArg2,System.Object)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2,TResult&gt;(System.Func&lt;TArg1,TArg2,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2,TArg3&gt;(System.Func&lt;TArg1,TArg2,TArg3,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Action&lt;System.IAsyncResult&gt;,TArg1,TArg2,TArg3,System.Object)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2,TArg3&gt;(System.Func&lt;TArg1,TArg2,TArg3,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Action&lt;System.IAsyncResult&gt;,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2,TArg3,TResult&gt;(System.Func&lt;TArg1,TArg2,TArg3,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,TArg2,TArg3,System.Object)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2,TArg3,TResult&gt;(System.Func&lt;TArg1,TArg2,TArg3,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="StartNew(System.Action)"/>
+      <Member Name="StartNew(System.Action,System.Threading.CancellationToken)"/>
+      <Member Name="StartNew(System.Action,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="StartNew(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)"/>
+      <Member Name="StartNew(System.Action&lt;System.Object&gt;,System.Object)"/>
+      <Member Name="StartNew(System.Action&lt;System.Object&gt;,System.Object,System.Threading.CancellationToken)"/>
+      <Member Name="StartNew(System.Action&lt;System.Object&gt;,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="StartNew(System.Action&lt;System.Object&gt;,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)"/>
+      <Member Name="StartNew&lt;TResult&gt;(System.Func&lt;TResult&gt;)"/>
+      <Member Name="StartNew&lt;TResult&gt;(System.Func&lt;TResult&gt;,System.Threading.CancellationToken)"/>
+      <Member Name="StartNew&lt;TResult&gt;(System.Func&lt;TResult&gt;,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="StartNew&lt;TResult&gt;(System.Func&lt;TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)"/>
+      <Member Name="StartNew&lt;TResult&gt;(System.Func&lt;System.Object,TResult&gt;,System.Object)"/>
+      <Member Name="StartNew&lt;TResult&gt;(System.Func&lt;System.Object,TResult&gt;,System.Object,System.Threading.CancellationToken)"/>
+      <Member Name="StartNew&lt;TResult&gt;(System.Func&lt;System.Object,TResult&gt;,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="StartNew&lt;TResult&gt;(System.Func&lt;System.Object,TResult&gt;,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)"/>
+      <Member Name="get_CancellationToken" />
+      <Member Name="get_CreationOptions" />
+      <Member Name="get_ContinuationOptions" />
+      <Member Name="get_Scheduler" />
+    </Type>
+    <Type Name="System.Threading.Tasks.TaskFactory&lt;TResult&gt;">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Threading.CancellationToken)" />
+      <Member Name="#ctor(System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="#ctor(System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="#ctor(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAll(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task[],TResult&gt;)" />
+      <Member Name="ContinueWhenAll(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task[],TResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAll(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task[],TResult&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAll(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task[],TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],TResult&gt;)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],TResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],TResult&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAll&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAny(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task,TResult&gt;)" />
+      <Member Name="ContinueWhenAny(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task,TResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAny(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task,TResult&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAny(System.Threading.Tasks.Task[],System.Func&lt;System.Threading.Tasks.Task,TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;,TResult&gt;)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;,TResult&gt;,System.Threading.CancellationToken)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;,TResult&gt;,System.Threading.Tasks.TaskContinuationOptions)" />
+      <Member Name="ContinueWhenAny&lt;TAntecedentResult&gt;(System.Threading.Tasks.Task&lt;TAntecedentResult&gt;[],System.Func&lt;System.Threading.Tasks.Task&lt;TAntecedentResult&gt;,TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="FromAsync(System.IAsyncResult,System.Func&lt;System.IAsyncResult,TResult&gt;)"/>
+      <Member Name="FromAsync(System.IAsyncResult,System.Func&lt;System.IAsyncResult,TResult&gt;,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync(System.IAsyncResult,System.Func&lt;System.IAsyncResult,TResult&gt;,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)"/>
+      <Member Name="FromAsync(System.Func&lt;System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,System.Object)"/>
+      <Member Name="FromAsync(System.Func&lt;System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync&lt;TArg1&gt;(System.Func&lt;TArg1,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,System.Object)"/>
+      <Member Name="FromAsync&lt;TArg1&gt;(System.Func&lt;TArg1,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2&gt;(System.Func&lt;TArg1,TArg2,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,TArg2,System.Object)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2&gt;(System.Func&lt;TArg1,TArg2,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2,TArg3&gt;(System.Func&lt;TArg1,TArg2,TArg3,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,TArg2,TArg3,System.Object)"/>
+      <Member Name="FromAsync&lt;TArg1,TArg2,TArg3&gt;(System.Func&lt;TArg1,TArg2,TArg3,System.AsyncCallback,System.Object,System.IAsyncResult&gt;,System.Func&lt;System.IAsyncResult,TResult&gt;,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="StartNew(System.Func&lt;TResult&gt;)"/>
+      <Member Name="StartNew(System.Func&lt;TResult&gt;,System.Threading.CancellationToken)"/>
+      <Member Name="StartNew(System.Func&lt;TResult&gt;,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="StartNew(System.Func&lt;TResult&gt;,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)"/>
+      <Member Name="StartNew(System.Func&lt;System.Object,TResult&gt;,System.Object)"/>
+      <Member Name="StartNew(System.Func&lt;System.Object,TResult&gt;,System.Object,System.Threading.CancellationToken)"/>
+      <Member Name="StartNew(System.Func&lt;System.Object,TResult&gt;,System.Object,System.Threading.Tasks.TaskCreationOptions)"/>
+      <Member Name="StartNew(System.Func&lt;System.Object,TResult&gt;,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)"/>
+      <Member Name="get_CancellationToken" />
+      <Member Name="get_CreationOptions" />
+      <Member Name="get_ContinuationOptions" />
+      <Member Name="get_Scheduler" />
+    </Type>
+    <Type Name="System.Threading.Tasks.UnobservedTaskExceptionEventArgs">
+      <Member Name="#ctor(System.AggregateException)" />
+      <Member Name="SetObserved" />
+      <Member Name="get_Exception" />
+      <Member Name="get_Observed" />
+    </Type>
+    <Type Name="System.Threading.Tasks.TaskContinuationOptions">
+      <Member MemberType="Field" Name="AttachedToParent" />
+      <Member MemberType="Field" Name="ExecuteSynchronously" />
+      <Member MemberType="Field" Name="LongRunning" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="NotOnCanceled" />
+      <Member MemberType="Field" Name="NotOnFaulted" />
+      <Member MemberType="Field" Name="NotOnRanToCompletion" />
+      <Member MemberType="Field" Name="OnlyOnCanceled" />
+      <Member MemberType="Field" Name="OnlyOnFaulted" />
+      <Member MemberType="Field" Name="OnlyOnRanToCompletion" />
+      <Member MemberType="Field" Name="PreferFairness" />
+      <Member MemberType="Field" Name="DenyChildAttach" />
+      <Member MemberType="Field" Name="HideScheduler" />
+      <Member MemberType="Field" Name="LazyCancellation" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Threading.Tasks.TaskCreationOptions">
+      <Member MemberType="Field" Name="AttachedToParent" />
+      <Member MemberType="Field" Name="LongRunning" />
+      <Member MemberType="Field" Name="None" />
+      <Member MemberType="Field" Name="PreferFairness" />
+      <Member MemberType="Field" Name="DenyChildAttach" />
+      <Member MemberType="Field" Name="HideScheduler" />
+      <Member MemberType="Field" Name="RunContinuationsAsynchronously" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Threading.Tasks.TaskStatus">
+      <Member MemberType="Field" Name="Created" />
+      <Member MemberType="Field" Name="WaitingForActivation" />
+      <Member MemberType="Field" Name="WaitingToRun" />
+      <Member MemberType="Field" Name="Running" />
+      <Member MemberType="Field" Name="WaitingForChildrenToComplete" />
+      <Member MemberType="Field" Name="RanToCompletion" />
+      <Member MemberType="Field" Name="Canceled" />
+      <Member MemberType="Field" Name="Faulted" />
+      <Member MemberType="Field" Name="value__" />
+    </Type>
+    <Type Name="System.Threading.Tasks.ConcurrentExclusiveSchedulerPair">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.Threading.Tasks.TaskScheduler)" />
+      <Member Name="#ctor(System.Threading.Tasks.TaskScheduler,System.Int32)" />
+      <Member Name="#ctor(System.Threading.Tasks.TaskScheduler,System.Int32,System.Int32)" />
+      <Member Name="Complete" />
+      <Member MemberType="Property" Name="Completion" />
+      <Member MemberType="Property" Name="ConcurrentScheduler" />
+      <Member MemberType="Property" Name="ExclusiveScheduler" />
+    </Type>
+   <Type Status="ImplRoot" Name="System.Threading.Tasks.ConcurrentExclusiveSchedulerPair+DebugView">
+      <Member Status="ImplRoot" Name="#ctor(System.Threading.Tasks.ConcurrentExclusiveSchedulerPair)" />
+      <Member Status="ImplRoot" MemberType="Property" Name="Mode" />
+      <Member Status="ImplRoot" MemberType="Property" Name="ScheduledExclusive" />
+      <Member Status="ImplRoot" MemberType="Property" Name="ScheduledConcurrent" />
+      <Member Status="ImplRoot" MemberType="Property" Name="CurrentlyExecutingTaskCount" />
+      <Member Status="ImplRoot" MemberType="Property" Name="TargetScheduler" />
+    </Type>
+   <Type Status="ImplRoot" Name="System.Threading.Tasks.ConcurrentExclusiveSchedulerPair+ConcurrentExclusiveTaskScheduler+DebugView">
+      <Member Status="ImplRoot" Name="#ctor(System.Threading.Tasks.ConcurrentExclusiveSchedulerPair+ConcurrentExclusiveTaskScheduler)" />
+      <Member Status="ImplRoot" MemberType="Property" Name="MaximumConcurrencyLevel" />
+      <Member Status="ImplRoot" MemberType="Property" Name="ScheduledTasks" />
+      <Member Status="ImplRoot" MemberType="Property" Name="SchedulerPair" />
+   </Type>
+   <Type Name="System.Threading.Tasks.TplEtwProvider+Tasks">
+      <Member MemberType="Field" Name="Loop" />
+      <Member MemberType="Field" Name="Invoke" />
+      <Member MemberType="Field" Name="TaskExecute" />
+      <Member MemberType="Field" Name="TaskWait" />
+      <Member MemberType="Field" Name="ForkJoin" />
+      <Member MemberType="Field" Name="TaskScheduled" />
+      <Member MemberType="Field" Name="AwaitTaskContinuationScheduled" />
+   </Type>
+   <Type Name="System.Threading.Tasks.TplEtwProvider+Keywords">
+      <Member MemberType="Field" Name="TaskTransfer" />
+      <Member MemberType="Field" Name="Tasks" />
+      <Member MemberType="Field" Name="Parallel" />
+   </Type>
+    
+    <!-- System.Runtime.CompilerServices namespace -->
+    <Type Name="System.Runtime.CompilerServices.TaskAwaiter">
+      <Member Name="get_IsCompleted" />
+      <Member Name="OnCompleted(System.Action)" />
+      <Member Name="UnsafeOnCompleted(System.Action)" />
+      <Member Name="GetResult" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.TaskAwaiter&lt;TResult&gt;">
+      <Member Name="get_IsCompleted" />
+      <Member Name="OnCompleted(System.Action)" />
+      <Member Name="UnsafeOnCompleted(System.Action)" />
+      <Member Name="GetResult" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.ConfiguredTaskAwaitable">
+      <Member Name="GetAwaiter" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter">
+      <Member Name="get_IsCompleted" />
+      <Member Name="OnCompleted(System.Action)" />
+      <Member Name="UnsafeOnCompleted(System.Action)" />
+      <Member Name="GetResult" />
+    </Type>
+     <Type Name="System.Runtime.CompilerServices.ConfiguredTaskAwaitable&lt;TResult&gt;">
+      <Member Name="GetAwaiter" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.ConfiguredTaskAwaitable&lt;TResult&gt;+ConfiguredTaskAwaiter">
+      <Member Name="get_IsCompleted" />
+      <Member Name="OnCompleted(System.Action)" />
+      <Member Name="UnsafeOnCompleted(System.Action)" />
+      <Member Name="GetResult" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.INotifyCompletion">
+      <Member Name="OnCompleted(System.Action)" />
+    </Type>
+     <Type Name="System.Runtime.CompilerServices.ICriticalNotifyCompletion">
+      <Member Name="UnsafeOnCompleted(System.Action)" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.YieldAwaitable">
+      <Member Name="GetAwaiter" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.YieldAwaitable+YieldAwaiter">
+      <Member Name="get_IsCompleted" />
+      <Member Name="OnCompleted(System.Action)" />
+      <Member Name="UnsafeOnCompleted(System.Action)" />
+      <Member Name="GetResult" />
+    </Type>
+     <Type Name="System.Runtime.CompilerServices.IAsyncStateMachine">
+      <Member Name="MoveNext" />
+      <Member Name="SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.AsyncVoidMethodBuilder">
+      <Member Name="Create" />
+      <Member Name="Start&lt;TStateMachine&gt;(TStateMachine@)" />
+      <Member Name="SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" />
+      <Member Name="AwaitOnCompleted&lt;TAwaiter,TStateMachine&gt;(TAwaiter@,TStateMachine@)" />
+      <Member Name="AwaitUnsafeOnCompleted&lt;TAwaiter,TStateMachine&gt;(TAwaiter@,TStateMachine@)" />
+      <Member Name="SetResult" />
+      <Member Name="SetException(System.Exception)" />
+      <!-- These are required by the debugger team.  Adding to the model file to prevent inadvertant thinning -->
+      <Member Status="ImplRoot" MemberType="Property" Name="ObjectIdForDebugger"   />
+      <Member Status="ImplRoot" Name="get_ObjectIdForDebugger"                     />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.AsyncTaskMethodBuilder">
+      <Member Name="Create" />
+      <Member Name="Start&lt;TStateMachine&gt;(TStateMachine@)" />
+      <Member Name="SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" />
+      <Member Name="AwaitOnCompleted&lt;TAwaiter,TStateMachine&gt;(TAwaiter@,TStateMachine@)" />
+      <Member Name="AwaitUnsafeOnCompleted&lt;TAwaiter,TStateMachine&gt;(TAwaiter@,TStateMachine@)" />
+      <Member Name="SetResult" />
+      <Member Name="SetException(System.Exception)" />
+      <Member Name="get_Task" />
+      <!-- These are required by the debugger team.  Adding to the model file to prevent inadvertant thinning -->
+      <Member Status="ImplRoot" MemberType="Property" Name="ObjectIdForDebugger" />
+      <Member Status="ImplRoot" Name="get_ObjectIdForDebugger" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_builder" />
+    </Type>
+    <Type Name="System.Runtime.CompilerServices.AsyncTaskMethodBuilder&lt;TResult&gt;" >
+      <Member Name="Create" />
+      <Member Name="Start&lt;TStateMachine&gt;(TStateMachine@)" />
+      <Member Name="SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" />
+      <Member Name="AwaitOnCompleted&lt;TAwaiter,TStateMachine&gt;(TAwaiter@,TStateMachine@)" />
+      <Member Name="AwaitUnsafeOnCompleted&lt;TAwaiter,TStateMachine&gt;(TAwaiter@,TStateMachine@)" />
+      <Member Name="SetResult(TResult)" />
+      <Member Name="SetException(System.Exception)" />
+      <Member Name="get_Task" />
+      <!-- These are required by the debugger team.  Adding to the model file to prevent inadvertant thinning -->
+      <Member Status="ImplRoot" MemberType="Property" Name="ObjectIdForDebugger" />
+      <Member Status="ImplRoot" Name="get_ObjectIdForDebugger" />
+      <Member Status="ImplRoot" MemberType="Field" Name="m_task" />
+    </Type>
+    
+    <!-- System namespace -->
+    <Type Name="System.AggregateException">
+      <Member Name="#ctor"/>
+      <Member Name="#ctor(System.Collections.Generic.IEnumerable&lt;System.Exception&gt;)"/>
+      <Member Name="#ctor(System.Exception[])"/>
+      <Member Name="#ctor(System.String)"/>
+      <Member Name="#ctor(System.String,System.Collections.Generic.IEnumerable&lt;System.Exception&gt;)"/>
+      <Member Name="#ctor(System.String,System.Exception[])"/>
+      <Member Name="#ctor(System.String,System.Collections.Generic.IList&lt;System.Exception&gt;)"/>
+      <Member Name="#ctor(System.String,System.Exception)"/>
+      <Member Name="get_InnerExceptions" />
+      <Member Name="Handle(System.Func&lt;System.Exception,System.Boolean&gt;)"/>
+      <Member Name="Flatten"/>
+      <Member Name="GetBaseException"/>
+      <Member Name="ToString"/>
+    </Type>
+    <!-- System.Threading namespace -->
+    <Type Name="System.Threading.AsyncLocal&lt;T&gt;">
+      <Member Name="#ctor"/>
+      <Member Name="#ctor(System.Action&lt;System.Threading.AsyncLocalValueChangedArgs&lt;T&gt;&gt;)"/>
+      <Member Name="get_Value"/>
+      <Member Name="set_Value(T)"/>      
+    </Type>
+    <Type Name="System.Threading.AsyncLocalValueChangedArgs&lt;T&gt;">
+      <Member Name="get_PreviousValue"/>
+      <Member Name="get_CurrentValue"/>
+      <Member Name="get_ThreadContextChanged"/>
+    </Type>
+    <Type Name="System.Threading.ExecutionContext">
+      <Member Name="Capture" />
+      <Member Name="Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object)"/>
+    </Type>
+    <Type Name="System.Threading.CancellationToken">
+      <Member Name="#ctor(System.Boolean)"/>
+      <Member Name="get_None" />
+      <Member Name="get_IsCancellationRequested" />
+      <Member Name="get_CanBeCanceled" />
+      <Member Name="get_WaitHandle" />
+      <Member Name="Register(System.Action)" />
+      <Member Name="Register(System.Action,System.Boolean)" />
+      <Member Name="Register(System.Action&lt;System.Object&gt;,System.Object)" />
+      <Member Name="Register(System.Action&lt;System.Object&gt;,System.Object,System.Boolean)" />
+      <Member Name="Equals(System.Threading.CancellationToken)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Threading.CancellationToken,System.Threading.CancellationToken)" />
+      <Member Name="op_Inequality(System.Threading.CancellationToken,System.Threading.CancellationToken)" />
+      <Member Name="ThrowIfCancellationRequested" />
+    </Type>
+    <Type Name="System.Threading.CancellationTokenSource">
+      <Member Name="#ctor"/>
+      <Member Name="#ctor(System.TimeSpan)" />
+      <Member Name="#ctor(System.Int32)" />
+      <Member Name="Cancel"/>
+      <Member Name="Cancel(System.Boolean)"/>
+      <Member Name="CancelAfter(System.TimeSpan)" />
+      <Member Name="CancelAfter(System.Int32)" />
+      <Member Name="CreateLinkedTokenSource(System.Threading.CancellationToken,System.Threading.CancellationToken)"/>
+      <Member Name="CreateLinkedTokenSource(System.Threading.CancellationToken[])"/>
+      <Member Name="Dispose"/>
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="get_Token"/>
+      <Member Name="get_IsCancellationRequested"/>
+      <Member Status="ImplRoot" Name="get_CallbackCount" Condition="DEBUG"/>
+    </Type>
+    <Type Name="System.Threading.CancellationTokenRegistration">
+      <Member Name="Dispose"/>
+      <Member Name="Equals(System.Threading.CancellationTokenRegistration)" />
+      <Member Name="Equals(System.Object)" />
+      <Member Name="GetHashCode" />
+      <Member Name="op_Equality(System.Threading.CancellationTokenRegistration,System.Threading.CancellationTokenRegistration)" />
+      <Member Name="op_Inequality(System.Threading.CancellationTokenRegistration,System.Threading.CancellationTokenRegistration)" />
+    </Type>
+    <Type Name="System.Threading.SpinWait">
+      <Member Name="SpinOnce"/>
+      <Member Name="Reset" />
+      <Member Name="get_Count" />
+      <Member Name="get_NextSpinWillYield" />
+      <Member Name="SpinUntil(System.Func&lt;System.Boolean&gt;)" />
+      <Member Name="SpinUntil(System.Func&lt;System.Boolean&gt;,System.TimeSpan)" />
+      <Member Name="SpinUntil(System.Func&lt;System.Boolean&gt;,System.Int32)" />
+    </Type>
+    <Type Name="System.Threading.SpinLock">
+      <Member Name="#ctor(System.Boolean)"/>
+      <Member Name="Enter(System.Boolean@)" />
+      <Member Name="TryEnter(System.Boolean@)" />
+      <Member Name="TryEnter(System.TimeSpan,System.Boolean@)" />
+      <Member Name="TryEnter(System.Int32,System.Boolean@)" />
+      <Member Name="Exit" />
+      <Member Name="Exit(System.Boolean)" />
+      <Member Name="get_IsHeld"/>
+      <Member Name="get_IsHeldByCurrentThread"/>
+      <Member Name="get_IsThreadOwnerTrackingEnabled"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading.SpinLock+SystemThreading_SpinLockDebugView">
+      <Member Status="ImplRoot" Name="#ctor(System.Threading.SpinLock)"/>
+      <Member Status="ImplRoot" Name="get_IsHeld"/>
+      <Member Status="ImplRoot" Name="get_IsHeldByCurrentThread"/>
+      <Member Status="ImplRoot" Name="get_OwnerThreadID"/>
+    </Type>
+    <Type Name="System.Threading.ManualResetEventSlim">
+      <Member Name="#ctor"/>
+      <Member Name="#ctor(System.Boolean)"/>
+      <Member Name="#ctor(System.Boolean,System.Int32)"/>
+      <Member Name="Dispose"/>
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Set" />
+      <Member Name="Reset" />
+      <Member Name="Wait" />
+      <Member Name="Wait(System.TimeSpan)" />
+      <Member Name="Wait(System.Int32)" />
+      <Member Name="Wait(System.Threading.CancellationToken)" />
+      <Member Name="Wait(System.TimeSpan,System.Threading.CancellationToken)" />
+      <Member Name="Wait(System.Int32,System.Threading.CancellationToken)" />
+      <Member Name="get_IsSet"/>
+      <Member Name="get_SpinCount"/>
+      <Member Name="get_WaitHandle"/>
+    </Type>
+    <Type Name="System.Threading.CountdownEvent">
+      <Member Name="#ctor(System.Int32)"/>
+      <Member Name="AddCount"/>
+      <Member Name="AddCount(System.Int32)"/>
+      <Member Name="Dispose"/>
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Reset" />
+      <Member Name="Reset(System.Int32)" />
+      <Member Name="Signal" />
+      <Member Name="Signal(System.Int32)" />
+      <Member Name="TryAddCount"/>
+      <Member Name="TryAddCount(System.Int32)"/>
+      <Member Name="Wait" />
+      <Member Name="Wait(System.TimeSpan)" />
+      <Member Name="Wait(System.Int32)" />
+      <Member Name="Wait(System.Threading.CancellationToken)" />
+      <Member Name="Wait(System.TimeSpan,System.Threading.CancellationToken)" />
+      <Member Name="Wait(System.Int32,System.Threading.CancellationToken)" />
+      <Member Name="get_CurrentCount"/>
+      <Member Name="get_InitialCount"/>
+      <Member Name="get_IsSet"/>
+      <Member Name="get_WaitHandle"/>
+    </Type>
+    <Type Name="System.Threading.Semaphore">
+      <Member Name="#ctor(System.Int32,System.Int32)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.String)" />
+      <Member Name="#ctor(System.Int32,System.Int32,System.String,System.Boolean@)" />
+      <Member Name="OpenExisting(System.String)" />
+      <Member Name="Release" />
+      <Member Name="Release(System.Int32)" />
+      <Member Name="TryOpenExisting(System.String,System.Threading.Semaphore@)" />
+    </Type>
+    <Type Name="System.Threading.SemaphoreSlim">
+      <Member Name="#ctor(System.Int32)"/>
+      <Member Name="#ctor(System.Int32,System.Int32)"/>
+      <Member Name="Dispose"/>
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="Release" />
+      <Member Name="Release(System.Int32)" />
+      <Member Name="Wait" />
+      <Member Name="Wait(System.TimeSpan)" />
+      <Member Name="Wait(System.Int32)" />
+      <Member Name="Wait(System.Threading.CancellationToken)" />
+      <Member Name="Wait(System.TimeSpan,System.Threading.CancellationToken)" />
+      <Member Name="Wait(System.Int32,System.Threading.CancellationToken)" />
+      <!--WaitAsync only supported in CoreSys bcause CoreCLR build is still using V4.0 tools -->
+      <Member Name="WaitAsync" />
+      <Member Name="WaitAsync(System.TimeSpan)" />
+      <Member Name="WaitAsync(System.Int32)" />
+      <Member Name="WaitAsync(System.Threading.CancellationToken)" />
+      <Member Name="WaitAsync(System.TimeSpan,System.Threading.CancellationToken)" />
+      <Member Name="WaitAsync(System.Int32,System.Threading.CancellationToken)" />
+      <Member Name="get_CurrentCount"/>
+      <Member Name="get_AvailableWaitHandle"/>
+    </Type>
+    <Type Name="System.Threading.SemaphoreFullException">
+      <Member Name="#ctor" />
+      <Member Name="#ctor(System.String)" />
+      <Member Name="#ctor(System.String,System.Exception)" />
+    </Type>
+    <Type Name="System.Threading.ThreadLocal&lt;T&gt;">
+      <Member Name="#ctor"/>
+      <Member Name="#ctor(System.Boolean)"/>
+      <Member Name="#ctor(System.Func&lt;T&gt;)"/>
+      <Member Name="#ctor(System.Func&lt;T&gt;,System.Boolean)"/>
+      <Member Name="Dispose"/>
+      <Member Name="Dispose(System.Boolean)" />
+      <Member Name="ToString" />
+      <Member MemberType="Property" Name="Value" />
+      <Member Name="get_Values"/>
+      <Member Name="get_IsValueCreated"/>
+    </Type>
+    <Type Status="ImplRoot" Name="System.Threading.SystemThreading_ThreadLocalDebugView&lt;T&gt;">
+      <Member Name="#ctor(System.Threading.ThreadLocal&lt;T&gt;)"/>
+      <Member Status="ImplRoot" Name="get_Value"/>
+      <Member Status="ImplRoot" Name="get_IsValueCreated"/>
+      <Member Status="ImplRoot" Name="get_Values"/>
+    </Type>
+    <Type Name="System.Threading.LazyInitializer">
+      <Member Name="EnsureInitialized&lt;T&gt;(T@)"/>
+      <Member Name="EnsureInitialized&lt;T&gt;(T@,System.Func&lt;T&gt;)"/>
+      <Member Name="EnsureInitialized&lt;T&gt;(T@,System.Boolean@,System.Object@)"/>
+      <Member Name="EnsureInitialized&lt;T&gt;(T@,System.Boolean@,System.Object@,System.Func&lt;T&gt;)"/>
+    </Type>
+    <Type Status="ImplRoot" Name="Windows.Foundation.Diagnostics.ITracingStatusChangedEventArgs" Condition="FEATURE_COMINTEROP">
+      <Member Name="get_Enabled" />
+      <Member Name="get_TraceLevel" />
+    </Type>
+    <!--End of PFX types -->
+    <Type Name="System.Console">
+      <Member Name="Write(System.String)" />
+      <Member Name="WriteLine(System.String)" />
+      <Member Name="WriteLine" />
+    </Type>
+  </Assembly>
+</ThinModel>
index d20c3c4..ef2774a 100644 (file)
       <Member Name="LoadFromStream(System.IO.Stream)" />
       <Member Name="LoadFromStream(System.IO.Stream,System.IO.Stream)" />
       <Member Name="Resolve(System.IntPtr,System.Reflection.AssemblyName)" />
+      <Member Name="ResolveUsingResolvingEvent(System.IntPtr,System.Reflection.AssemblyName)" />
       <Member Name="ResolveUnmanagedDll(System.String,System.IntPtr)" />
       <Member Name="LoadUnmanagedDll(System.String)" />
       <Member Name="LoadUnmanagedDllFromPath(System.String)" />
       <Member Name="PrelinkAll(System.Type)" />
       <Member Name="PtrToStringAnsi(System.IntPtr)" />
       <Member Name="PtrToStringAnsi(System.IntPtr,System.Int32)" />
+      <Member Name="PtrToStringUTF8(System.IntPtr)" />
+      <Member Name="PtrToStringUTF8(System.IntPtr,System.Int32)" />
       <Member Name="PtrToStringUni(System.IntPtr)" />
       <Member Name="PtrToStringUni(System.IntPtr,System.Int32)" />
       <Member Name="PtrToStructure(System.IntPtr,System.Object)" />
       <Member Name="StringToCoTaskMemUni(System.String)" />
       <Member Name="StringToHGlobalAnsi(System.String)" />
       <Member Name="StringToHGlobalUni(System.String)" />
+      <Member Name="StringToCoTaskMemUTF8(System.String)" />
       <Member Name="StructureToPtr&lt;T&gt;(T,System.IntPtr,System.Boolean)" />
       <Member Name="UnsafeAddrOfPinnedArrayElement&lt;T&gt;(T[],System.Int32)" />
       <Member Name="WriteByte(System.Object,System.Int32,System.Byte)" />
       <Member Name="ZeroFreeCoTaskMemAnsi(System.IntPtr)" />
       <Member Name="ZeroFreeGlobalAllocAnsi(System.IntPtr)" />
       <Member Name="ZeroFreeGlobalAllocUnicode(System.IntPtr)" />
+      <Member Name="ZeroFreeMemoryUTF8(System.IntPtr)" />
     </Type>
     <Type Name="System.Runtime.InteropServices.MarshalAsAttribute">
       <Member MemberType="Field" Name="ArraySubType" />
       <Member MemberType="Field" Name="LPStruct" />
       <Member MemberType="Field" Name="LPTStr" />
       <Member MemberType="Field" Name="LPWStr" />
+      <Member MemberType="Field" Name="LPUTF8Str" />
       <Member MemberType="Field" Name="R4" />
       <Member MemberType="Field" Name="R8" />
       <Member MemberType="Field" Name="SafeArray" />
       <Member Name="ConvertToManaged(System.IntPtr)" />
       <Member Name="ClearNative(System.IntPtr)" />
     </Type>
+     <Type Status="ImplRoot" Name="System.StubHelpers.UTF8Marshaler">
+      <Member Name="ConvertToNative(System.Int32,System.String,System.IntPtr)" />
+      <Member Name="ConvertToManaged(System.IntPtr)" />
+      <Member Name="ClearNative(System.IntPtr)" />
+    </Type>    
+      <Type Status="ImplRoot" Name="System.StubHelpers.UTF8BufferMarshaler">
+      <Member Name="ConvertToNative(System.Text.StringBuilder,System.IntPtr,System.Int32)" />
+      <Member Name="ConvertToManaged(System.Text.StringBuilder,System.IntPtr)" />      
+    </Type>    
     <Type Status="ApiFxInternal" Name="System.StubHelpers.EventArgsMarshaler" Condition="FEATURE_COMINTEROP">
       <Member Name="CreateNativeNCCEventArgsInstance(System.Int32,System.Object,System.Object,System.Int32,System.Int32)"/>
       <Member Name="CreateNativePCEventArgsInstance(System.String)" />
index 7fef3f5..2a073c1 100644 (file)
     <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\SEHException.cs" />
     <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\SafeBuffer.cs" />
     <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\SafeHandle.cs" />
+    <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\SafeHeapHandle.cs" />
     <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\BStrWrapper.cs" />
     <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\CurrencyWrapper.cs" />
     <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\ErrorWrapper.cs" />
     <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\InvalidComObjectException.cs" />
     <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\SafeArrayRankMismatchException.cs" />
     <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\SafeArrayTypeMismatchException.cs" />
+    <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\NativeBuffer.cs" />
+    <InteropSources Include="$(BclSourcesRoot)\System\Runtime\InteropServices\StringBuffer.cs" />
     <InteropSources Condition="'$(FeatureCoreClr)'=='true'"  Include="$(BclSourcesRoot)\System\Runtime\InteropServices\NativeCallableAttribute.cs" />
     <InteropSources Condition="'$(FeatureCominterop)' != 'true'" Include="$(BclSourcesRoot)\System\Runtime\InteropServices\NonPortable.cs" />
     <InteropSources Condition="'$(FeatureCominterop)' == 'true'" Include="$(BclSourcesRoot)\System\Runtime\InteropServices\DispatchWrapper.cs" />
     <IoSources Include="$(BclSourcesRoot)\System\IO\MemoryStream.cs" />
     <IoSources Include="$(BclSourcesRoot)\System\IO\Path.cs" />
     <IoSources Include="$(BclSourcesRoot)\System\IO\PathHelper.cs" />
+    <IoSources Include="$(BclSourcesRoot)\System\IO\LongPathHelper.cs" />
+    <IoSources Include="$(BclSourcesRoot)\System\IO\PathInternal.cs" />
     <IoSources Include="$(BclSourcesRoot)\System\IO\PathTooLongException.cs" />
     <IoSources Include="$(BclSourcesRoot)\System\IO\PinnedBufferMemoryStream.cs" />
     <IoSources Include="$(BclSourcesRoot)\System\IO\ReadLinesIterator.cs" />
diff --git a/src/mscorlib/ref/mscorlib.cs b/src/mscorlib/ref/mscorlib.cs
new file mode 100644 (file)
index 0000000..2dbb4f9
--- /dev/null
@@ -0,0 +1,12948 @@
+namespace Microsoft.Win32.SafeHandles
+{
+    [System.Security.SecurityCriticalAttribute]
+    public abstract partial class SafeHandleZeroOrMinusOneIsInvalid : System.Runtime.InteropServices.SafeHandle
+    {
+        internal SafeHandleZeroOrMinusOneIsInvalid() { }
+        public override bool IsInvalid { [System.Security.SecurityCriticalAttribute]get { return default(bool); } }
+    }
+    [System.Security.SecurityCriticalAttribute]
+    public sealed partial class SafeWaitHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        
+        public SafeWaitHandle(System.IntPtr existingHandle, bool ownsHandle) { }
+        [System.Security.SecurityCriticalAttribute]
+        protected override bool ReleaseHandle() { return default(bool); }
+    }
+}
+namespace System
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class AccessViolationException : System.SystemException
+    {
+        public AccessViolationException() { }
+        public AccessViolationException(string message) { }
+        public AccessViolationException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=2.0.5.0, Culture=Neutral, PublicKeyToken=7cec85d7bea7798e")]
+    public delegate void Action();
+    public delegate void Action<in T>(T obj);
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=2.0.5.0, Culture=Neutral, PublicKeyToken=7cec85d7bea7798e")]
+    public delegate void Action<in T1, in T2>(T1 arg1, T2 arg2);
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=2.0.5.0, Culture=Neutral, PublicKeyToken=7cec85d7bea7798e")]
+    public delegate void Action<in T1, in T2, in T3>(T1 arg1, T2 arg2, T3 arg3);
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=2.0.5.0, Culture=Neutral, PublicKeyToken=7cec85d7bea7798e")]
+    public delegate void Action<in T1, in T2, in T3, in T4>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);
+    public delegate void Action<in T1, in T2, in T3, in T4, in T5>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
+    public delegate void Action<in T1, in T2, in T3, in T4, in T5, in T6>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
+    public delegate void Action<in T1, in T2, in T3, in T4, in T5, in T6, in T7>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7);
+    public delegate void Action<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8);
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class Activator
+    {
+        internal Activator() { }
+        public static object CreateInstance(System.Type type) { return default(object); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static object CreateInstance(System.Type type, bool nonPublic) { return default(object); }
+        public static object CreateInstance(System.Type type, params object[] args) { return default(object); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static T CreateInstance<T>() { return default(T); }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Count = {InnerExceptionCount}")]
+    public partial class AggregateException : System.Exception
+    {
+        public AggregateException() { }
+        public AggregateException(System.Collections.Generic.IEnumerable<System.Exception> innerExceptions) { }
+        public AggregateException(params System.Exception[] innerExceptions) { }
+        public AggregateException(string message) { }
+        public AggregateException(string message, System.Collections.Generic.IEnumerable<System.Exception> innerExceptions) { }
+        public AggregateException(string message, System.Exception innerException) { }
+        public AggregateException(string message, params System.Exception[] innerExceptions) { }
+        public System.Collections.ObjectModel.ReadOnlyCollection<System.Exception> InnerExceptions { get { return default(System.Collections.ObjectModel.ReadOnlyCollection<System.Exception>); } }
+        public override string Message { get { return default(string); } }
+        public System.AggregateException Flatten() { return default(System.AggregateException); }
+        public override System.Exception GetBaseException() { return default(System.Exception); }
+        public void Handle(System.Func<System.Exception, bool> predicate) { }
+        public override string ToString() { return default(string); }
+    }
+    public static partial class AppContext
+    {
+        public static string BaseDirectory { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public static string TargetFrameworkName { get { return default(string); } }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static object GetData(string name) { return default(object); }
+        public static void SetSwitch(string switchName, bool isEnabled) { }
+        public static bool TryGetSwitch(string switchName, out bool isEnabled) { isEnabled = default(bool); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AppDomain
+    {
+        internal AppDomain() { }
+        public string BaseDirectory { [System.Security.SecurityCriticalAttribute]get { return default(string); } }
+        public static System.AppDomain CurrentDomain { get { return default(System.AppDomain); } }
+        public bool IsFullyTrusted { [System.Security.SecuritySafeCriticalAttribute]get { return default(bool); } }
+        [System.Security.SecurityCriticalAttribute]
+        public object GetData(string name) { return default(object); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Security.SecurityCriticalAttribute]
+    public partial class AppDomainManager
+    {
+        public AppDomainManager() { }
+        public virtual bool CheckSecuritySettings(System.Security.SecurityState state) { return default(bool); }
+        [System.Security.SecurityCriticalAttribute]
+        public virtual void InitializeNewDomain(System.AppDomainSetup appDomainInfo) { }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AppDomainSetup
+    {
+        internal AppDomainSetup() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class AppDomainUnloadedException : System.SystemException
+    {
+        public AppDomainUnloadedException() { }
+        public AppDomainUnloadedException(string message) { }
+        public AppDomainUnloadedException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ApplicationException : System.Exception
+    {
+        public ApplicationException() { }
+        public ApplicationException(string message) { }
+        public ApplicationException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct ArgIterator
+    {
+        public override bool Equals(object o) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ArgumentException : System.SystemException
+    {
+        public ArgumentException() { }
+        public ArgumentException(string message) { }
+        public ArgumentException(string message, System.Exception innerException) { }
+        public ArgumentException(string message, string paramName) { }
+        public ArgumentException(string message, string paramName, System.Exception innerException) { }
+        public override string Message { get { return default(string); } }
+        public virtual string ParamName { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ArgumentNullException : System.ArgumentException
+    {
+        public ArgumentNullException() { }
+        public ArgumentNullException(string paramName) { }
+        public ArgumentNullException(string message, System.Exception innerException) { }
+        public ArgumentNullException(string paramName, string message) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ArgumentOutOfRangeException : System.ArgumentException
+    {
+        public ArgumentOutOfRangeException() { }
+        public ArgumentOutOfRangeException(string paramName) { }
+        public ArgumentOutOfRangeException(string message, System.Exception innerException) { }
+        public ArgumentOutOfRangeException(string paramName, object actualValue, string message) { }
+        public ArgumentOutOfRangeException(string paramName, string message) { }
+        public virtual object ActualValue { get { return default(object); } }
+        public override string Message { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ArithmeticException : System.SystemException
+    {
+        public ArithmeticException() { }
+        public ArithmeticException(string message) { }
+        public ArithmeticException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Array : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
+    {
+        internal Array() { }
+        public bool IsFixedSize { get { return default(bool); } }
+        public bool IsReadOnly { get { return default(bool); } }
+        public bool IsSynchronized { get { return default(bool); } }
+        public int Length { [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(int); } }
+        public int Rank { [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(int); } }
+        public object SyncRoot { get { return default(object); } }
+        int System.Collections.ICollection.Count { get { return default(int); } }
+        object System.Collections.IList.this[int index] { get { return default(object); } set { } }
+        public static System.Collections.ObjectModel.ReadOnlyCollection<T> AsReadOnly<T>(T[] array) { return default(System.Collections.ObjectModel.ReadOnlyCollection<T>); }
+        
+        public static int BinarySearch(System.Array array, int index, int length, object value) { return default(int); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int BinarySearch(System.Array array, int index, int length, object value, System.Collections.IComparer comparer) { return default(int); }
+        
+        public static int BinarySearch(System.Array array, object value) { return default(int); }
+        
+        public static int BinarySearch(System.Array array, object value, System.Collections.IComparer comparer) { return default(int); }
+        
+        public static int BinarySearch<T>(T[] array, T value) { return default(int); }
+        
+        public static int BinarySearch<T>(T[] array, T value, System.Collections.Generic.IComparer<T> comparer) { return default(int); }
+        
+        public static int BinarySearch<T>(T[] array, int index, int length, T value) { return default(int); }
+        
+        public static int BinarySearch<T>(T[] array, int index, int length, T value, System.Collections.Generic.IComparer<T> comparer) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Clear(System.Array array, int index, int length) { }
+        public object Clone() { return default(object); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void ConstrainedCopy(System.Array sourceArray, int sourceIndex, System.Array destinationArray, int destinationIndex, int length) { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Copy(System.Array sourceArray, System.Array destinationArray, int length) { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Copy(System.Array sourceArray, int sourceIndex, System.Array destinationArray, int destinationIndex, int length) { }
+        public void CopyTo(System.Array array, int index) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Array CreateInstance(System.Type elementType, int length) { return default(System.Array); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Array CreateInstance(System.Type elementType, params int[] lengths) { return default(System.Array); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Array CreateInstance(System.Type elementType, int[] lengths, int[] lowerBounds) { return default(System.Array); }
+        
+        public static T[] Empty<T>() { return default(T[]); }
+        public static bool Exists<T>(T[] array, System.Predicate<T> match) { return default(bool); }
+        public static T Find<T>(T[] array, System.Predicate<T> match) { return default(T); }
+        public static T[] FindAll<T>(T[] array, System.Predicate<T> match) { return default(T[]); }
+        public static int FindIndex<T>(T[] array, int startIndex, int count, System.Predicate<T> match) { return default(int); }
+        public static int FindIndex<T>(T[] array, int startIndex, System.Predicate<T> match) { return default(int); }
+        public static int FindIndex<T>(T[] array, System.Predicate<T> match) { return default(int); }
+        public static T FindLast<T>(T[] array, System.Predicate<T> match) { return default(T); }
+        public static int FindLastIndex<T>(T[] array, int startIndex, int count, System.Predicate<T> match) { return default(int); }
+        public static int FindLastIndex<T>(T[] array, int startIndex, System.Predicate<T> match) { return default(int); }
+        public static int FindLastIndex<T>(T[] array, System.Predicate<T> match) { return default(int); }
+        public static void ForEach<T>(T[] array, System.Action<T> action) { }
+        public System.Collections.IEnumerator GetEnumerator() { return default(System.Collections.IEnumerator); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public int GetLength(int dimension) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public int GetLowerBound(int dimension) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public int GetUpperBound(int dimension) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public object GetValue(int index) { return default(object); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public object GetValue(params int[] indices) { return default(object); }
+        
+        public static int IndexOf(System.Array array, object value) { return default(int); }
+        
+        public static int IndexOf(System.Array array, object value, int startIndex) { return default(int); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int IndexOf(System.Array array, object value, int startIndex, int count) { return default(int); }
+        public static int IndexOf<T>(T[] array, T value) { return default(int); }
+        public static int IndexOf<T>(T[] array, T value, int startIndex) { return default(int); }
+        public static int IndexOf<T>(T[] array, T value, int startIndex, int count) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public void Initialize() { }
+        
+        public static int LastIndexOf(System.Array array, object value) { return default(int); }
+        
+        public static int LastIndexOf(System.Array array, object value, int startIndex) { return default(int); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int LastIndexOf(System.Array array, object value, int startIndex, int count) { return default(int); }
+        public static int LastIndexOf<T>(T[] array, T value) { return default(int); }
+        public static int LastIndexOf<T>(T[] array, T value, int startIndex) { return default(int); }
+        public static int LastIndexOf<T>(T[] array, T value, int startIndex, int count) { return default(int); }
+        
+        public static void Resize<T>(ref T[] array, int newSize) { }
+        
+        public static void Reverse(System.Array array) { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Reverse(System.Array array, int index, int length) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetValue(object value, int index) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetValue(object value, params int[] indices) { }
+        
+        public static void Sort(System.Array array) { }
+        
+        public static void Sort(System.Array keys, System.Array items) { }
+        
+        public static void Sort(System.Array keys, System.Array items, System.Collections.IComparer comparer) { }
+        
+        public static void Sort(System.Array keys, System.Array items, int index, int length) { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Sort(System.Array keys, System.Array items, int index, int length, System.Collections.IComparer comparer) { }
+        
+        public static void Sort(System.Array array, System.Collections.IComparer comparer) { }
+        
+        public static void Sort(System.Array array, int index, int length) { }
+        
+        public static void Sort(System.Array array, int index, int length, System.Collections.IComparer comparer) { }
+        
+        public static void Sort<T>(T[] array) { }
+        
+        public static void Sort<T>(T[] array, System.Collections.Generic.IComparer<T> comparer) { }
+        public static void Sort<T>(T[] array, System.Comparison<T> comparison) { }
+        
+        public static void Sort<T>(T[] array, int index, int length) { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Sort<T>(T[] array, int index, int length, System.Collections.Generic.IComparer<T> comparer) { }
+        
+        public static void Sort<TKey, TValue>(TKey[] keys, TValue[] items) { }
+        
+        public static void Sort<TKey, TValue>(TKey[] keys, TValue[] items, System.Collections.Generic.IComparer<TKey> comparer) { }
+        
+        public static void Sort<TKey, TValue>(TKey[] keys, TValue[] items, int index, int length) { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Sort<TKey, TValue>(TKey[] keys, TValue[] items, int index, int length, System.Collections.Generic.IComparer<TKey> comparer) { }
+        int System.Collections.IList.Add(object value) { return default(int); }
+        void System.Collections.IList.Clear() { }
+        bool System.Collections.IList.Contains(object value) { return default(bool); }
+        int System.Collections.IList.IndexOf(object value) { return default(int); }
+        void System.Collections.IList.Insert(int index, object value) { }
+        void System.Collections.IList.Remove(object value) { }
+        void System.Collections.IList.RemoveAt(int index) { }
+        int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) { return default(int); }
+        bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) { return default(bool); }
+        int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) { return default(int); }
+        public static bool TrueForAll<T>(T[] array, System.Predicate<T> match) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct ArraySegment<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IList<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.IReadOnlyList<T>, System.Collections.IEnumerable
+    {
+        public ArraySegment(T[] array) { throw new System.NotImplementedException(); }
+        public ArraySegment(T[] array, int offset, int count) { throw new System.NotImplementedException(); }
+        public T[] Array { get { return default(T[]); } }
+        public int Count { get { return default(int); } }
+        public int Offset { get { return default(int); } }
+        bool System.Collections.Generic.ICollection<T>.IsReadOnly { get { return default(bool); } }
+        T System.Collections.Generic.IList<T>.this[int index] { get { return default(T); } set { } }
+        T System.Collections.Generic.IReadOnlyList<T>.this[int index] { get { return default(T); } }
+        public bool Equals(System.ArraySegment<T> obj) { return default(bool); }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.ArraySegment<T> a, System.ArraySegment<T> b) { return default(bool); }
+        public static bool operator !=(System.ArraySegment<T> a, System.ArraySegment<T> b) { return default(bool); }
+        void System.Collections.Generic.ICollection<T>.Add(T item) { }
+        void System.Collections.Generic.ICollection<T>.Clear() { }
+        bool System.Collections.Generic.ICollection<T>.Contains(T item) { return default(bool); }
+        void System.Collections.Generic.ICollection<T>.CopyTo(T[] array, int arrayIndex) { }
+        bool System.Collections.Generic.ICollection<T>.Remove(T item) { return default(bool); }
+        System.Collections.Generic.IEnumerator<T> System.Collections.Generic.IEnumerable<T>.GetEnumerator() { return default(System.Collections.Generic.IEnumerator<T>); }
+        int System.Collections.Generic.IList<T>.IndexOf(T item) { return default(int); }
+        void System.Collections.Generic.IList<T>.Insert(int index, T item) { }
+        void System.Collections.Generic.IList<T>.RemoveAt(int index) { }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ArrayTypeMismatchException : System.SystemException
+    {
+        public ArrayTypeMismatchException() { }
+        public ArrayTypeMismatchException(string message) { }
+        public ArrayTypeMismatchException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public delegate void AsyncCallback(System.IAsyncResult ar);
+    [System.AttributeUsageAttribute((System.AttributeTargets)(32767), Inherited=true, AllowMultiple=false)]
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Attribute
+    {
+        protected Attribute() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override bool Equals(object obj) { return default(bool); }
+        public static System.Attribute GetCustomAttribute(System.Reflection.Assembly element, System.Type attributeType) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(System.Reflection.Assembly element, System.Type attributeType, bool inherit) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(System.Reflection.MemberInfo element, System.Type attributeType) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(System.Reflection.Module element, System.Type attributeType) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(System.Reflection.Module element, System.Type attributeType, bool inherit) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(System.Reflection.ParameterInfo element, System.Type attributeType) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) { return default(System.Attribute); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.Assembly element) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.Assembly element, bool inherit) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.Assembly element, System.Type attributeType) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.Assembly element, System.Type attributeType, bool inherit) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, bool inherit) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, System.Type type) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.MemberInfo element, System.Type type, bool inherit) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element, bool inherit) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element, System.Type attributeType) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.Module element, System.Type attributeType, bool inherit) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.ParameterInfo element) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.ParameterInfo element, bool inherit) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.ParameterInfo element, System.Type attributeType) { return default(System.Attribute[]); }
+        public static System.Attribute[] GetCustomAttributes(System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) { return default(System.Attribute[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetHashCode() { return default(int); }
+        public static bool IsDefined(System.Reflection.Assembly element, System.Type attributeType) { return default(bool); }
+        public static bool IsDefined(System.Reflection.Assembly element, System.Type attributeType, bool inherit) { return default(bool); }
+        public static bool IsDefined(System.Reflection.MemberInfo element, System.Type attributeType) { return default(bool); }
+        public static bool IsDefined(System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) { return default(bool); }
+        public static bool IsDefined(System.Reflection.Module element, System.Type attributeType) { return default(bool); }
+        public static bool IsDefined(System.Reflection.Module element, System.Type attributeType, bool inherit) { return default(bool); }
+        public static bool IsDefined(System.Reflection.ParameterInfo element, System.Type attributeType) { return default(bool); }
+        public static bool IsDefined(System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) { return default(bool); }
+        public virtual bool Match(object obj) { return default(bool); }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum AttributeTargets
+    {
+        All = 32767,
+        Assembly = 1,
+        Class = 4,
+        Constructor = 32,
+        Delegate = 4096,
+        Enum = 16,
+        Event = 512,
+        Field = 256,
+        GenericParameter = 16384,
+        Interface = 1024,
+        Method = 64,
+        Module = 2,
+        Parameter = 2048,
+        Property = 128,
+        ReturnValue = 8192,
+        Struct = 8,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(4), Inherited=true)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AttributeUsageAttribute : System.Attribute
+    {
+        public AttributeUsageAttribute(System.AttributeTargets validOn) { }
+        public bool AllowMultiple { get { return default(bool); } set { } }
+        public bool Inherited { get { return default(bool); } set { } }
+        public System.AttributeTargets ValidOn { get { return default(System.AttributeTargets); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class BadImageFormatException : System.SystemException
+    {
+        public BadImageFormatException() { }
+        public BadImageFormatException(string message) { }
+        public BadImageFormatException(string message, System.Exception inner) { }
+        public BadImageFormatException(string message, string fileName) { }
+        public BadImageFormatException(string message, string fileName, System.Exception inner) { }
+        public string FileName { get { return default(string); } }
+        public override string Message { get { return default(string); } }
+        public override string ToString() { return default(string); }
+    }
+    public static partial class BitConverter
+    {
+        public static readonly bool IsLittleEndian;
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static long DoubleToInt64Bits(double value) { return default(long); }
+        public static byte[] GetBytes(bool value) { return default(byte[]); }
+        public static byte[] GetBytes(char value) { return default(byte[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static byte[] GetBytes(double value) { return default(byte[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static byte[] GetBytes(short value) { return default(byte[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static byte[] GetBytes(int value) { return default(byte[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static byte[] GetBytes(long value) { return default(byte[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static byte[] GetBytes(float value) { return default(byte[]); }
+        [System.CLSCompliantAttribute(false)]
+        public static byte[] GetBytes(ushort value) { return default(byte[]); }
+        [System.CLSCompliantAttribute(false)]
+        public static byte[] GetBytes(uint value) { return default(byte[]); }
+        [System.CLSCompliantAttribute(false)]
+        public static byte[] GetBytes(ulong value) { return default(byte[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static double Int64BitsToDouble(long value) { return default(double); }
+        public static bool ToBoolean(byte[] value, int startIndex) { return default(bool); }
+        public static char ToChar(byte[] value, int startIndex) { return default(char); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static double ToDouble(byte[] value, int startIndex) { return default(double); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static short ToInt16(byte[] value, int startIndex) { return default(short); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int ToInt32(byte[] value, int startIndex) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static long ToInt64(byte[] value, int startIndex) { return default(long); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static float ToSingle(byte[] value, int startIndex) { return default(float); }
+        public static string ToString(byte[] value) { return default(string); }
+        public static string ToString(byte[] value, int startIndex) { return default(string); }
+        public static string ToString(byte[] value, int startIndex, int length) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(byte[] value, int startIndex) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(byte[] value, int startIndex) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(byte[] value, int startIndex) { return default(ulong); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Boolean : System.IComparable, System.IComparable<bool>, System.IConvertible, System.IEquatable<bool>
+    {
+        public static readonly string FalseString;
+        public static readonly string TrueString;
+        public int CompareTo(bool value) { return default(int); }
+        public int CompareTo(object obj) { return default(int); }
+        
+        public bool Equals(bool obj) { return default(bool); }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        public static bool Parse(string value) { return default(bool); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        public override string ToString() { return default(string); }
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        public static bool TryParse(string value, out bool result) { result = default(bool); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public static partial class Buffer
+    {
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static void BlockCopy(System.Array src, int srcOffset, System.Array dst, int dstOffset, int count) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int ByteLength(System.Array array) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static byte GetByte(System.Array array, int index) { return default(byte); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe static void MemoryCopy(void* source, void* destination, long destinationSizeInBytes, long sourceBytesToCopy) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe static void MemoryCopy(void* source, void* destination, ulong destinationSizeInBytes, ulong sourceBytesToCopy) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void SetByte(System.Array array, int index, byte value) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Byte : System.IComparable, System.IComparable<byte>, System.IConvertible, System.IEquatable<byte>, System.IFormattable
+    {
+        public const byte MaxValue = (byte)255;
+        public const byte MinValue = (byte)0;
+        public int CompareTo(byte value) { return default(int); }
+        public int CompareTo(object value) { return default(int); }
+        
+        public bool Equals(byte obj) { return default(bool); }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        public static byte Parse(string s) { return default(byte); }
+        public static byte Parse(string s, System.Globalization.NumberStyles style) { return default(byte); }
+        public static byte Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) { return default(byte); }
+        public static byte Parse(string s, System.IFormatProvider provider) { return default(byte); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        public static bool TryParse(string s, out byte result) { result = default(byte); return default(bool); }
+        public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out byte result) { result = default(byte); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class CannotUnloadAppDomainException : System.SystemException
+    {
+        public CannotUnloadAppDomainException() { }
+        public CannotUnloadAppDomainException(string message) { }
+        public CannotUnloadAppDomainException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Char : System.IComparable, System.IComparable<char>, System.IConvertible, System.IEquatable<char>
+    {
+        public const char MaxValue = '\uFFFF';
+        public const char MinValue = '\0';
+        public int CompareTo(char value) { return default(int); }
+        public int CompareTo(object value) { return default(int); }
+        public static string ConvertFromUtf32(int utf32) { return default(string); }
+        public static int ConvertToUtf32(char highSurrogate, char lowSurrogate) { return default(int); }
+        public static int ConvertToUtf32(string s, int index) { return default(int); }
+        
+        public bool Equals(char obj) { return default(bool); }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static double GetNumericValue(char c) { return default(double); }
+        public static double GetNumericValue(string s, int index) { return default(double); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        public static System.Globalization.UnicodeCategory GetUnicodeCategory(char c) { return default(System.Globalization.UnicodeCategory); }
+        public static System.Globalization.UnicodeCategory GetUnicodeCategory(string s, int index) { return default(System.Globalization.UnicodeCategory); }
+        public static bool IsControl(char c) { return default(bool); }
+        public static bool IsControl(string s, int index) { return default(bool); }
+        public static bool IsDigit(char c) { return default(bool); }
+        public static bool IsDigit(string s, int index) { return default(bool); }
+        public static bool IsHighSurrogate(char c) { return default(bool); }
+        public static bool IsHighSurrogate(string s, int index) { return default(bool); }
+        public static bool IsLetter(char c) { return default(bool); }
+        public static bool IsLetter(string s, int index) { return default(bool); }
+        public static bool IsLetterOrDigit(char c) { return default(bool); }
+        public static bool IsLetterOrDigit(string s, int index) { return default(bool); }
+        public static bool IsLower(char c) { return default(bool); }
+        public static bool IsLower(string s, int index) { return default(bool); }
+        public static bool IsLowSurrogate(char c) { return default(bool); }
+        public static bool IsLowSurrogate(string s, int index) { return default(bool); }
+        public static bool IsNumber(char c) { return default(bool); }
+        public static bool IsNumber(string s, int index) { return default(bool); }
+        public static bool IsPunctuation(char c) { return default(bool); }
+        public static bool IsPunctuation(string s, int index) { return default(bool); }
+        public static bool IsSeparator(char c) { return default(bool); }
+        public static bool IsSeparator(string s, int index) { return default(bool); }
+        public static bool IsSurrogate(char c) { return default(bool); }
+        public static bool IsSurrogate(string s, int index) { return default(bool); }
+        public static bool IsSurrogatePair(char highSurrogate, char lowSurrogate) { return default(bool); }
+        public static bool IsSurrogatePair(string s, int index) { return default(bool); }
+        public static bool IsSymbol(char c) { return default(bool); }
+        public static bool IsSymbol(string s, int index) { return default(bool); }
+        public static bool IsUpper(char c) { return default(bool); }
+        public static bool IsUpper(string s, int index) { return default(bool); }
+        public static bool IsWhiteSpace(char c) { return default(bool); }
+        public static bool IsWhiteSpace(string s, int index) { return default(bool); }
+        public static char Parse(string s) { return default(char); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        public static char ToLower(char c) { return default(char); }
+        public static char ToLower(char c, System.Globalization.CultureInfo culture) { return default(char); }
+        public static char ToLowerInvariant(char c) { return default(char); }
+        public override string ToString() { return default(string); }
+        public static string ToString(char c) { return default(string); }
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        public static char ToUpper(char c) { return default(char); }
+        public static char ToUpper(char c, System.Globalization.CultureInfo culture) { return default(char); }
+        public static char ToUpperInvariant(char c) { return default(char); }
+        public static bool TryParse(string s, out char result) { result = default(char); return default(bool); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(32767), Inherited=true, AllowMultiple=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class CLSCompliantAttribute : System.Attribute
+    {
+        public CLSCompliantAttribute(bool isCompliant) { }
+        public bool IsCompliant { get { return default(bool); } }
+    }
+    public delegate int Comparison<in T>(T x, T y);
+    public static partial class Console
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Write(string s) { }
+        public static void WriteLine() { }
+        public static void WriteLine(string s) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ContextMarshalException : System.SystemException
+    {
+        public ContextMarshalException() { }
+        public ContextMarshalException(string message) { }
+        public ContextMarshalException(string message, System.Exception inner) { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(256), Inherited=false)]
+    [System.ObsoleteAttribute("ContextStaticAttribute is not supported in this release. It has been left in so that legacy tools can be used with this release, but it cannot be used in your code.", true)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ContextStaticAttribute : System.Attribute
+    {
+        public ContextStaticAttribute() { }
+    }
+    public static partial class Convert
+    {
+        public static readonly object DBNull;
+        public static object ChangeType(object value, System.Type conversionType) { return default(object); }
+        public static object ChangeType(object value, System.Type conversionType, System.IFormatProvider provider) { return default(object); }
+        public static object ChangeType(object value, System.TypeCode typeCode, System.IFormatProvider provider) { return default(object); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static byte[] FromBase64CharArray(char[] inArray, int offset, int length) { return default(byte[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static byte[] FromBase64String(string s) { return default(byte[]); }
+        public static System.TypeCode GetTypeCode(object value) { return default(System.TypeCode); }
+        public static bool IsDBNull(object value) { return default(bool); }
+        public static int ToBase64CharArray(byte[] inArray, int offsetIn, int length, char[] outArray, int offsetOut) { return default(int); }
+        public static string ToBase64String(byte[] inArray) { return default(string); }
+        public static string ToBase64String(byte[] inArray, int offset, int length) { return default(string); }
+        public static bool ToBoolean(bool value) { return default(bool); }
+        public static bool ToBoolean(byte value) { return default(bool); }
+        public static bool ToBoolean(char value) { return default(bool); }
+        public static bool ToBoolean(decimal value) { return default(bool); }
+        public static bool ToBoolean(double value) { return default(bool); }
+        public static bool ToBoolean(short value) { return default(bool); }
+        public static bool ToBoolean(int value) { return default(bool); }
+        public static bool ToBoolean(long value) { return default(bool); }
+        public static bool ToBoolean(object value) { return default(bool); }
+        public static bool ToBoolean(object value, System.IFormatProvider provider) { return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool ToBoolean(sbyte value) { return default(bool); }
+        public static bool ToBoolean(float value) { return default(bool); }
+        public static bool ToBoolean(string value) { return default(bool); }
+        public static bool ToBoolean(string value, System.IFormatProvider provider) { return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool ToBoolean(ushort value) { return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool ToBoolean(uint value) { return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool ToBoolean(ulong value) { return default(bool); }
+        public static byte ToByte(bool value) { return default(byte); }
+        public static byte ToByte(byte value) { return default(byte); }
+        public static byte ToByte(char value) { return default(byte); }
+        public static byte ToByte(decimal value) { return default(byte); }
+        public static byte ToByte(double value) { return default(byte); }
+        public static byte ToByte(short value) { return default(byte); }
+        public static byte ToByte(int value) { return default(byte); }
+        public static byte ToByte(long value) { return default(byte); }
+        public static byte ToByte(object value) { return default(byte); }
+        public static byte ToByte(object value, System.IFormatProvider provider) { return default(byte); }
+        [System.CLSCompliantAttribute(false)]
+        public static byte ToByte(sbyte value) { return default(byte); }
+        public static byte ToByte(float value) { return default(byte); }
+        public static byte ToByte(string value) { return default(byte); }
+        public static byte ToByte(string value, System.IFormatProvider provider) { return default(byte); }
+        public static byte ToByte(string value, int fromBase) { return default(byte); }
+        [System.CLSCompliantAttribute(false)]
+        public static byte ToByte(ushort value) { return default(byte); }
+        [System.CLSCompliantAttribute(false)]
+        public static byte ToByte(uint value) { return default(byte); }
+        [System.CLSCompliantAttribute(false)]
+        public static byte ToByte(ulong value) { return default(byte); }
+        public static char ToChar(byte value) { return default(char); }
+        public static char ToChar(char value) { return default(char); }
+        public static char ToChar(decimal value) { return default(char); }
+        public static char ToChar(double value) { return default(char); }
+        public static char ToChar(short value) { return default(char); }
+        public static char ToChar(int value) { return default(char); }
+        public static char ToChar(long value) { return default(char); }
+        public static char ToChar(object value) { return default(char); }
+        public static char ToChar(object value, System.IFormatProvider provider) { return default(char); }
+        [System.CLSCompliantAttribute(false)]
+        public static char ToChar(sbyte value) { return default(char); }
+        public static char ToChar(float value) { return default(char); }
+        public static char ToChar(string value) { return default(char); }
+        public static char ToChar(string value, System.IFormatProvider provider) { return default(char); }
+        [System.CLSCompliantAttribute(false)]
+        public static char ToChar(ushort value) { return default(char); }
+        [System.CLSCompliantAttribute(false)]
+        public static char ToChar(uint value) { return default(char); }
+        [System.CLSCompliantAttribute(false)]
+        public static char ToChar(ulong value) { return default(char); }
+        public static System.DateTime ToDateTime(object value) { return default(System.DateTime); }
+        public static System.DateTime ToDateTime(object value, System.IFormatProvider provider) { return default(System.DateTime); }
+        public static System.DateTime ToDateTime(string value) { return default(System.DateTime); }
+        public static System.DateTime ToDateTime(string value, System.IFormatProvider provider) { return default(System.DateTime); }
+        public static decimal ToDecimal(bool value) { return default(decimal); }
+        public static decimal ToDecimal(byte value) { return default(decimal); }
+        public static decimal ToDecimal(char value) { return default(decimal); }
+        public static decimal ToDecimal(System.DateTime value) { return default(decimal); }
+        public static decimal ToDecimal(decimal value) { return default(decimal); }
+        public static decimal ToDecimal(double value) { return default(decimal); }
+        public static decimal ToDecimal(short value) { return default(decimal); }
+        public static decimal ToDecimal(int value) { return default(decimal); }
+        public static decimal ToDecimal(long value) { return default(decimal); }
+        public static decimal ToDecimal(object value) { return default(decimal); }
+        public static decimal ToDecimal(object value, System.IFormatProvider provider) { return default(decimal); }
+        [System.CLSCompliantAttribute(false)]
+        public static decimal ToDecimal(sbyte value) { return default(decimal); }
+        public static decimal ToDecimal(float value) { return default(decimal); }
+        public static decimal ToDecimal(string value) { return default(decimal); }
+        public static decimal ToDecimal(string value, System.IFormatProvider provider) { return default(decimal); }
+        [System.CLSCompliantAttribute(false)]
+        public static decimal ToDecimal(ushort value) { return default(decimal); }
+        [System.CLSCompliantAttribute(false)]
+        public static decimal ToDecimal(uint value) { return default(decimal); }
+        [System.CLSCompliantAttribute(false)]
+        public static decimal ToDecimal(ulong value) { return default(decimal); }
+        public static double ToDouble(bool value) { return default(double); }
+        public static double ToDouble(byte value) { return default(double); }
+        public static double ToDouble(char value) { return default(double); }
+        public static double ToDouble(decimal value) { return default(double); }
+        public static double ToDouble(double value) { return default(double); }
+        public static double ToDouble(short value) { return default(double); }
+        public static double ToDouble(int value) { return default(double); }
+        public static double ToDouble(long value) { return default(double); }
+        public static double ToDouble(object value) { return default(double); }
+        public static double ToDouble(object value, System.IFormatProvider provider) { return default(double); }
+        [System.CLSCompliantAttribute(false)]
+        public static double ToDouble(sbyte value) { return default(double); }
+        public static double ToDouble(float value) { return default(double); }
+        public static double ToDouble(string value) { return default(double); }
+        public static double ToDouble(string value, System.IFormatProvider provider) { return default(double); }
+        [System.CLSCompliantAttribute(false)]
+        public static double ToDouble(ushort value) { return default(double); }
+        [System.CLSCompliantAttribute(false)]
+        public static double ToDouble(uint value) { return default(double); }
+        [System.CLSCompliantAttribute(false)]
+        public static double ToDouble(ulong value) { return default(double); }
+        public static short ToInt16(bool value) { return default(short); }
+        public static short ToInt16(byte value) { return default(short); }
+        public static short ToInt16(char value) { return default(short); }
+        public static short ToInt16(decimal value) { return default(short); }
+        public static short ToInt16(double value) { return default(short); }
+        public static short ToInt16(short value) { return default(short); }
+        public static short ToInt16(int value) { return default(short); }
+        public static short ToInt16(long value) { return default(short); }
+        public static short ToInt16(object value) { return default(short); }
+        public static short ToInt16(object value, System.IFormatProvider provider) { return default(short); }
+        [System.CLSCompliantAttribute(false)]
+        public static short ToInt16(sbyte value) { return default(short); }
+        public static short ToInt16(float value) { return default(short); }
+        public static short ToInt16(string value) { return default(short); }
+        public static short ToInt16(string value, System.IFormatProvider provider) { return default(short); }
+        public static short ToInt16(string value, int fromBase) { return default(short); }
+        [System.CLSCompliantAttribute(false)]
+        public static short ToInt16(ushort value) { return default(short); }
+        [System.CLSCompliantAttribute(false)]
+        public static short ToInt16(uint value) { return default(short); }
+        [System.CLSCompliantAttribute(false)]
+        public static short ToInt16(ulong value) { return default(short); }
+        public static int ToInt32(bool value) { return default(int); }
+        public static int ToInt32(byte value) { return default(int); }
+        public static int ToInt32(char value) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int ToInt32(decimal value) { return default(int); }
+        public static int ToInt32(double value) { return default(int); }
+        public static int ToInt32(short value) { return default(int); }
+        public static int ToInt32(int value) { return default(int); }
+        public static int ToInt32(long value) { return default(int); }
+        public static int ToInt32(object value) { return default(int); }
+        public static int ToInt32(object value, System.IFormatProvider provider) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        public static int ToInt32(sbyte value) { return default(int); }
+        public static int ToInt32(float value) { return default(int); }
+        public static int ToInt32(string value) { return default(int); }
+        public static int ToInt32(string value, System.IFormatProvider provider) { return default(int); }
+        public static int ToInt32(string value, int fromBase) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        public static int ToInt32(ushort value) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        public static int ToInt32(uint value) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        public static int ToInt32(ulong value) { return default(int); }
+        public static long ToInt64(bool value) { return default(long); }
+        public static long ToInt64(byte value) { return default(long); }
+        public static long ToInt64(char value) { return default(long); }
+        public static long ToInt64(decimal value) { return default(long); }
+        public static long ToInt64(double value) { return default(long); }
+        public static long ToInt64(short value) { return default(long); }
+        public static long ToInt64(int value) { return default(long); }
+        public static long ToInt64(long value) { return default(long); }
+        public static long ToInt64(object value) { return default(long); }
+        public static long ToInt64(object value, System.IFormatProvider provider) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        public static long ToInt64(sbyte value) { return default(long); }
+        public static long ToInt64(float value) { return default(long); }
+        public static long ToInt64(string value) { return default(long); }
+        public static long ToInt64(string value, System.IFormatProvider provider) { return default(long); }
+        public static long ToInt64(string value, int fromBase) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        public static long ToInt64(ushort value) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        public static long ToInt64(uint value) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        public static long ToInt64(ulong value) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(bool value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(byte value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(char value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(decimal value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(double value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(short value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(int value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(long value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(object value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(object value, System.IFormatProvider provider) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(sbyte value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(float value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(string value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(string value, System.IFormatProvider provider) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(string value, int fromBase) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(ushort value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(uint value) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(ulong value) { return default(sbyte); }
+        public static float ToSingle(bool value) { return default(float); }
+        public static float ToSingle(byte value) { return default(float); }
+        public static float ToSingle(char value) { return default(float); }
+        public static float ToSingle(decimal value) { return default(float); }
+        public static float ToSingle(double value) { return default(float); }
+        public static float ToSingle(short value) { return default(float); }
+        public static float ToSingle(int value) { return default(float); }
+        public static float ToSingle(long value) { return default(float); }
+        public static float ToSingle(object value) { return default(float); }
+        public static float ToSingle(object value, System.IFormatProvider provider) { return default(float); }
+        [System.CLSCompliantAttribute(false)]
+        public static float ToSingle(sbyte value) { return default(float); }
+        public static float ToSingle(float value) { return default(float); }
+        public static float ToSingle(string value) { return default(float); }
+        public static float ToSingle(string value, System.IFormatProvider provider) { return default(float); }
+        [System.CLSCompliantAttribute(false)]
+        public static float ToSingle(ushort value) { return default(float); }
+        [System.CLSCompliantAttribute(false)]
+        public static float ToSingle(uint value) { return default(float); }
+        [System.CLSCompliantAttribute(false)]
+        public static float ToSingle(ulong value) { return default(float); }
+        public static string ToString(bool value) { return default(string); }
+        public static string ToString(bool value, System.IFormatProvider provider) { return default(string); }
+        public static string ToString(byte value) { return default(string); }
+        public static string ToString(byte value, System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string ToString(byte value, int toBase) { return default(string); }
+        public static string ToString(char value) { return default(string); }
+        public static string ToString(char value, System.IFormatProvider provider) { return default(string); }
+        public static string ToString(System.DateTime value) { return default(string); }
+        public static string ToString(System.DateTime value, System.IFormatProvider provider) { return default(string); }
+        public static string ToString(decimal value) { return default(string); }
+        public static string ToString(decimal value, System.IFormatProvider provider) { return default(string); }
+        public static string ToString(double value) { return default(string); }
+        public static string ToString(double value, System.IFormatProvider provider) { return default(string); }
+        public static string ToString(short value) { return default(string); }
+        public static string ToString(short value, System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string ToString(short value, int toBase) { return default(string); }
+        public static string ToString(int value) { return default(string); }
+        public static string ToString(int value, System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string ToString(int value, int toBase) { return default(string); }
+        public static string ToString(long value) { return default(string); }
+        public static string ToString(long value, System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string ToString(long value, int toBase) { return default(string); }
+        public static string ToString(object value) { return default(string); }
+        public static string ToString(object value, System.IFormatProvider provider) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static string ToString(sbyte value) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static string ToString(sbyte value, System.IFormatProvider provider) { return default(string); }
+        public static string ToString(float value) { return default(string); }
+        public static string ToString(float value, System.IFormatProvider provider) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static string ToString(ushort value) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static string ToString(ushort value, System.IFormatProvider provider) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static string ToString(uint value) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static string ToString(uint value, System.IFormatProvider provider) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static string ToString(ulong value) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static string ToString(ulong value, System.IFormatProvider provider) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(bool value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(byte value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(char value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(decimal value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(double value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(short value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(int value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(long value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(object value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(object value, System.IFormatProvider provider) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(sbyte value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(float value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(string value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(string value, System.IFormatProvider provider) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(string value, int fromBase) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(ushort value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(uint value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(ulong value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(bool value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(byte value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(char value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(decimal value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(double value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(short value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(int value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(long value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(object value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(object value, System.IFormatProvider provider) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(sbyte value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(float value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(string value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(string value, System.IFormatProvider provider) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(string value, int fromBase) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(ushort value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(uint value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint ToUInt32(ulong value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(bool value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(byte value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(char value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(decimal value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(double value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(short value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(int value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(long value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(object value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(object value, System.IFormatProvider provider) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(sbyte value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(float value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(string value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(string value, System.IFormatProvider provider) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(string value, int fromBase) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(ushort value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(uint value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong ToUInt64(ulong value) { return default(ulong); }
+    }
+    public delegate TOutput Converter<in TInput, out TOutput>(TInput input);
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DataMisalignedException : System.SystemException
+    {
+        public DataMisalignedException() { }
+        public DataMisalignedException(string message) { }
+        public DataMisalignedException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Auto)]
+    public partial struct DateTime : System.IComparable, System.IComparable<System.DateTime>, System.IConvertible, System.IEquatable<System.DateTime>, System.IFormattable
+    {
+        public static readonly System.DateTime MaxValue;
+        public static readonly System.DateTime MinValue;
+        public DateTime(int year, int month, int day) { throw new System.NotImplementedException(); }
+        public DateTime(int year, int month, int day, System.Globalization.Calendar calendar) { throw new System.NotImplementedException(); }
+        public DateTime(int year, int month, int day, int hour, int minute, int second) { throw new System.NotImplementedException(); }
+        public DateTime(int year, int month, int day, int hour, int minute, int second, System.DateTimeKind kind) { throw new System.NotImplementedException(); }
+        public DateTime(int year, int month, int day, int hour, int minute, int second, System.Globalization.Calendar calendar) { throw new System.NotImplementedException(); }
+        public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond) { throw new System.NotImplementedException(); }
+        public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, System.DateTimeKind kind) { throw new System.NotImplementedException(); }
+        public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar) { throw new System.NotImplementedException(); }
+        public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar, System.DateTimeKind kind) { throw new System.NotImplementedException(); }
+        public DateTime(long ticks) { throw new System.NotImplementedException(); }
+        public DateTime(long ticks, System.DateTimeKind kind) { throw new System.NotImplementedException(); }
+        public System.DateTime Date { get { return default(System.DateTime); } }
+        public int Day { get { return default(int); } }
+        public System.DayOfWeek DayOfWeek { get { return default(System.DayOfWeek); } }
+        public int DayOfYear { get { return default(int); } }
+        public int Hour { get { return default(int); } }
+        public System.DateTimeKind Kind { get { return default(System.DateTimeKind); } }
+        public int Millisecond { get { return default(int); } }
+        public int Minute { get { return default(int); } }
+        public int Month { get { return default(int); } }
+        public static System.DateTime Now { get { return default(System.DateTime); } }
+        public int Second { get { return default(int); } }
+        public long Ticks { get { return default(long); } }
+        public System.TimeSpan TimeOfDay { get { return default(System.TimeSpan); } }
+        public static System.DateTime Today { get { return default(System.DateTime); } }
+        public static System.DateTime UtcNow { [System.Security.SecuritySafeCriticalAttribute]get { return default(System.DateTime); } }
+        public int Year { get { return default(int); } }
+        public System.DateTime Add(System.TimeSpan value) { return default(System.DateTime); }
+        public System.DateTime AddDays(double value) { return default(System.DateTime); }
+        public System.DateTime AddHours(double value) { return default(System.DateTime); }
+        public System.DateTime AddMilliseconds(double value) { return default(System.DateTime); }
+        public System.DateTime AddMinutes(double value) { return default(System.DateTime); }
+        public System.DateTime AddMonths(int months) { return default(System.DateTime); }
+        public System.DateTime AddSeconds(double value) { return default(System.DateTime); }
+        public System.DateTime AddTicks(long value) { return default(System.DateTime); }
+        public System.DateTime AddYears(int value) { return default(System.DateTime); }
+        public static int Compare(System.DateTime t1, System.DateTime t2) { return default(int); }
+        public int CompareTo(System.DateTime value) { return default(int); }
+        public int CompareTo(object value) { return default(int); }
+        public static int DaysInMonth(int year, int month) { return default(int); }
+        public bool Equals(System.DateTime value) { return default(bool); }
+        public static bool Equals(System.DateTime t1, System.DateTime t2) { return default(bool); }
+        public override bool Equals(object value) { return default(bool); }
+        public static System.DateTime FromBinary(long dateData) { return default(System.DateTime); }
+        public static System.DateTime FromFileTime(long fileTime) { return default(System.DateTime); }
+        public static System.DateTime FromFileTimeUtc(long fileTime) { return default(System.DateTime); }
+        public static System.DateTime FromOADate(double d) { return default(System.DateTime); }
+        public string[] GetDateTimeFormats() { return default(string[]); }
+        public string[] GetDateTimeFormats(char format) { return default(string[]); }
+        public string[] GetDateTimeFormats(char format, System.IFormatProvider provider) { return default(string[]); }
+        public string[] GetDateTimeFormats(System.IFormatProvider provider) { return default(string[]); }
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        public bool IsDaylightSavingTime() { return default(bool); }
+        public static bool IsLeapYear(int year) { return default(bool); }
+        public static System.DateTime operator +(System.DateTime d, System.TimeSpan t) { return default(System.DateTime); }
+        public static bool operator ==(System.DateTime d1, System.DateTime d2) { return default(bool); }
+        public static bool operator >(System.DateTime t1, System.DateTime t2) { return default(bool); }
+        public static bool operator >=(System.DateTime t1, System.DateTime t2) { return default(bool); }
+        public static bool operator !=(System.DateTime d1, System.DateTime d2) { return default(bool); }
+        public static bool operator <(System.DateTime t1, System.DateTime t2) { return default(bool); }
+        public static bool operator <=(System.DateTime t1, System.DateTime t2) { return default(bool); }
+        public static System.TimeSpan operator -(System.DateTime d1, System.DateTime d2) { return default(System.TimeSpan); }
+        public static System.DateTime operator -(System.DateTime d, System.TimeSpan t) { return default(System.DateTime); }
+        public static System.DateTime Parse(string s) { return default(System.DateTime); }
+        public static System.DateTime Parse(string s, System.IFormatProvider provider) { return default(System.DateTime); }
+        public static System.DateTime Parse(string s, System.IFormatProvider provider, System.Globalization.DateTimeStyles styles) { return default(System.DateTime); }
+        public static System.DateTime ParseExact(string s, string format, System.IFormatProvider provider) { return default(System.DateTime); }
+        public static System.DateTime ParseExact(string s, string format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style) { return default(System.DateTime); }
+        public static System.DateTime ParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style) { return default(System.DateTime); }
+        public static System.DateTime SpecifyKind(System.DateTime value, System.DateTimeKind kind) { return default(System.DateTime); }
+        public System.TimeSpan Subtract(System.DateTime value) { return default(System.TimeSpan); }
+        public System.DateTime Subtract(System.TimeSpan value) { return default(System.DateTime); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        public long ToBinary() { return default(long); }
+        public long ToFileTime() { return default(long); }
+        public long ToFileTimeUtc() { return default(long); }
+        public System.DateTime ToLocalTime() { return default(System.DateTime); }
+        public string ToLongDateString() { return default(string); }
+        public string ToLongTimeString() { return default(string); }
+        public double ToOADate() { return default(double); }
+        public string ToShortDateString() { return default(string); }
+        public string ToShortTimeString() { return default(string); }
+        public override string ToString() { return default(string); }
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        public string ToString(string format) { return default(string); }
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        public System.DateTime ToUniversalTime() { return default(System.DateTime); }
+        public static bool TryParse(string s, out System.DateTime result) { result = default(System.DateTime); return default(bool); }
+        public static bool TryParse(string s, System.IFormatProvider provider, System.Globalization.DateTimeStyles styles, out System.DateTime result) { result = default(System.DateTime); return default(bool); }
+        public static bool TryParseExact(string s, string format, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) { result = default(System.DateTime); return default(bool); }
+        public static bool TryParseExact(string s, string[] formats, System.IFormatProvider provider, System.Globalization.DateTimeStyles style, out System.DateTime result) { result = default(System.DateTime); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum DateTimeKind
+    {
+        Local = 2,
+        Unspecified = 0,
+        Utc = 1,
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Auto)]
+    public partial struct DateTimeOffset : System.IComparable, System.IComparable<System.DateTimeOffset>, System.IEquatable<System.DateTimeOffset>, System.IFormattable
+    {
+        public static readonly System.DateTimeOffset MaxValue;
+        public static readonly System.DateTimeOffset MinValue;
+        public DateTimeOffset(System.DateTime dateTime) { throw new System.NotImplementedException(); }
+        public DateTimeOffset(System.DateTime dateTime, System.TimeSpan offset) { throw new System.NotImplementedException(); }
+        public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar, System.TimeSpan offset) { throw new System.NotImplementedException(); }
+        public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, System.TimeSpan offset) { throw new System.NotImplementedException(); }
+        public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, System.TimeSpan offset) { throw new System.NotImplementedException(); }
+        public DateTimeOffset(long ticks, System.TimeSpan offset) { throw new System.NotImplementedException(); }
+        public System.DateTime Date { get { return default(System.DateTime); } }
+        public System.DateTime DateTime { get { return default(System.DateTime); } }
+        public int Day { get { return default(int); } }
+        public System.DayOfWeek DayOfWeek { get { return default(System.DayOfWeek); } }
+        public int DayOfYear { get { return default(int); } }
+        public int Hour { get { return default(int); } }
+        public System.DateTime LocalDateTime { get { return default(System.DateTime); } }
+        public int Millisecond { get { return default(int); } }
+        public int Minute { get { return default(int); } }
+        public int Month { get { return default(int); } }
+        public static System.DateTimeOffset Now { get { return default(System.DateTimeOffset); } }
+        public System.TimeSpan Offset { get { return default(System.TimeSpan); } }
+        public int Second { get { return default(int); } }
+        public long Ticks { get { return default(long); } }
+        public System.TimeSpan TimeOfDay { get { return default(System.TimeSpan); } }
+        public System.DateTime UtcDateTime { get { return default(System.DateTime); } }
+        public static System.DateTimeOffset UtcNow { get { return default(System.DateTimeOffset); } }
+        public long UtcTicks { get { return default(long); } }
+        public int Year { get { return default(int); } }
+        public System.DateTimeOffset Add(System.TimeSpan timeSpan) { return default(System.DateTimeOffset); }
+        public System.DateTimeOffset AddDays(double days) { return default(System.DateTimeOffset); }
+        public System.DateTimeOffset AddHours(double hours) { return default(System.DateTimeOffset); }
+        public System.DateTimeOffset AddMilliseconds(double milliseconds) { return default(System.DateTimeOffset); }
+        public System.DateTimeOffset AddMinutes(double minutes) { return default(System.DateTimeOffset); }
+        public System.DateTimeOffset AddMonths(int months) { return default(System.DateTimeOffset); }
+        public System.DateTimeOffset AddSeconds(double seconds) { return default(System.DateTimeOffset); }
+        public System.DateTimeOffset AddTicks(long ticks) { return default(System.DateTimeOffset); }
+        public System.DateTimeOffset AddYears(int years) { return default(System.DateTimeOffset); }
+        public static int Compare(System.DateTimeOffset first, System.DateTimeOffset second) { return default(int); }
+        public int CompareTo(System.DateTimeOffset other) { return default(int); }
+        public bool Equals(System.DateTimeOffset other) { return default(bool); }
+        public static bool Equals(System.DateTimeOffset first, System.DateTimeOffset second) { return default(bool); }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool EqualsExact(System.DateTimeOffset other) { return default(bool); }
+        public static System.DateTimeOffset FromFileTime(long fileTime) { return default(System.DateTimeOffset); }
+        public static System.DateTimeOffset FromUnixTimeMilliseconds(long milliseconds) { return default(System.DateTimeOffset); }
+        public static System.DateTimeOffset FromUnixTimeSeconds(long seconds) { return default(System.DateTimeOffset); }
+        public override int GetHashCode() { return default(int); }
+        public static System.DateTimeOffset operator +(System.DateTimeOffset dateTimeOffset, System.TimeSpan timeSpan) { return default(System.DateTimeOffset); }
+        public static bool operator ==(System.DateTimeOffset left, System.DateTimeOffset right) { return default(bool); }
+        public static bool operator >(System.DateTimeOffset left, System.DateTimeOffset right) { return default(bool); }
+        public static bool operator >=(System.DateTimeOffset left, System.DateTimeOffset right) { return default(bool); }
+        public static implicit operator System.DateTimeOffset (System.DateTime dateTime) { return default(System.DateTimeOffset); }
+        public static bool operator !=(System.DateTimeOffset left, System.DateTimeOffset right) { return default(bool); }
+        public static bool operator <(System.DateTimeOffset left, System.DateTimeOffset right) { return default(bool); }
+        public static bool operator <=(System.DateTimeOffset left, System.DateTimeOffset right) { return default(bool); }
+        public static System.TimeSpan operator -(System.DateTimeOffset left, System.DateTimeOffset right) { return default(System.TimeSpan); }
+        public static System.DateTimeOffset operator -(System.DateTimeOffset dateTimeOffset, System.TimeSpan timeSpan) { return default(System.DateTimeOffset); }
+        public static System.DateTimeOffset Parse(string input) { return default(System.DateTimeOffset); }
+        public static System.DateTimeOffset Parse(string input, System.IFormatProvider formatProvider) { return default(System.DateTimeOffset); }
+        public static System.DateTimeOffset Parse(string input, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles) { return default(System.DateTimeOffset); }
+        public static System.DateTimeOffset ParseExact(string input, string format, System.IFormatProvider formatProvider) { return default(System.DateTimeOffset); }
+        public static System.DateTimeOffset ParseExact(string input, string format, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles) { return default(System.DateTimeOffset); }
+        public static System.DateTimeOffset ParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles) { return default(System.DateTimeOffset); }
+        public System.TimeSpan Subtract(System.DateTimeOffset value) { return default(System.TimeSpan); }
+        public System.DateTimeOffset Subtract(System.TimeSpan value) { return default(System.DateTimeOffset); }
+        int System.IComparable.CompareTo(object obj) { return default(int); }
+        public long ToFileTime() { return default(long); }
+        public System.DateTimeOffset ToLocalTime() { return default(System.DateTimeOffset); }
+        public System.DateTimeOffset ToOffset(System.TimeSpan offset) { return default(System.DateTimeOffset); }
+        public override string ToString() { return default(string); }
+        public string ToString(System.IFormatProvider formatProvider) { return default(string); }
+        public string ToString(string format) { return default(string); }
+        public string ToString(string format, System.IFormatProvider formatProvider) { return default(string); }
+        public System.DateTimeOffset ToUniversalTime() { return default(System.DateTimeOffset); }
+        public long ToUnixTimeMilliseconds() { return default(long); }
+        public long ToUnixTimeSeconds() { return default(long); }
+        public static bool TryParse(string input, out System.DateTimeOffset result) { result = default(System.DateTimeOffset); return default(bool); }
+        public static bool TryParse(string input, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) { result = default(System.DateTimeOffset); return default(bool); }
+        public static bool TryParseExact(string input, string format, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) { result = default(System.DateTimeOffset); return default(bool); }
+        public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out System.DateTimeOffset result) { result = default(System.DateTimeOffset); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum DayOfWeek
+    {
+        Friday = 5,
+        Monday = 1,
+        Saturday = 6,
+        Sunday = 0,
+        Thursday = 4,
+        Tuesday = 2,
+        Wednesday = 3,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DBNull : System.IConvertible
+    {
+        internal DBNull() { }
+        public static readonly System.DBNull Value;
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        public override string ToString() { return default(string); }
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Decimal : System.IComparable, System.IComparable<decimal>, System.IConvertible, System.IEquatable<decimal>, System.IFormattable
+    {
+        [System.Runtime.CompilerServices.DecimalConstantAttribute((byte)0, (byte)0, (uint)4294967295, (uint)4294967295, (uint)4294967295)]
+        public static readonly decimal MaxValue;
+        [System.Runtime.CompilerServices.DecimalConstantAttribute((byte)0, (byte)128, (uint)0, (uint)0, (uint)1)]
+        public static readonly decimal MinusOne;
+        [System.Runtime.CompilerServices.DecimalConstantAttribute((byte)0, (byte)128, (uint)4294967295, (uint)4294967295, (uint)4294967295)]
+        public static readonly decimal MinValue;
+        [System.Runtime.CompilerServices.DecimalConstantAttribute((byte)0, (byte)0, (uint)0, (uint)0, (uint)1)]
+        public static readonly decimal One;
+        [System.Runtime.CompilerServices.DecimalConstantAttribute((byte)0, (byte)0, (uint)0, (uint)0, (uint)0)]
+        public static readonly decimal Zero;
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public Decimal(double value) { throw new System.NotImplementedException(); }
+        public Decimal(int value) { throw new System.NotImplementedException(); }
+        public Decimal(int lo, int mid, int hi, bool isNegative, byte scale) { throw new System.NotImplementedException(); }
+        public Decimal(int[] bits) { throw new System.NotImplementedException(); }
+        public Decimal(long value) { throw new System.NotImplementedException(); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public Decimal(float value) { throw new System.NotImplementedException(); }
+        [System.CLSCompliantAttribute(false)]
+        public Decimal(uint value) { throw new System.NotImplementedException(); }
+        [System.CLSCompliantAttribute(false)]
+        public Decimal(ulong value) { throw new System.NotImplementedException(); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static decimal Add(decimal d1, decimal d2) { return default(decimal); }
+        public static decimal Ceiling(decimal d) { return default(decimal); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int Compare(decimal d1, decimal d2) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public int CompareTo(decimal value) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public int CompareTo(object value) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static decimal Divide(decimal d1, decimal d2) { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool Equals(decimal value) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool Equals(decimal d1, decimal d2) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override bool Equals(object value) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static decimal Floor(decimal d) { return default(decimal); }
+        public static int[] GetBits(decimal d) { return default(int[]); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static decimal Multiply(decimal d1, decimal d2) { return default(decimal); }
+        public static decimal Negate(decimal d) { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static decimal operator +(decimal d1, decimal d2) { return default(decimal); }
+        public static decimal operator --(decimal d) { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static decimal operator /(decimal d1, decimal d2) { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool operator ==(decimal d1, decimal d2) { return default(bool); }
+        public static explicit operator byte (decimal value) { return default(byte); }
+        public static explicit operator char (decimal value) { return default(char); }
+        public static explicit operator double (decimal value) { return default(double); }
+        public static explicit operator short (decimal value) { return default(short); }
+        public static explicit operator int (decimal value) { return default(int); }
+        public static explicit operator long (decimal value) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        public static explicit operator sbyte (decimal value) { return default(sbyte); }
+        public static explicit operator float (decimal value) { return default(float); }
+        [System.CLSCompliantAttribute(false)]
+        public static explicit operator ushort (decimal value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static explicit operator uint (decimal value) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static explicit operator ulong (decimal value) { return default(ulong); }
+        public static explicit operator decimal (double value) { return default(decimal); }
+        public static explicit operator decimal (float value) { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool operator >(decimal d1, decimal d2) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool operator >=(decimal d1, decimal d2) { return default(bool); }
+        public static implicit operator decimal (byte value) { return default(decimal); }
+        public static implicit operator decimal (char value) { return default(decimal); }
+        public static implicit operator decimal (short value) { return default(decimal); }
+        public static implicit operator decimal (int value) { return default(decimal); }
+        public static implicit operator decimal (long value) { return default(decimal); }
+        [System.CLSCompliantAttribute(false)]
+        public static implicit operator decimal (sbyte value) { return default(decimal); }
+        [System.CLSCompliantAttribute(false)]
+        public static implicit operator decimal (ushort value) { return default(decimal); }
+        [System.CLSCompliantAttribute(false)]
+        public static implicit operator decimal (uint value) { return default(decimal); }
+        [System.CLSCompliantAttribute(false)]
+        public static implicit operator decimal (ulong value) { return default(decimal); }
+        public static decimal operator ++(decimal d) { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool operator !=(decimal d1, decimal d2) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool operator <(decimal d1, decimal d2) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool operator <=(decimal d1, decimal d2) { return default(bool); }
+        public static decimal operator %(decimal d1, decimal d2) { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static decimal operator *(decimal d1, decimal d2) { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static decimal operator -(decimal d1, decimal d2) { return default(decimal); }
+        public static decimal operator -(decimal d) { return default(decimal); }
+        public static decimal operator +(decimal d) { return default(decimal); }
+        public static decimal Parse(string s) { return default(decimal); }
+        public static decimal Parse(string s, System.Globalization.NumberStyles style) { return default(decimal); }
+        public static decimal Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) { return default(decimal); }
+        public static decimal Parse(string s, System.IFormatProvider provider) { return default(decimal); }
+        public static decimal Remainder(decimal d1, decimal d2) { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static decimal Round(decimal d, int decimals) { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static decimal Subtract(decimal d1, decimal d2) { return default(decimal); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        public static byte ToByte(decimal value) { return default(byte); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double ToDouble(decimal d) { return default(double); }
+        public static short ToInt16(decimal value) { return default(short); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int ToInt32(decimal d) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static long ToInt64(decimal d) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte ToSByte(decimal value) { return default(sbyte); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static float ToSingle(decimal d) { return default(float); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort ToUInt16(decimal value) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static uint ToUInt32(decimal d) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static ulong ToUInt64(decimal d) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static decimal Truncate(decimal d) { return default(decimal); }
+        public static bool TryParse(string s, out decimal result) { result = default(decimal); return default(bool); }
+        public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out decimal result) { result = default(decimal); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(2))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Delegate
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected Delegate(object target, string method) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected Delegate(System.Type target, string method) { }
+        public System.Reflection.MethodInfo Method { get { return default(System.Reflection.MethodInfo); } }
+        public object Target { get { return default(object); } }
+        public static System.Delegate Combine(System.Delegate a, System.Delegate b) { return default(System.Delegate); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static System.Delegate Combine(params System.Delegate[] delegates) { return default(System.Delegate); }
+        protected virtual System.Delegate CombineImpl(System.Delegate d) { return default(System.Delegate); }
+        public static System.Delegate CreateDelegate(System.Type type, object firstArgument, System.Reflection.MethodInfo method) { return default(System.Delegate); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static System.Delegate CreateDelegate(System.Type type, object firstArgument, System.Reflection.MethodInfo method, bool throwOnBindFailure) { return default(System.Delegate); }
+        public static System.Delegate CreateDelegate(System.Type type, object target, string method) { return default(System.Delegate); }
+        public static System.Delegate CreateDelegate(System.Type type, object target, string method, bool ignoreCase) { return default(System.Delegate); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Delegate CreateDelegate(System.Type type, object target, string method, bool ignoreCase, bool throwOnBindFailure) { return default(System.Delegate); }
+        public static System.Delegate CreateDelegate(System.Type type, System.Reflection.MethodInfo method) { return default(System.Delegate); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static System.Delegate CreateDelegate(System.Type type, System.Reflection.MethodInfo method, bool throwOnBindFailure) { return default(System.Delegate); }
+        public static System.Delegate CreateDelegate(System.Type type, System.Type target, string method) { return default(System.Delegate); }
+        public static System.Delegate CreateDelegate(System.Type type, System.Type target, string method, bool ignoreCase) { return default(System.Delegate); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Delegate CreateDelegate(System.Type type, System.Type target, string method, bool ignoreCase, bool throwOnBindFailure) { return default(System.Delegate); }
+        public object DynamicInvoke(params object[] args) { return default(object); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public virtual System.Delegate[] GetInvocationList() { return default(System.Delegate[]); }
+        public static bool operator ==(System.Delegate d1, System.Delegate d2) { return default(bool); }
+        public static bool operator !=(System.Delegate d1, System.Delegate d2) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Delegate Remove(System.Delegate source, System.Delegate value) { return default(System.Delegate); }
+        public static System.Delegate RemoveAll(System.Delegate source, System.Delegate value) { return default(System.Delegate); }
+        protected virtual System.Delegate RemoveImpl(System.Delegate d) { return default(System.Delegate); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class DivideByZeroException : System.ArithmeticException
+    {
+        public DivideByZeroException() { }
+        public DivideByZeroException(string message) { }
+        public DivideByZeroException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class DllNotFoundException : System.TypeLoadException
+    {
+        public DllNotFoundException() { }
+        public DllNotFoundException(string message) { }
+        public DllNotFoundException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Double : System.IComparable, System.IComparable<double>, System.IConvertible, System.IEquatable<double>, System.IFormattable
+    {
+        public const double Epsilon = 4.94065645841247E-324;
+        public const double MaxValue = 1.7976931348623157E+308;
+        public const double MinValue = -1.7976931348623157E+308;
+        public const double NaN = 0.0 / 0.0;
+        public const double NegativeInfinity = -1.0 / 0.0;
+        public const double PositiveInfinity = 1.0 / 0.0;
+        public int CompareTo(double value) { return default(int); }
+        public int CompareTo(object value) { return default(int); }
+        public bool Equals(double obj) { return default(bool); }
+        public override bool Equals(object obj) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool IsInfinity(double d) { return default(bool); }
+        
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool IsNaN(double d) { return default(bool); }
+        
+        public static bool IsNegativeInfinity(double d) { return default(bool); }
+        
+        public static bool IsPositiveInfinity(double d) { return default(bool); }
+        
+        public static bool operator ==(double left, double right) { return default(bool); }
+        
+        public static bool operator >(double left, double right) { return default(bool); }
+        
+        public static bool operator >=(double left, double right) { return default(bool); }
+        
+        public static bool operator !=(double left, double right) { return default(bool); }
+        
+        public static bool operator <(double left, double right) { return default(bool); }
+        
+        public static bool operator <=(double left, double right) { return default(bool); }
+        public static double Parse(string s) { return default(double); }
+        public static double Parse(string s, System.Globalization.NumberStyles style) { return default(double); }
+        public static double Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) { return default(double); }
+        public static double Parse(string s, System.IFormatProvider provider) { return default(double); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        public static bool TryParse(string s, out double result) { result = default(double); return default(bool); }
+        public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out double result) { result = default(double); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class EntryPointNotFoundException : System.TypeLoadException
+    {
+        public EntryPointNotFoundException() { }
+        public EntryPointNotFoundException(string message) { }
+        public EntryPointNotFoundException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Enum : System.ValueType, System.IComparable, System.IConvertible, System.IFormattable
+    {
+        protected Enum() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public int CompareTo(object target) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public override bool Equals(object obj) { return default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static string Format(System.Type enumType, object value, string format) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetHashCode() { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static string GetName(System.Type enumType, object value) { return default(string); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static string[] GetNames(System.Type enumType) { return default(string[]); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static System.Type GetUnderlyingType(System.Type enumType) { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static System.Array GetValues(System.Type enumType) { return default(System.Array); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool HasFlag(System.Enum flag) { return default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static bool IsDefined(System.Type enumType, object value) { return default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static object Parse(System.Type enumType, string value) { return default(object); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static object Parse(System.Type enumType, string value, bool ignoreCase) { return default(object); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static object ToObject(System.Type enumType, object value) { return default(object); }
+        public override string ToString() { return default(string); }
+        [System.ObsoleteAttribute("The provider argument is not used. Please use ToString().")]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        public string ToString(string format) { return default(string); }
+        [System.ObsoleteAttribute("The provider argument is not used. Please use ToString(String).")]
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        public static bool TryParse<TEnum>(string value, out TEnum result) where TEnum : struct { result = default(TEnum); return default(bool); }
+        public static bool TryParse<TEnum>(string value, bool ignoreCase, out TEnum result) where TEnum : struct { result = default(TEnum); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public static partial class Environment
+    {
+        public static int CurrentManagedThreadId { get { return default(int); } }
+        public static int ExitCode { [System.Security.SecuritySafeCriticalAttribute][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(int); } [System.Security.SecuritySafeCriticalAttribute][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]set { } }
+        public static bool HasShutdownStarted { [System.Security.SecuritySafeCriticalAttribute][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(bool); } }
+        public static string MachineName { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public static string NewLine { get { return default(string); } }
+        public static System.OperatingSystem OSVersion { [System.Security.SecuritySafeCriticalAttribute]get { return default(System.OperatingSystem); } }
+        public static int ProcessorCount { [System.Security.SecuritySafeCriticalAttribute]get { return default(int); } }
+        public static string StackTrace { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public static int TickCount { [System.Security.SecuritySafeCriticalAttribute][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(int); } }
+        public static System.Version Version { get { return default(System.Version); } }
+        [System.Security.SecuritySafeCriticalAttribute]
+        [System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, Flags=(System.Security.Permissions.SecurityPermissionFlag)(2))]
+        public static void Exit(int exitCode) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string ExpandEnvironmentVariables(string name) { return default(string); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static void FailFast(string message) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static void FailFast(string message, System.Exception exception) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string[] GetCommandLineArgs() { return default(string[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string GetEnvironmentVariable(string variable) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Collections.IDictionary GetEnvironmentVariables() { return default(System.Collections.IDictionary); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void SetEnvironmentVariable(string variable, string value) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class EventArgs
+    {
+        public static readonly System.EventArgs Empty;
+        public EventArgs() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public delegate void EventHandler(object sender, System.EventArgs e);
+    public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class Exception
+    {
+        public Exception() { }
+        public Exception(string message) { }
+        public Exception(string message, System.Exception innerException) { }
+        public virtual System.Collections.IDictionary Data { [System.Security.SecuritySafeCriticalAttribute]get { return default(System.Collections.IDictionary); } }
+        public virtual string HelpLink { get { return default(string); } set { } }
+        public int HResult { get { return default(int); } protected set { } }
+        public System.Exception InnerException { get { return default(System.Exception); } }
+        public virtual string Message { get { return default(string); } }
+        public virtual string Source { [System.Security.SecurityCriticalAttribute]get { return default(string); } [System.Security.SecurityCriticalAttribute]set { } }
+        public virtual string StackTrace { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public virtual System.Exception GetBaseException() { return default(System.Exception); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+    }
+    [System.ObsoleteAttribute("This type previously indicated an unspecified fatal error in the runtime. The runtime no longer raises this exception so this type is obsolete.")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ExecutionEngineException : System.SystemException
+    {
+        internal ExecutionEngineException() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class FieldAccessException : System.MemberAccessException
+    {
+        public FieldAccessException() { }
+        public FieldAccessException(string message) { }
+        public FieldAccessException(string message, System.Exception inner) { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(16), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class FlagsAttribute : System.Attribute
+    {
+        public FlagsAttribute() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class FormatException : System.SystemException
+    {
+        public FormatException() { }
+        public FormatException(string message) { }
+        public FormatException(string message, System.Exception innerException) { }
+    }
+    public abstract partial class FormattableString : System.IFormattable
+    {
+        protected FormattableString() { }
+        public abstract int ArgumentCount { get; }
+        public abstract string Format { get; }
+        public abstract object GetArgument(int index);
+        public abstract object[] GetArguments();
+        public static string Invariant(System.FormattableString formattable) { return default(string); }
+        string System.IFormattable.ToString(string ignored, System.IFormatProvider formatProvider) { return default(string); }
+        public override string ToString() { return default(string); }
+        public abstract string ToString(System.IFormatProvider formatProvider);
+    }
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=2.0.5.0, Culture=Neutral, PublicKeyToken=7cec85d7bea7798e")]
+    public delegate TResult Func<out TResult>();
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=2.0.5.0, Culture=Neutral, PublicKeyToken=7cec85d7bea7798e")]
+    public delegate TResult Func<in T, out TResult>(T arg);
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=2.0.5.0, Culture=Neutral, PublicKeyToken=7cec85d7bea7798e")]
+    public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=2.0.5.0, Culture=Neutral, PublicKeyToken=7cec85d7bea7798e")]
+    public delegate TResult Func<in T1, in T2, in T3, out TResult>(T1 arg1, T2 arg2, T3 arg3);
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=2.0.5.0, Culture=Neutral, PublicKeyToken=7cec85d7bea7798e")]
+    public delegate TResult Func<in T1, in T2, in T3, in T4, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);
+    public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
+    public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, in T6, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
+    public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, in T6, in T7, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7);
+    public delegate TResult Func<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8, out TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8);
+    public static partial class GC
+    {
+        public static int MaxGeneration { [System.Security.SecuritySafeCriticalAttribute]get { return default(int); } }
+        [System.Security.SecurityCriticalAttribute]
+        public static void AddMemoryPressure(long bytesAllocated) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Collect() { }
+        public static void Collect(int generation) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Collect(int generation, System.GCCollectionMode mode) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Collect(int generation, System.GCCollectionMode mode, bool blocking) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Collect(int generation, System.GCCollectionMode mode, bool blocking, bool compacting) { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int CollectionCount(int generation) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static int GetGeneration(object obj) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static long GetTotalMemory(bool forceFullCollection) { return default(long); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+        public static void KeepAlive(object obj) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void RemoveMemoryPressure(long bytesAllocated) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void ReRegisterForFinalize(object obj) { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void SuppressFinalize(object obj) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void WaitForPendingFinalizers() { }
+    }
+    public enum GCCollectionMode
+    {
+        Default = 0,
+        Forced = 1,
+        Optimized = 2,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Guid : System.IComparable, System.IComparable<System.Guid>, System.IEquatable<System.Guid>, System.IFormattable
+    {
+        public static readonly System.Guid Empty;
+        public Guid(byte[] b) { throw new System.NotImplementedException(); }
+        public Guid(int a, short b, short c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k) { throw new System.NotImplementedException(); }
+        public Guid(int a, short b, short c, byte[] d) { throw new System.NotImplementedException(); }
+        public Guid(string g) { throw new System.NotImplementedException(); }
+        [System.CLSCompliantAttribute(false)]
+        public Guid(uint a, ushort b, ushort c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k) { throw new System.NotImplementedException(); }
+        public int CompareTo(System.Guid value) { return default(int); }
+        public int CompareTo(object value) { return default(int); }
+        public bool Equals(System.Guid g) { return default(bool); }
+        public override bool Equals(object o) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Guid NewGuid() { return default(System.Guid); }
+        public static bool operator ==(System.Guid a, System.Guid b) { return default(bool); }
+        public static bool operator !=(System.Guid a, System.Guid b) { return default(bool); }
+        public static System.Guid Parse(string input) { return default(System.Guid); }
+        public static System.Guid ParseExact(string input, string format) { return default(System.Guid); }
+        public byte[] ToByteArray() { return default(byte[]); }
+        public override string ToString() { return default(string); }
+        public string ToString(string format) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        public static bool TryParse(string input, out System.Guid result) { result = default(System.Guid); return default(bool); }
+        public static bool TryParseExact(string input, string format, out System.Guid result) { result = default(System.Guid); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IAsyncResult
+    {
+        object AsyncState { get; }
+        System.Threading.WaitHandle AsyncWaitHandle { get; }
+        bool CompletedSynchronously { get; }
+        bool IsCompleted { get; }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IComparable
+    {
+        int CompareTo(object obj);
+    }
+    public partial interface IComparable<in T>
+    {
+        int CompareTo(T other);
+    }
+    [System.CLSCompliantAttribute(false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IConvertible
+    {
+        System.TypeCode GetTypeCode();
+        bool ToBoolean(System.IFormatProvider provider);
+        byte ToByte(System.IFormatProvider provider);
+        char ToChar(System.IFormatProvider provider);
+        System.DateTime ToDateTime(System.IFormatProvider provider);
+        decimal ToDecimal(System.IFormatProvider provider);
+        double ToDouble(System.IFormatProvider provider);
+        short ToInt16(System.IFormatProvider provider);
+        int ToInt32(System.IFormatProvider provider);
+        long ToInt64(System.IFormatProvider provider);
+        sbyte ToSByte(System.IFormatProvider provider);
+        float ToSingle(System.IFormatProvider provider);
+        string ToString(System.IFormatProvider provider);
+        object ToType(System.Type conversionType, System.IFormatProvider provider);
+        ushort ToUInt16(System.IFormatProvider provider);
+        uint ToUInt32(System.IFormatProvider provider);
+        ulong ToUInt64(System.IFormatProvider provider);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface ICustomFormatter
+    {
+        string Format(string format, object arg, System.IFormatProvider formatProvider);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IDisposable
+    {
+        void Dispose();
+    }
+    public partial interface IEquatable<T>
+    {
+        bool Equals(T other);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IFormatProvider
+    {
+        object GetFormat(System.Type formatType);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IFormattable
+    {
+        string ToString(string format, System.IFormatProvider formatProvider);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class IndexOutOfRangeException : System.SystemException
+    {
+        public IndexOutOfRangeException() { }
+        public IndexOutOfRangeException(string message) { }
+        public IndexOutOfRangeException(string message, System.Exception innerException) { }
+    }
+    public sealed partial class InsufficientExecutionStackException : System.SystemException
+    {
+        public InsufficientExecutionStackException() { }
+        public InsufficientExecutionStackException(string message) { }
+        public InsufficientExecutionStackException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Int16 : System.IComparable, System.IComparable<short>, System.IConvertible, System.IEquatable<short>, System.IFormattable
+    {
+        public const short MaxValue = (short)32767;
+        public const short MinValue = (short)-32768;
+        public int CompareTo(short value) { return default(int); }
+        public int CompareTo(object value) { return default(int); }
+        
+        public bool Equals(short obj) { return default(bool); }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        public static short Parse(string s) { return default(short); }
+        public static short Parse(string s, System.Globalization.NumberStyles style) { return default(short); }
+        public static short Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) { return default(short); }
+        public static short Parse(string s, System.IFormatProvider provider) { return default(short); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        public string ToString(string format) { return default(string); }
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out short result) { result = default(short); return default(bool); }
+        public static bool TryParse(string s, out short result) { result = default(short); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Int32 : System.IComparable, System.IComparable<int>, System.IConvertible, System.IEquatable<int>, System.IFormattable
+    {
+        public const int MaxValue = 2147483647;
+        public const int MinValue = -2147483648;
+        public int CompareTo(int value) { return default(int); }
+        public int CompareTo(object value) { return default(int); }
+        
+        public bool Equals(int obj) { return default(bool); }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        public static int Parse(string s) { return default(int); }
+        public static int Parse(string s, System.Globalization.NumberStyles style) { return default(int); }
+        public static int Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) { return default(int); }
+        public static int Parse(string s, System.IFormatProvider provider) { return default(int); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out int result) { result = default(int); return default(bool); }
+        public static bool TryParse(string s, out int result) { result = default(int); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Int64 : System.IComparable, System.IComparable<long>, System.IConvertible, System.IEquatable<long>, System.IFormattable
+    {
+        public const long MaxValue = (long)9223372036854775807;
+        public const long MinValue = (long)-9223372036854775808;
+        public int CompareTo(long value) { return default(int); }
+        public int CompareTo(object value) { return default(int); }
+        
+        public bool Equals(long obj) { return default(bool); }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        public static long Parse(string s) { return default(long); }
+        public static long Parse(string s, System.Globalization.NumberStyles style) { return default(long); }
+        public static long Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) { return default(long); }
+        public static long Parse(string s, System.IFormatProvider provider) { return default(long); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out long result) { result = default(long); return default(bool); }
+        public static bool TryParse(string s, out long result) { result = default(long); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct IntPtr
+    {
+        public static readonly System.IntPtr Zero;
+        
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public IntPtr(int value) { throw new System.NotImplementedException(); }
+        
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public IntPtr(long value) { throw new System.NotImplementedException(); }
+        [System.CLSCompliantAttribute(false)]
+        
+        
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe IntPtr(void* value) { throw new System.NotImplementedException(); }
+        public static int Size { get { return default(int); } }
+        
+        
+        public static System.IntPtr Add(System.IntPtr pointer, int offset) { return default(System.IntPtr); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override bool Equals(object obj) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetHashCode() { return default(int); }
+        
+        
+        public static System.IntPtr operator +(System.IntPtr pointer, int offset) { return default(System.IntPtr); }
+        
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool operator ==(System.IntPtr value1, System.IntPtr value2) { return default(bool); }
+        
+        
+        public static explicit operator System.IntPtr (int value) { return default(System.IntPtr); }
+        
+        
+        public static explicit operator System.IntPtr (long value) { return default(System.IntPtr); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static explicit operator int (System.IntPtr value) { return default(int); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static explicit operator long (System.IntPtr value) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public unsafe static explicit operator void* (System.IntPtr value) { return default(void*); }
+        [System.CLSCompliantAttribute(false)]
+        
+        
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe static explicit operator System.IntPtr (void* value) { return default(System.IntPtr); }
+        
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool operator !=(System.IntPtr value1, System.IntPtr value2) { return default(bool); }
+        
+        
+        public static System.IntPtr operator -(System.IntPtr pointer, int offset) { return default(System.IntPtr); }
+        
+        
+        public static System.IntPtr Subtract(System.IntPtr pointer, int offset) { return default(System.IntPtr); }
+        
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public int ToInt32() { return default(int); }
+        
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public long ToInt64() { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public unsafe void* ToPointer() { return default(void*); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format) { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class InvalidCastException : System.SystemException
+    {
+        public InvalidCastException() { }
+        public InvalidCastException(string message) { }
+        public InvalidCastException(string message, System.Exception innerException) { }
+        public InvalidCastException(string message, int errorCode) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class InvalidOperationException : System.SystemException
+    {
+        public InvalidOperationException() { }
+        public InvalidOperationException(string message) { }
+        public InvalidOperationException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class InvalidProgramException : System.SystemException
+    {
+        public InvalidProgramException() { }
+        public InvalidProgramException(string message) { }
+        public InvalidProgramException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]
+    
+    public partial class InvalidTimeZoneException : System.Exception
+    {
+        public InvalidTimeZoneException() { }
+        public InvalidTimeZoneException(string message) { }
+        public InvalidTimeZoneException(string message, System.Exception innerException) { }
+    }
+    public partial interface IObservable<out T>
+    {
+        System.IDisposable Subscribe(System.IObserver<T> observer);
+    }
+    public partial interface IObserver<in T>
+    {
+        void OnCompleted();
+        void OnError(System.Exception error);
+        void OnNext(T value);
+    }
+    public partial interface IProgress<in T>
+    {
+        void Report(T value);
+    }
+    public partial interface IServiceProvider
+    {
+        object GetService(System.Type serviceType);
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("ThreadSafetyMode={Mode}, IsValueCreated={IsValueCreated}, IsValueFaulted={IsValueFaulted}, Value={ValueForDebugDisplay}")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public partial class Lazy<T>
+    {
+        public Lazy() { }
+        public Lazy(bool isThreadSafe) { }
+        public Lazy(System.Func<T> valueFactory) { }
+        public Lazy(System.Func<T> valueFactory, bool isThreadSafe) { }
+        public Lazy(System.Func<T> valueFactory, System.Threading.LazyThreadSafetyMode mode) { }
+        public Lazy(System.Threading.LazyThreadSafetyMode mode) { }
+        public bool IsValueCreated { get { return default(bool); } }
+        [System.Diagnostics.DebuggerBrowsableAttribute((System.Diagnostics.DebuggerBrowsableState)(0))]
+        public T Value { get { return default(T); } }
+        public override string ToString() { return default(string); }
+    }
+    public static partial class Math
+    {
+        public const double E = 2.7182818284590451;
+        public const double PI = 3.1415926535897931;
+        public static decimal Abs(decimal value) { return default(decimal); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Abs(double value) { return default(double); }
+        public static short Abs(short value) { return default(short); }
+        public static int Abs(int value) { return default(int); }
+        public static long Abs(long value) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte Abs(sbyte value) { return default(sbyte); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static float Abs(float value) { return default(float); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Acos(double d) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Asin(double d) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Atan(double d) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Atan2(double y, double x) { return default(double); }
+        public static decimal Ceiling(decimal d) { return default(decimal); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Ceiling(double a) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Cos(double d) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Cosh(double value) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Exp(double d) { return default(double); }
+        public static decimal Floor(decimal d) { return default(decimal); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Floor(double d) { return default(double); }
+        public static double IEEERemainder(double x, double y) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Log(double d) { return default(double); }
+        public static double Log(double a, double newBase) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Log10(double d) { return default(double); }
+        
+        
+        public static byte Max(byte val1, byte val2) { return default(byte); }
+        
+        public static decimal Max(decimal val1, decimal val2) { return default(decimal); }
+        
+        public static double Max(double val1, double val2) { return default(double); }
+        
+        
+        public static short Max(short val1, short val2) { return default(short); }
+        
+        
+        public static int Max(int val1, int val2) { return default(int); }
+        
+        
+        public static long Max(long val1, long val2) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        
+        
+        public static sbyte Max(sbyte val1, sbyte val2) { return default(sbyte); }
+        
+        public static float Max(float val1, float val2) { return default(float); }
+        [System.CLSCompliantAttribute(false)]
+        
+        
+        public static ushort Max(ushort val1, ushort val2) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        
+        
+        public static uint Max(uint val1, uint val2) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        
+        
+        public static ulong Max(ulong val1, ulong val2) { return default(ulong); }
+        
+        
+        public static byte Min(byte val1, byte val2) { return default(byte); }
+        
+        public static decimal Min(decimal val1, decimal val2) { return default(decimal); }
+        
+        public static double Min(double val1, double val2) { return default(double); }
+        
+        
+        public static short Min(short val1, short val2) { return default(short); }
+        
+        
+        public static int Min(int val1, int val2) { return default(int); }
+        
+        
+        public static long Min(long val1, long val2) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        
+        
+        public static sbyte Min(sbyte val1, sbyte val2) { return default(sbyte); }
+        
+        public static float Min(float val1, float val2) { return default(float); }
+        [System.CLSCompliantAttribute(false)]
+        
+        
+        public static ushort Min(ushort val1, ushort val2) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        
+        
+        public static uint Min(uint val1, uint val2) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        
+        
+        public static ulong Min(ulong val1, ulong val2) { return default(ulong); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Pow(double x, double y) { return default(double); }
+        public static decimal Round(decimal d) { return default(decimal); }
+        public static decimal Round(decimal d, int decimals) { return default(decimal); }
+        public static decimal Round(decimal d, int decimals, System.MidpointRounding mode) { return default(decimal); }
+        public static decimal Round(decimal d, System.MidpointRounding mode) { return default(decimal); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Round(double a) { return default(double); }
+        public static double Round(double value, int digits) { return default(double); }
+        public static double Round(double value, int digits, System.MidpointRounding mode) { return default(double); }
+        public static double Round(double value, System.MidpointRounding mode) { return default(double); }
+        public static int Sign(decimal value) { return default(int); }
+        public static int Sign(double value) { return default(int); }
+        public static int Sign(short value) { return default(int); }
+        public static int Sign(int value) { return default(int); }
+        public static int Sign(long value) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        public static int Sign(sbyte value) { return default(int); }
+        public static int Sign(float value) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Sin(double a) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Sinh(double value) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static double Sqrt(double d) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Tan(double a) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Tanh(double value) { return default(double); }
+        public static decimal Truncate(decimal d) { return default(decimal); }
+        public static double Truncate(double d) { return default(double); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class MemberAccessException : System.SystemException
+    {
+        public MemberAccessException() { }
+        public MemberAccessException(string message) { }
+        public MemberAccessException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class MethodAccessException : System.MemberAccessException
+    {
+        public MethodAccessException() { }
+        public MethodAccessException(string message) { }
+        public MethodAccessException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum MidpointRounding
+    {
+        AwayFromZero = 1,
+        ToEven = 0,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class MissingFieldException : System.MissingMemberException
+    {
+        public MissingFieldException() { }
+        public MissingFieldException(string message) { }
+        public MissingFieldException(string message, System.Exception inner) { }
+        public override string Message { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class MissingMemberException : System.MemberAccessException
+    {
+        public MissingMemberException() { }
+        public MissingMemberException(string message) { }
+        public MissingMemberException(string message, System.Exception inner) { }
+        public override string Message { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class MissingMethodException : System.MissingMemberException
+    {
+        public MissingMethodException() { }
+        public MissingMethodException(string message) { }
+        public MissingMethodException(string message, System.Exception inner) { }
+        public override string Message { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class MTAThreadAttribute : System.Attribute
+    {
+        public MTAThreadAttribute() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class MulticastDelegate : System.Delegate
+    {
+        protected MulticastDelegate(object target, string method) : base (default(object), default(string)) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected sealed override System.Delegate CombineImpl(System.Delegate follow) { return default(System.Delegate); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public sealed override bool Equals(object obj) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public sealed override int GetHashCode() { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public sealed override System.Delegate[] GetInvocationList() { return default(System.Delegate[]); }
+        public static bool operator ==(System.MulticastDelegate d1, System.MulticastDelegate d2) { return default(bool); }
+        public static bool operator !=(System.MulticastDelegate d1, System.MulticastDelegate d2) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected sealed override System.Delegate RemoveImpl(System.Delegate value) { return default(System.Delegate); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class MulticastNotSupportedException : System.SystemException
+    {
+        public MulticastNotSupportedException() { }
+        public MulticastNotSupportedException(string message) { }
+        public MulticastNotSupportedException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class NotFiniteNumberException : System.ArithmeticException
+    {
+        public NotFiniteNumberException() { }
+        public NotFiniteNumberException(string message) { }
+        public NotFiniteNumberException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class NotImplementedException : System.SystemException
+    {
+        public NotImplementedException() { }
+        public NotImplementedException(string message) { }
+        public NotImplementedException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class NotSupportedException : System.SystemException
+    {
+        public NotSupportedException() { }
+        public NotSupportedException(string message) { }
+        public NotSupportedException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public static partial class Nullable
+    {
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static int Compare<T>(System.Nullable<T> n1, System.Nullable<T> n2) where T : struct { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static bool Equals<T>(System.Nullable<T> n1, System.Nullable<T> n2) where T : struct { return default(bool); }
+        public static System.Type GetUnderlyingType(System.Type nullableType) { return default(System.Type); }
+    }
+    
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Nullable<T> where T : struct
+    {
+        
+        public Nullable(T value) { throw new System.NotImplementedException(); }
+        public bool HasValue { get { return default(bool); } }
+        public T Value { get { return default(T); } }
+        public override bool Equals(object other) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        
+        public T GetValueOrDefault() { return default(T); }
+        
+        public T GetValueOrDefault(T defaultValue) { return default(T); }
+        
+        public static explicit operator T (System.Nullable<T> value) { return default(T); }
+        
+        public static implicit operator System.Nullable<T> (T value) { return default(System.Nullable<T>); }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class NullReferenceException : System.SystemException
+    {
+        public NullReferenceException() { }
+        public NullReferenceException(string message) { }
+        public NullReferenceException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(2))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class Object
+    {
+        
+        
+        public Object() { }
+        public virtual bool Equals(object obj) { return default(bool); }
+        public static bool Equals(object objA, object objB) { return default(bool); }
+        ~Object() { }
+        public virtual int GetHashCode() { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public System.Type GetType() { return default(System.Type); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        protected object MemberwiseClone() { return default(object); }
+        
+        
+        public static bool ReferenceEquals(object objA, object objB) { return default(bool); }
+        public virtual string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ObjectDisposedException : System.InvalidOperationException
+    {
+        public ObjectDisposedException(string objectName) { }
+        public ObjectDisposedException(string message, System.Exception innerException) { }
+        public ObjectDisposedException(string objectName, string message) { }
+        public override string Message { get { return default(string); } }
+        public string ObjectName { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(6140), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ObsoleteAttribute : System.Attribute
+    {
+        public ObsoleteAttribute() { }
+        public ObsoleteAttribute(string message) { }
+        public ObsoleteAttribute(string message, bool error) { }
+        public bool IsError { get { return default(bool); } }
+        public string Message { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class OperatingSystem
+    {
+        public OperatingSystem(System.PlatformID platform, System.Version version) { }
+        public System.PlatformID Platform { get { return default(System.PlatformID); } }
+        public System.Version Version { get { return default(System.Version); } }
+        public object Clone() { return default(object); }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class OperationCanceledException : System.SystemException
+    {
+        public OperationCanceledException() { }
+        public OperationCanceledException(string message) { }
+        public OperationCanceledException(string message, System.Exception innerException) { }
+        public OperationCanceledException(string message, System.Exception innerException, System.Threading.CancellationToken token) { }
+        public OperationCanceledException(string message, System.Threading.CancellationToken token) { }
+        public OperationCanceledException(System.Threading.CancellationToken token) { }
+        public System.Threading.CancellationToken CancellationToken { get { return default(System.Threading.CancellationToken); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class OutOfMemoryException : System.SystemException
+    {
+        public OutOfMemoryException() { }
+        public OutOfMemoryException(string message) { }
+        public OutOfMemoryException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class OverflowException : System.ArithmeticException
+    {
+        public OverflowException() { }
+        public OverflowException(string message) { }
+        public OverflowException(string message, System.Exception innerException) { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2048), Inherited=true, AllowMultiple=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ParamArrayAttribute : System.Attribute
+    {
+        public ParamArrayAttribute() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum PlatformID
+    {
+        MacOSX = 6,
+        Unix = 4,
+        Win32NT = 2,
+        Win32S = 0,
+        Win32Windows = 1,
+        WinCE = 3,
+        Xbox = 5,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class PlatformNotSupportedException : System.NotSupportedException
+    {
+        public PlatformNotSupportedException() { }
+        public PlatformNotSupportedException(string message) { }
+        public PlatformNotSupportedException(string message, System.Exception inner) { }
+    }
+    public delegate bool Predicate<in T>(T obj);
+    public partial class Progress<T> : System.IProgress<T>
+    {
+        public Progress() { }
+        public Progress(System.Action<T> handler) { }
+        public event System.EventHandler<T> ProgressChanged { add { } remove { } }
+        protected virtual void OnReport(T value) { }
+        void System.IProgress<T>.Report(T value) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class Random
+    {
+        public Random() { }
+        public Random(int Seed) { }
+        public virtual int Next() { return default(int); }
+        public virtual int Next(int maxValue) { return default(int); }
+        public virtual int Next(int minValue, int maxValue) { return default(int); }
+        public virtual void NextBytes(byte[] buffer) { }
+        public virtual double NextDouble() { return default(double); }
+        protected virtual double Sample() { return default(double); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class RankException : System.SystemException
+    {
+        public RankException() { }
+        public RankException(string message) { }
+        public RankException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct RuntimeArgumentHandle
+    {
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct RuntimeFieldHandle
+    {
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override bool Equals(object obj) { return default(bool); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool Equals(System.RuntimeFieldHandle handle) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.RuntimeFieldHandle left, System.RuntimeFieldHandle right) { return default(bool); }
+        public static bool operator !=(System.RuntimeFieldHandle left, System.RuntimeFieldHandle right) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct RuntimeMethodHandle
+    {
+        public System.IntPtr Value { [System.Security.SecurityCriticalAttribute]get { return default(System.IntPtr); } }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override bool Equals(object obj) { return default(bool); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool Equals(System.RuntimeMethodHandle handle) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.RuntimeMethodHandle left, System.RuntimeMethodHandle right) { return default(bool); }
+        public static bool operator !=(System.RuntimeMethodHandle left, System.RuntimeMethodHandle right) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct RuntimeTypeHandle
+    {
+        public System.IntPtr Value { [System.Security.SecurityCriticalAttribute]get { return default(System.IntPtr); } }
+        
+        public override bool Equals(object obj) { return default(bool); }
+        
+        public bool Equals(System.RuntimeTypeHandle handle) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(object left, System.RuntimeTypeHandle right) { return default(bool); }
+        public static bool operator ==(System.RuntimeTypeHandle left, object right) { return default(bool); }
+        public static bool operator !=(object left, System.RuntimeTypeHandle right) { return default(bool); }
+        public static bool operator !=(System.RuntimeTypeHandle left, object right) { return default(bool); }
+    }
+    [System.CLSCompliantAttribute(false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct SByte : System.IComparable, System.IComparable<sbyte>, System.IConvertible, System.IEquatable<sbyte>, System.IFormattable
+    {
+        public const sbyte MaxValue = (sbyte)127;
+        public const sbyte MinValue = (sbyte)-128;
+        public int CompareTo(object obj) { return default(int); }
+        public int CompareTo(sbyte value) { return default(int); }
+        public override bool Equals(object obj) { return default(bool); }
+        
+        public bool Equals(sbyte obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte Parse(string s) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte Parse(string s, System.Globalization.NumberStyles style) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) { return default(sbyte); }
+        [System.CLSCompliantAttribute(false)]
+        public static sbyte Parse(string s, System.IFormatProvider provider) { return default(sbyte); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        public string ToString(string format) { return default(string); }
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out sbyte result) { result = default(sbyte); return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool TryParse(string s, out sbyte result) { result = default(sbyte); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Single : System.IComparable, System.IComparable<float>, System.IConvertible, System.IEquatable<float>, System.IFormattable
+    {
+        public const float Epsilon = 1.401298E-45f;
+        public const float MaxValue = 3.40282347E+38f;
+        public const float MinValue = -3.40282347E+38f;
+        public const float NaN = 0.0f / 0.0f;
+        public const float NegativeInfinity = -1.0f / 0.0f;
+        public const float PositiveInfinity = 1.0f / 0.0f;
+        public int CompareTo(object value) { return default(int); }
+        public int CompareTo(float value) { return default(int); }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(float obj) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool IsInfinity(float f) { return default(bool); }
+        
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool IsNaN(float f) { return default(bool); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool IsNegativeInfinity(float f) { return default(bool); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool IsPositiveInfinity(float f) { return default(bool); }
+        
+        public static bool operator ==(float left, float right) { return default(bool); }
+        
+        public static bool operator >(float left, float right) { return default(bool); }
+        
+        public static bool operator >=(float left, float right) { return default(bool); }
+        
+        public static bool operator !=(float left, float right) { return default(bool); }
+        
+        public static bool operator <(float left, float right) { return default(bool); }
+        
+        public static bool operator <=(float left, float right) { return default(bool); }
+        public static float Parse(string s) { return default(float); }
+        public static float Parse(string s, System.Globalization.NumberStyles style) { return default(float); }
+        public static float Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) { return default(float); }
+        public static float Parse(string s, System.IFormatProvider provider) { return default(float); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out float result) { result = default(float); return default(bool); }
+        public static bool TryParse(string s, out float result) { result = default(float); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class StackOverflowException : System.SystemException
+    {
+        public StackOverflowException() { }
+        public StackOverflowException(string message) { }
+        public StackOverflowException(string message, System.Exception innerException) { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class STAThreadAttribute : System.Attribute
+    {
+        public STAThreadAttribute() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class String : System.Collections.Generic.IEnumerable<char>, System.Collections.IEnumerable, System.IComparable, System.IComparable<string>, System.IConvertible, System.IEquatable<string>
+    {
+        public static readonly string Empty;
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe String(char* value) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe String(char* value, int startIndex, int length) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public String(char c, int count) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public String(char[] value) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public String(char[] value, int startIndex, int length) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe String(sbyte* value) { }
+        [System.Runtime.CompilerServices.IndexerName("Chars")]
+        public char this[int index] { [System.Security.SecuritySafeCriticalAttribute][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(char); } }
+        public int Length { [System.Security.SecuritySafeCriticalAttribute][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(int); } }
+        public static int Compare(string strA, int indexA, string strB, int indexB, int length) { return default(int); }
+        public static int Compare(string strA, int indexA, string strB, int indexB, int length, System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int Compare(string strA, int indexA, string strB, int indexB, int length, System.StringComparison comparisonType) { return default(int); }
+        public static int Compare(string strA, string strB) { return default(int); }
+        public static int Compare(string strA, string strB, bool ignoreCase) { return default(int); }
+        public static int Compare(string strA, string strB, System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int Compare(string strA, string strB, System.StringComparison comparisonType) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int CompareOrdinal(string strA, int indexA, string strB, int indexB, int length) { return default(int); }
+        public static int CompareOrdinal(string strA, string strB) { return default(int); }
+        public int CompareTo(object value) { return default(int); }
+        public int CompareTo(string strB) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public static string Concat(System.Collections.Generic.IEnumerable<string> values) { return default(string); }
+        public static string Concat(object arg0) { return default(string); }
+        public static string Concat(object arg0, object arg1) { return default(string); }
+        public static string Concat(object arg0, object arg1, object arg2) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string Concat(params object[] args) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string Concat(string str0, string str1) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string Concat(string str0, string str1, string str2) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string Concat(string str0, string str1, string str2, string str3) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string Concat(params string[] values) { return default(string); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public static string Concat<T>(System.Collections.Generic.IEnumerable<T> values) { return default(string); }
+        public bool Contains(string value) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string Copy(string str) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count) { }
+        public bool EndsWith(string value) { return default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool EndsWith(string value, System.StringComparison comparisonType) { return default(bool); }
+        
+        public override bool Equals(object obj) { return default(bool); }
+        
+        public bool Equals(string value) { return default(bool); }
+        public static bool Equals(string a, string b) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool Equals(string a, string b, System.StringComparison comparisonType) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool Equals(string value, System.StringComparison comparisonType) { return default(bool); }
+        public static string Format(System.IFormatProvider provider, string format, object arg0) { return default(string); }
+        public static string Format(System.IFormatProvider provider, string format, object arg0, object arg1) { return default(string); }
+        public static string Format(System.IFormatProvider provider, string format, object arg0, object arg1, object arg2) { return default(string); }
+        public static string Format(System.IFormatProvider provider, string format, params object[] args) { return default(string); }
+        public static string Format(string format, object arg0) { return default(string); }
+        public static string Format(string format, object arg0, object arg1) { return default(string); }
+        public static string Format(string format, object arg0, object arg1, object arg2) { return default(string); }
+        public static string Format(string format, params object[] args) { return default(string); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        public int IndexOf(char value) { return default(int); }
+        public int IndexOf(char value, int startIndex) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public int IndexOf(char value, int startIndex, int count) { return default(int); }
+        public int IndexOf(string value) { return default(int); }
+        public int IndexOf(string value, int startIndex) { return default(int); }
+        public int IndexOf(string value, int startIndex, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public int IndexOf(string value, int startIndex, int count, System.StringComparison comparisonType) { return default(int); }
+        public int IndexOf(string value, int startIndex, System.StringComparison comparisonType) { return default(int); }
+        public int IndexOf(string value, System.StringComparison comparisonType) { return default(int); }
+        public int IndexOfAny(char[] anyOf) { return default(int); }
+        public int IndexOfAny(char[] anyOf, int startIndex) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public int IndexOfAny(char[] anyOf, int startIndex, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string Insert(int startIndex, string value) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string Intern(string str) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string IsInterned(string str) { return default(string); }
+        public static bool IsNullOrEmpty(string value) { return default(bool); }
+        public static bool IsNullOrWhiteSpace(string value) { return default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public static string Join(string separator, System.Collections.Generic.IEnumerable<string> values) { return default(string); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public static string Join(string separator, params object[] values) { return default(string); }
+        public static string Join(string separator, params string[] value) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string Join(string separator, string[] value, int startIndex, int count) { return default(string); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public static string Join<T>(string separator, System.Collections.Generic.IEnumerable<T> values) { return default(string); }
+        public int LastIndexOf(char value) { return default(int); }
+        public int LastIndexOf(char value, int startIndex) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public int LastIndexOf(char value, int startIndex, int count) { return default(int); }
+        public int LastIndexOf(string value) { return default(int); }
+        public int LastIndexOf(string value, int startIndex) { return default(int); }
+        public int LastIndexOf(string value, int startIndex, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public int LastIndexOf(string value, int startIndex, int count, System.StringComparison comparisonType) { return default(int); }
+        public int LastIndexOf(string value, int startIndex, System.StringComparison comparisonType) { return default(int); }
+        public int LastIndexOf(string value, System.StringComparison comparisonType) { return default(int); }
+        public int LastIndexOfAny(char[] anyOf) { return default(int); }
+        public int LastIndexOfAny(char[] anyOf, int startIndex) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public int LastIndexOfAny(char[] anyOf, int startIndex, int count) { return default(int); }
+        public static bool operator ==(string a, string b) { return default(bool); }
+        public static bool operator !=(string a, string b) { return default(bool); }
+        public string PadLeft(int totalWidth) { return default(string); }
+        public string PadLeft(int totalWidth, char paddingChar) { return default(string); }
+        public string PadRight(int totalWidth) { return default(string); }
+        public string PadRight(int totalWidth, char paddingChar) { return default(string); }
+        public string Remove(int startIndex) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string Remove(int startIndex, int count) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string Replace(char oldChar, char newChar) { return default(string); }
+        public string Replace(string oldValue, string newValue) { return default(string); }
+        public string[] Split(params char[] separator) { return default(string[]); }
+        public string[] Split(char[] separator, int count) { return default(string[]); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public string[] Split(char[] separator, int count, System.StringSplitOptions options) { return default(string[]); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public string[] Split(char[] separator, System.StringSplitOptions options) { return default(string[]); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public string[] Split(string[] separator, int count, System.StringSplitOptions options) { return default(string[]); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public string[] Split(string[] separator, System.StringSplitOptions options) { return default(string[]); }
+        public bool StartsWith(string value) { return default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool StartsWith(string value, System.StringComparison comparisonType) { return default(bool); }
+        public string Substring(int startIndex) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string Substring(int startIndex, int length) { return default(string); }
+        System.Collections.Generic.IEnumerator<char> System.Collections.Generic.IEnumerable<System.Char>.GetEnumerator() { return default(System.Collections.Generic.IEnumerator<char>); }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public char[] ToCharArray() { return default(char[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public char[] ToCharArray(int startIndex, int length) { return default(char[]); }
+        public string ToLower() { return default(string); }
+        public string ToLower(System.Globalization.CultureInfo culture) { return default(string); }
+        public string ToLowerInvariant() { return default(string); }
+        public override string ToString() { return default(string); }
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        public string ToUpper() { return default(string); }
+        public string ToUpper(System.Globalization.CultureInfo culture) { return default(string); }
+        public string ToUpperInvariant() { return default(string); }
+        public string Trim() { return default(string); }
+        public string Trim(params char[] trimChars) { return default(string); }
+        public string TrimEnd(params char[] trimChars) { return default(string); }
+        public string TrimStart(params char[] trimChars) { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class StringComparer : System.Collections.Generic.IComparer<string>, System.Collections.Generic.IEqualityComparer<string>, System.Collections.IComparer, System.Collections.IEqualityComparer
+    {
+        protected StringComparer() { }
+        public static System.StringComparer CurrentCulture { get { return default(System.StringComparer); } }
+        public static System.StringComparer CurrentCultureIgnoreCase { get { return default(System.StringComparer); } }
+        public static System.StringComparer InvariantCulture { get { return default(System.StringComparer); } }
+        public static System.StringComparer InvariantCultureIgnoreCase { get { return default(System.StringComparer); } }
+        public static System.StringComparer Ordinal { get { return default(System.StringComparer); } }
+        public static System.StringComparer OrdinalIgnoreCase { get { return default(System.StringComparer); } }
+        public int Compare(object x, object y) { return default(int); }
+        public abstract int Compare(string x, string y);
+        public static System.StringComparer Create(System.Globalization.CultureInfo culture, bool ignoreCase) { return default(System.StringComparer); }
+        public new bool Equals(object x, object y) { return default(bool); }
+        public abstract bool Equals(string x, string y);
+        public int GetHashCode(object obj) { return default(int); }
+        public abstract int GetHashCode(string obj);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum StringComparison
+    {
+        CurrentCulture = 0,
+        CurrentCultureIgnoreCase = 1,
+        InvariantCulture = 2,
+        InvariantCultureIgnoreCase = 3,
+        Ordinal = 4,
+        OrdinalIgnoreCase = 5,
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public enum StringSplitOptions
+    {
+        None = 0,
+        RemoveEmptyEntries = 1,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class SystemException : System.Exception
+    {
+        public SystemException() { }
+        public SystemException(string message) { }
+        public SystemException(string message, System.Exception innerException) { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(256), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ThreadStaticAttribute : System.Attribute
+    {
+        public ThreadStaticAttribute() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class TimeoutException : System.SystemException
+    {
+        public TimeoutException() { }
+        public TimeoutException(string message) { }
+        public TimeoutException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct TimeSpan : System.IComparable, System.IComparable<System.TimeSpan>, System.IEquatable<System.TimeSpan>, System.IFormattable
+    {
+        public static readonly System.TimeSpan MaxValue;
+        public static readonly System.TimeSpan MinValue;
+        public const long TicksPerDay = (long)864000000000;
+        public const long TicksPerHour = (long)36000000000;
+        public const long TicksPerMillisecond = (long)10000;
+        public const long TicksPerMinute = (long)600000000;
+        public const long TicksPerSecond = (long)10000000;
+        public static readonly System.TimeSpan Zero;
+        public TimeSpan(int hours, int minutes, int seconds) { throw new System.NotImplementedException(); }
+        public TimeSpan(int days, int hours, int minutes, int seconds) { throw new System.NotImplementedException(); }
+        public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds) { throw new System.NotImplementedException(); }
+        public TimeSpan(long ticks) { throw new System.NotImplementedException(); }
+        public int Days { get { return default(int); } }
+        public int Hours { get { return default(int); } }
+        public int Milliseconds { get { return default(int); } }
+        public int Minutes { get { return default(int); } }
+        public int Seconds { get { return default(int); } }
+        public long Ticks { get { return default(long); } }
+        public double TotalDays { get { return default(double); } }
+        public double TotalHours { get { return default(double); } }
+        public double TotalMilliseconds { get { return default(double); } }
+        public double TotalMinutes { get { return default(double); } }
+        public double TotalSeconds { get { return default(double); } }
+        public System.TimeSpan Add(System.TimeSpan ts) { return default(System.TimeSpan); }
+        public static int Compare(System.TimeSpan t1, System.TimeSpan t2) { return default(int); }
+        public int CompareTo(object value) { return default(int); }
+        public int CompareTo(System.TimeSpan value) { return default(int); }
+        public System.TimeSpan Duration() { return default(System.TimeSpan); }
+        public override bool Equals(object value) { return default(bool); }
+        public bool Equals(System.TimeSpan obj) { return default(bool); }
+        public static bool Equals(System.TimeSpan t1, System.TimeSpan t2) { return default(bool); }
+        public static System.TimeSpan FromDays(double value) { return default(System.TimeSpan); }
+        public static System.TimeSpan FromHours(double value) { return default(System.TimeSpan); }
+        public static System.TimeSpan FromMilliseconds(double value) { return default(System.TimeSpan); }
+        public static System.TimeSpan FromMinutes(double value) { return default(System.TimeSpan); }
+        public static System.TimeSpan FromSeconds(double value) { return default(System.TimeSpan); }
+        public static System.TimeSpan FromTicks(long value) { return default(System.TimeSpan); }
+        public override int GetHashCode() { return default(int); }
+        public System.TimeSpan Negate() { return default(System.TimeSpan); }
+        public static System.TimeSpan operator +(System.TimeSpan t1, System.TimeSpan t2) { return default(System.TimeSpan); }
+        public static bool operator ==(System.TimeSpan t1, System.TimeSpan t2) { return default(bool); }
+        public static bool operator >(System.TimeSpan t1, System.TimeSpan t2) { return default(bool); }
+        public static bool operator >=(System.TimeSpan t1, System.TimeSpan t2) { return default(bool); }
+        public static bool operator !=(System.TimeSpan t1, System.TimeSpan t2) { return default(bool); }
+        public static bool operator <(System.TimeSpan t1, System.TimeSpan t2) { return default(bool); }
+        public static bool operator <=(System.TimeSpan t1, System.TimeSpan t2) { return default(bool); }
+        public static System.TimeSpan operator -(System.TimeSpan t1, System.TimeSpan t2) { return default(System.TimeSpan); }
+        public static System.TimeSpan operator -(System.TimeSpan t) { return default(System.TimeSpan); }
+        public static System.TimeSpan operator +(System.TimeSpan t) { return default(System.TimeSpan); }
+        public static System.TimeSpan Parse(string s) { return default(System.TimeSpan); }
+        public static System.TimeSpan Parse(string input, System.IFormatProvider formatProvider) { return default(System.TimeSpan); }
+        public static System.TimeSpan ParseExact(string input, string format, System.IFormatProvider formatProvider) { return default(System.TimeSpan); }
+        public static System.TimeSpan ParseExact(string input, string format, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles) { return default(System.TimeSpan); }
+        public static System.TimeSpan ParseExact(string input, string[] formats, System.IFormatProvider formatProvider) { return default(System.TimeSpan); }
+        public static System.TimeSpan ParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles) { return default(System.TimeSpan); }
+        public System.TimeSpan Subtract(System.TimeSpan ts) { return default(System.TimeSpan); }
+        public override string ToString() { return default(string); }
+        public string ToString(string format) { return default(string); }
+        public string ToString(string format, System.IFormatProvider formatProvider) { return default(string); }
+        public static bool TryParse(string input, System.IFormatProvider formatProvider, out System.TimeSpan result) { result = default(System.TimeSpan); return default(bool); }
+        public static bool TryParse(string s, out System.TimeSpan result) { result = default(System.TimeSpan); return default(bool); }
+        public static bool TryParseExact(string input, string format, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles, out System.TimeSpan result) { result = default(System.TimeSpan); return default(bool); }
+        public static bool TryParseExact(string input, string format, System.IFormatProvider formatProvider, out System.TimeSpan result) { result = default(System.TimeSpan); return default(bool); }
+        public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles, out System.TimeSpan result) { result = default(System.TimeSpan); return default(bool); }
+        public static bool TryParseExact(string input, string[] formats, System.IFormatProvider formatProvider, out System.TimeSpan result) { result = default(System.TimeSpan); return default(bool); }
+    }
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]
+    
+    public sealed partial class TimeZoneInfo : System.IEquatable<System.TimeZoneInfo>
+    {
+        internal TimeZoneInfo() { }
+        public System.TimeSpan BaseUtcOffset { get { return default(System.TimeSpan); } }
+        public string DaylightName { get { return default(string); } }
+        public string DisplayName { get { return default(string); } }
+        public string Id { get { return default(string); } }
+        public static System.TimeZoneInfo Local { get { return default(System.TimeZoneInfo); } }
+        public string StandardName { get { return default(string); } }
+        public bool SupportsDaylightSavingTime { get { return default(bool); } }
+        public static System.TimeZoneInfo Utc { get { return default(System.TimeZoneInfo); } }
+        public static System.DateTime ConvertTime(System.DateTime dateTime, System.TimeZoneInfo destinationTimeZone) { return default(System.DateTime); }
+        public static System.DateTime ConvertTime(System.DateTime dateTime, System.TimeZoneInfo sourceTimeZone, System.TimeZoneInfo destinationTimeZone) { return default(System.DateTime); }
+        public static System.DateTimeOffset ConvertTime(System.DateTimeOffset dateTimeOffset, System.TimeZoneInfo destinationTimeZone) { return default(System.DateTimeOffset); }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.TimeZoneInfo other) { return default(bool); }
+        public static System.TimeZoneInfo FindSystemTimeZoneById(string id) { return default(System.TimeZoneInfo); }
+        public System.TimeSpan[] GetAmbiguousTimeOffsets(System.DateTime dateTime) { return default(System.TimeSpan[]); }
+        public System.TimeSpan[] GetAmbiguousTimeOffsets(System.DateTimeOffset dateTimeOffset) { return default(System.TimeSpan[]); }
+        public override int GetHashCode() { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Collections.ObjectModel.ReadOnlyCollection<System.TimeZoneInfo> GetSystemTimeZones() { return default(System.Collections.ObjectModel.ReadOnlyCollection<System.TimeZoneInfo>); }
+        public System.TimeSpan GetUtcOffset(System.DateTime dateTime) { return default(System.TimeSpan); }
+        public System.TimeSpan GetUtcOffset(System.DateTimeOffset dateTimeOffset) { return default(System.TimeSpan); }
+        public bool IsAmbiguousTime(System.DateTime dateTime) { return default(bool); }
+        public bool IsAmbiguousTime(System.DateTimeOffset dateTimeOffset) { return default(bool); }
+        public bool IsDaylightSavingTime(System.DateTime dateTime) { return default(bool); }
+        public bool IsDaylightSavingTime(System.DateTimeOffset dateTimeOffset) { return default(bool); }
+        public bool IsInvalidTime(System.DateTime dateTime) { return default(bool); }
+        public override string ToString() { return default(string); }
+        [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]
+        
+        public sealed partial class AdjustmentRule : System.IEquatable<System.TimeZoneInfo.AdjustmentRule>
+        {
+            internal AdjustmentRule() { }
+            public static System.TimeZoneInfo.AdjustmentRule CreateAdjustmentRule(System.DateTime dateStart, System.DateTime dateEnd, System.TimeSpan daylightDelta, System.TimeZoneInfo.TransitionTime daylightTransitionStart, System.TimeZoneInfo.TransitionTime daylightTransitionEnd) { return default(System.TimeZoneInfo.AdjustmentRule); }
+            public bool Equals(System.TimeZoneInfo.AdjustmentRule other) { return default(bool); }
+            public override int GetHashCode() { return default(int); }
+        }
+        [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]
+        
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        public partial struct TransitionTime : System.IEquatable<System.TimeZoneInfo.TransitionTime>
+        {
+            public override bool Equals(object obj) { return default(bool); }
+            public bool Equals(System.TimeZoneInfo.TransitionTime other) { return default(bool); }
+            public override int GetHashCode() { return default(int); }
+        }
+    }
+    public static partial class Tuple
+    {
+        public static System.Tuple<T1> Create<T1>(T1 item1) { return default(System.Tuple<T1>); }
+        public static System.Tuple<T1, T2> Create<T1, T2>(T1 item1, T2 item2) { return default(System.Tuple<T1, T2>); }
+        public static System.Tuple<T1, T2, T3> Create<T1, T2, T3>(T1 item1, T2 item2, T3 item3) { return default(System.Tuple<T1, T2, T3>); }
+        public static System.Tuple<T1, T2, T3, T4> Create<T1, T2, T3, T4>(T1 item1, T2 item2, T3 item3, T4 item4) { return default(System.Tuple<T1, T2, T3, T4>); }
+        public static System.Tuple<T1, T2, T3, T4, T5> Create<T1, T2, T3, T4, T5>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) { return default(System.Tuple<T1, T2, T3, T4, T5>); }
+        public static System.Tuple<T1, T2, T3, T4, T5, T6> Create<T1, T2, T3, T4, T5, T6>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) { return default(System.Tuple<T1, T2, T3, T4, T5, T6>); }
+        public static System.Tuple<T1, T2, T3, T4, T5, T6, T7> Create<T1, T2, T3, T4, T5, T6, T7>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) { return default(System.Tuple<T1, T2, T3, T4, T5, T6, T7>); }
+        public static System.Tuple<T1, T2, T3, T4, T5, T6, T7, System.Tuple<T8>> Create<T1, T2, T3, T4, T5, T6, T7, T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) { return default(System.Tuple<T1, T2, T3, T4, T5, T6, T7, System.Tuple<T8>>); }
+    }
+    public partial class Tuple<T1> : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable
+    {
+        public Tuple(T1 item1) { }
+        public T1 Item1 { get { return default(T1); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) { return default(int); }
+        bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) { return default(bool); }
+        int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) { return default(int); }
+        int System.IComparable.CompareTo(object obj) { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    public partial class Tuple<T1, T2> : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable
+    {
+        public Tuple(T1 item1, T2 item2) { }
+        public T1 Item1 { get { return default(T1); } }
+        public T2 Item2 { get { return default(T2); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) { return default(int); }
+        bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) { return default(bool); }
+        int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) { return default(int); }
+        int System.IComparable.CompareTo(object obj) { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    public partial class Tuple<T1, T2, T3> : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable
+    {
+        public Tuple(T1 item1, T2 item2, T3 item3) { }
+        public T1 Item1 { get { return default(T1); } }
+        public T2 Item2 { get { return default(T2); } }
+        public T3 Item3 { get { return default(T3); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) { return default(int); }
+        bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) { return default(bool); }
+        int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) { return default(int); }
+        int System.IComparable.CompareTo(object obj) { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    public partial class Tuple<T1, T2, T3, T4> : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable
+    {
+        public Tuple(T1 item1, T2 item2, T3 item3, T4 item4) { }
+        public T1 Item1 { get { return default(T1); } }
+        public T2 Item2 { get { return default(T2); } }
+        public T3 Item3 { get { return default(T3); } }
+        public T4 Item4 { get { return default(T4); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) { return default(int); }
+        bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) { return default(bool); }
+        int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) { return default(int); }
+        int System.IComparable.CompareTo(object obj) { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    public partial class Tuple<T1, T2, T3, T4, T5> : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable
+    {
+        public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5) { }
+        public T1 Item1 { get { return default(T1); } }
+        public T2 Item2 { get { return default(T2); } }
+        public T3 Item3 { get { return default(T3); } }
+        public T4 Item4 { get { return default(T4); } }
+        public T5 Item5 { get { return default(T5); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) { return default(int); }
+        bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) { return default(bool); }
+        int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) { return default(int); }
+        int System.IComparable.CompareTo(object obj) { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    public partial class Tuple<T1, T2, T3, T4, T5, T6> : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable
+    {
+        public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6) { }
+        public T1 Item1 { get { return default(T1); } }
+        public T2 Item2 { get { return default(T2); } }
+        public T3 Item3 { get { return default(T3); } }
+        public T4 Item4 { get { return default(T4); } }
+        public T5 Item5 { get { return default(T5); } }
+        public T6 Item6 { get { return default(T6); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) { return default(int); }
+        bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) { return default(bool); }
+        int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) { return default(int); }
+        int System.IComparable.CompareTo(object obj) { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    public partial class Tuple<T1, T2, T3, T4, T5, T6, T7> : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable
+    {
+        public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7) { }
+        public T1 Item1 { get { return default(T1); } }
+        public T2 Item2 { get { return default(T2); } }
+        public T3 Item3 { get { return default(T3); } }
+        public T4 Item4 { get { return default(T4); } }
+        public T5 Item5 { get { return default(T5); } }
+        public T6 Item6 { get { return default(T6); } }
+        public T7 Item7 { get { return default(T7); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) { return default(int); }
+        bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) { return default(bool); }
+        int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) { return default(int); }
+        int System.IComparable.CompareTo(object obj) { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    public partial class Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> : System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.IComparable
+    {
+        public Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest rest) { }
+        public T1 Item1 { get { return default(T1); } }
+        public T2 Item2 { get { return default(T2); } }
+        public T3 Item3 { get { return default(T3); } }
+        public T4 Item4 { get { return default(T4); } }
+        public T5 Item5 { get { return default(T5); } }
+        public T6 Item6 { get { return default(T6); } }
+        public T7 Item7 { get { return default(T7); } }
+        public TRest Rest { get { return default(TRest); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        int System.Collections.IStructuralComparable.CompareTo(object other, System.Collections.IComparer comparer) { return default(int); }
+        bool System.Collections.IStructuralEquatable.Equals(object other, System.Collections.IEqualityComparer comparer) { return default(bool); }
+        int System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer comparer) { return default(int); }
+        int System.IComparable.CompareTo(object obj) { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Type : System.Reflection.MemberInfo, System.Reflection.IReflect
+    {
+        public static readonly char Delimiter;
+        public static readonly System.Type[] EmptyTypes;
+        public static readonly System.Reflection.MemberFilter FilterNameIgnoreCase;
+        public static readonly object Missing;
+        protected Type() { }
+        public abstract System.Reflection.Assembly Assembly { get; }
+        public abstract string AssemblyQualifiedName { get; }
+        public System.Reflection.TypeAttributes Attributes { get { return default(System.Reflection.TypeAttributes); } }
+        public abstract System.Type BaseType { get; }
+        public virtual bool ContainsGenericParameters { get { return default(bool); } }
+        public virtual System.Reflection.MethodBase DeclaringMethod { get { return default(System.Reflection.MethodBase); } }
+        public override System.Type DeclaringType { get { return default(System.Type); } }
+        public static System.Reflection.Binder DefaultBinder { get { return default(System.Reflection.Binder); } }
+        public abstract string FullName { get; }
+        public virtual System.Reflection.GenericParameterAttributes GenericParameterAttributes { get { return default(System.Reflection.GenericParameterAttributes); } }
+        public virtual int GenericParameterPosition { get { return default(int); } }
+        public virtual System.Type[] GenericTypeArguments { get { return default(System.Type[]); } }
+        public abstract System.Guid GUID { get; }
+        public bool HasElementType { get { return default(bool); } }
+        public bool IsAbstract { get { return default(bool); } }
+        public bool IsAnsiClass { get { return default(bool); } }
+        public bool IsArray { get { return default(bool); } }
+        public bool IsAutoClass { get { return default(bool); } }
+        public bool IsAutoLayout { get { return default(bool); } }
+        public bool IsByRef { get { return default(bool); } }
+        public bool IsClass { get { return default(bool); } }
+        public bool IsCOMObject { get { return default(bool); } }
+        public virtual bool IsConstructedGenericType { get { return default(bool); } }
+        public bool IsEnum { get { return default(bool); } }
+        public bool IsExplicitLayout { get { return default(bool); } }
+        public virtual bool IsGenericParameter { get { return default(bool); } }
+        public virtual bool IsGenericType { get { return default(bool); } }
+        public virtual bool IsGenericTypeDefinition { get { return default(bool); } }
+        public bool IsImport { get { return default(bool); } }
+        public bool IsInterface { [System.Security.SecuritySafeCriticalAttribute]get { return default(bool); } }
+        public bool IsLayoutSequential { get { return default(bool); } }
+        public bool IsMarshalByRef { get { return default(bool); } }
+        public bool IsNested { get { return default(bool); } }
+        public bool IsNestedAssembly { get { return default(bool); } }
+        public bool IsNestedFamANDAssem { get { return default(bool); } }
+        public bool IsNestedFamily { get { return default(bool); } }
+        public bool IsNestedFamORAssem { get { return default(bool); } }
+        public bool IsNestedPrivate { get { return default(bool); } }
+        public bool IsNestedPublic { get { return default(bool); } }
+        public bool IsNotPublic { get { return default(bool); } }
+        public bool IsPointer { get { return default(bool); } }
+        public bool IsPrimitive { get { return default(bool); } }
+        public bool IsPublic { get { return default(bool); } }
+        public bool IsSealed { get { return default(bool); } }
+        public virtual bool IsSerializable { get { return default(bool); } }
+        public bool IsSpecialName { get { return default(bool); } }
+        public bool IsUnicodeClass { get { return default(bool); } }
+        public bool IsValueType { get { return default(bool); } }
+        public bool IsVisible { get { return default(bool); } }
+        public override System.Reflection.MemberTypes MemberType { get { return default(System.Reflection.MemberTypes); } }
+        public abstract new System.Reflection.Module Module { get; }
+        public abstract string Namespace { get; }
+        public override System.Type ReflectedType { get { return default(System.Type); } }
+        public virtual System.Runtime.InteropServices.StructLayoutAttribute StructLayoutAttribute { get { return default(System.Runtime.InteropServices.StructLayoutAttribute); } }
+        public virtual System.RuntimeTypeHandle TypeHandle { get { return default(System.RuntimeTypeHandle); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public System.Reflection.ConstructorInfo TypeInitializer { get { return default(System.Reflection.ConstructorInfo); } }
+        public abstract System.Type UnderlyingSystemType { get; }
+        public override bool Equals(object o) { return default(bool); }
+        public bool Equals(System.Type o) { return default(bool); }
+        public virtual System.Type[] FindInterfaces(System.Reflection.TypeFilter filter, object filterCriteria) { return default(System.Type[]); }
+        public virtual System.Reflection.MemberInfo[] FindMembers(System.Reflection.MemberTypes memberType, System.Reflection.BindingFlags bindingAttr, System.Reflection.MemberFilter filter, object filterCriteria) { return default(System.Reflection.MemberInfo[]); }
+        public virtual int GetArrayRank() { return default(int); }
+        protected abstract System.Reflection.TypeAttributes GetAttributeFlagsImpl();
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public System.Reflection.ConstructorInfo GetConstructor(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.ConstructorInfo); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public System.Reflection.ConstructorInfo GetConstructor(System.Type[] types) { return default(System.Reflection.ConstructorInfo); }
+        protected abstract System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers);
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public System.Reflection.ConstructorInfo[] GetConstructors() { return default(System.Reflection.ConstructorInfo[]); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public abstract System.Reflection.ConstructorInfo[] GetConstructors(System.Reflection.BindingFlags bindingAttr);
+        public virtual System.Reflection.MemberInfo[] GetDefaultMembers() { return default(System.Reflection.MemberInfo[]); }
+        public abstract System.Type GetElementType();
+        public virtual string GetEnumName(object value) { return default(string); }
+        public virtual string[] GetEnumNames() { return default(string[]); }
+        public virtual System.Type GetEnumUnderlyingType() { return default(System.Type); }
+        public virtual System.Array GetEnumValues() { return default(System.Array); }
+        public System.Reflection.EventInfo GetEvent(string name) { return default(System.Reflection.EventInfo); }
+        public abstract System.Reflection.EventInfo GetEvent(string name, System.Reflection.BindingFlags bindingAttr);
+        public virtual System.Reflection.EventInfo[] GetEvents() { return default(System.Reflection.EventInfo[]); }
+        public abstract System.Reflection.EventInfo[] GetEvents(System.Reflection.BindingFlags bindingAttr);
+        public System.Reflection.FieldInfo GetField(string name) { return default(System.Reflection.FieldInfo); }
+        public abstract System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr);
+        public System.Reflection.FieldInfo[] GetFields() { return default(System.Reflection.FieldInfo[]); }
+        public abstract System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingAttr);
+        public virtual System.Type[] GetGenericArguments() { return default(System.Type[]); }
+        public virtual System.Type[] GetGenericParameterConstraints() { return default(System.Type[]); }
+        public virtual System.Type GetGenericTypeDefinition() { return default(System.Type); }
+        public override int GetHashCode() { return default(int); }
+        public System.Type GetInterface(string name) { return default(System.Type); }
+        public abstract System.Type GetInterface(string name, bool ignoreCase);
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public virtual System.Reflection.InterfaceMapping GetInterfaceMap(System.Type interfaceType) { return default(System.Reflection.InterfaceMapping); }
+        public abstract System.Type[] GetInterfaces();
+        public System.Reflection.MemberInfo[] GetMember(string name) { return default(System.Reflection.MemberInfo[]); }
+        public virtual System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MemberInfo[]); }
+        public virtual System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.MemberTypes type, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MemberInfo[]); }
+        public System.Reflection.MemberInfo[] GetMembers() { return default(System.Reflection.MemberInfo[]); }
+        public abstract System.Reflection.MemberInfo[] GetMembers(System.Reflection.BindingFlags bindingAttr);
+        public System.Reflection.MethodInfo GetMethod(string name) { return default(System.Reflection.MethodInfo); }
+        public System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MethodInfo); }
+        public System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.MethodInfo); }
+        public System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.MethodInfo); }
+        public System.Reflection.MethodInfo GetMethod(string name, System.Type[] types) { return default(System.Reflection.MethodInfo); }
+        public System.Reflection.MethodInfo GetMethod(string name, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.MethodInfo); }
+        protected abstract System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers);
+        public System.Reflection.MethodInfo[] GetMethods() { return default(System.Reflection.MethodInfo[]); }
+        public abstract System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingAttr);
+        public System.Type GetNestedType(string name) { return default(System.Type); }
+        public abstract System.Type GetNestedType(string name, System.Reflection.BindingFlags bindingAttr);
+        public System.Type[] GetNestedTypes() { return default(System.Type[]); }
+        public abstract System.Type[] GetNestedTypes(System.Reflection.BindingFlags bindingAttr);
+        public System.Reflection.PropertyInfo[] GetProperties() { return default(System.Reflection.PropertyInfo[]); }
+        public abstract System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr);
+        public System.Reflection.PropertyInfo GetProperty(string name) { return default(System.Reflection.PropertyInfo); }
+        public System.Reflection.PropertyInfo GetProperty(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.PropertyInfo); }
+        public System.Reflection.PropertyInfo GetProperty(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.PropertyInfo); }
+        public System.Reflection.PropertyInfo GetProperty(string name, System.Type returnType) { return default(System.Reflection.PropertyInfo); }
+        public System.Reflection.PropertyInfo GetProperty(string name, System.Type returnType, System.Type[] types) { return default(System.Reflection.PropertyInfo); }
+        public System.Reflection.PropertyInfo GetProperty(string name, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.PropertyInfo); }
+        public System.Reflection.PropertyInfo GetProperty(string name, System.Type[] types) { return default(System.Reflection.PropertyInfo); }
+        protected abstract System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static System.Type GetType(string typeName) { return default(System.Type); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static System.Type GetType(string typeName, bool throwOnError) { return default(System.Type); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static System.Type GetType(string typeName, bool throwOnError, bool ignoreCase) { return default(System.Type); }
+        public static System.TypeCode GetTypeCode(System.Type type) { return default(System.TypeCode); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static System.Type GetTypeFromHandle(System.RuntimeTypeHandle handle) { return default(System.Type); }
+        public static System.RuntimeTypeHandle GetTypeHandle(object o) { return default(System.RuntimeTypeHandle); }
+        protected abstract bool HasElementTypeImpl();
+        [System.Diagnostics.DebuggerHiddenAttribute]
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args) { return default(object); }
+        public abstract object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters);
+        protected abstract bool IsArrayImpl();
+        public virtual bool IsAssignableFrom(System.Type c) { return default(bool); }
+        protected abstract bool IsByRefImpl();
+        protected abstract bool IsCOMObjectImpl();
+        public virtual bool IsEnumDefined(object value) { return default(bool); }
+        public virtual bool IsEquivalentTo(System.Type other) { return default(bool); }
+        public virtual bool IsInstanceOfType(object o) { return default(bool); }
+        protected abstract bool IsPointerImpl();
+        protected abstract bool IsPrimitiveImpl();
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public virtual bool IsSubclassOf(System.Type c) { return default(bool); }
+        protected virtual bool IsValueTypeImpl() { return default(bool); }
+        public virtual System.Type MakeArrayType() { return default(System.Type); }
+        public virtual System.Type MakeArrayType(int rank) { return default(System.Type); }
+        public virtual System.Type MakeByRefType() { return default(System.Type); }
+        public virtual System.Type MakeGenericType(params System.Type[] typeArguments) { return default(System.Type); }
+        public virtual System.Type MakePointerType() { return default(System.Type); }
+        public override string ToString() { return default(string); }
+    }
+    public partial class TypeAccessException : System.TypeLoadException
+    {
+        public TypeAccessException() { }
+        public TypeAccessException(string message) { }
+        public TypeAccessException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum TypeCode
+    {
+        Boolean = 3,
+        Byte = 6,
+        Char = 4,
+        DateTime = 16,
+        DBNull = 2,
+        Decimal = 15,
+        Double = 14,
+        Empty = 0,
+        Int16 = 7,
+        Int32 = 9,
+        Int64 = 11,
+        Object = 1,
+        SByte = 5,
+        Single = 13,
+        String = 18,
+        UInt16 = 8,
+        UInt32 = 10,
+        UInt64 = 12,
+    }
+    [System.CLSCompliantAttribute(false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct TypedReference
+    {
+        public override bool Equals(object o) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class TypeInitializationException : System.SystemException
+    {
+        public TypeInitializationException(string fullTypeName, System.Exception innerException) { }
+        public string TypeName { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class TypeLoadException : System.SystemException
+    {
+        public TypeLoadException() { }
+        public TypeLoadException(string message) { }
+        public TypeLoadException(string message, System.Exception inner) { }
+        public override string Message { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public string TypeName { get { return default(string); } }
+    }
+    [System.CLSCompliantAttribute(false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct UInt16 : System.IComparable, System.IComparable<ushort>, System.IConvertible, System.IEquatable<ushort>, System.IFormattable
+    {
+        public const ushort MaxValue = (ushort)65535;
+        public const ushort MinValue = (ushort)0;
+        public int CompareTo(object value) { return default(int); }
+        public int CompareTo(ushort value) { return default(int); }
+        public override bool Equals(object obj) { return default(bool); }
+        
+        public bool Equals(ushort obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort Parse(string s) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort Parse(string s, System.Globalization.NumberStyles style) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public static ushort Parse(string s, System.IFormatProvider provider) { return default(ushort); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out ushort result) { result = default(ushort); return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool TryParse(string s, out ushort result) { result = default(ushort); return default(bool); }
+    }
+    [System.CLSCompliantAttribute(false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct UInt32 : System.IComparable, System.IComparable<uint>, System.IConvertible, System.IEquatable<uint>, System.IFormattable
+    {
+        public const uint MaxValue = (uint)4294967295;
+        public const uint MinValue = (uint)0;
+        public int CompareTo(object value) { return default(int); }
+        public int CompareTo(uint value) { return default(int); }
+        public override bool Equals(object obj) { return default(bool); }
+        
+        public bool Equals(uint obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint Parse(string s) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint Parse(string s, System.Globalization.NumberStyles style) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public static uint Parse(string s, System.IFormatProvider provider) { return default(uint); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out uint result) { result = default(uint); return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool TryParse(string s, out uint result) { result = default(uint); return default(bool); }
+    }
+    [System.CLSCompliantAttribute(false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct UInt64 : System.IComparable, System.IComparable<ulong>, System.IConvertible, System.IEquatable<ulong>, System.IFormattable
+    {
+        public const ulong MaxValue = (ulong)18446744073709551615;
+        public const ulong MinValue = (ulong)0;
+        public int CompareTo(object value) { return default(int); }
+        public int CompareTo(ulong value) { return default(int); }
+        public override bool Equals(object obj) { return default(bool); }
+        
+        public bool Equals(ulong obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public System.TypeCode GetTypeCode() { return default(System.TypeCode); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong Parse(string s) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong Parse(string s, System.Globalization.NumberStyles style) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        public static ulong Parse(string s, System.IFormatProvider provider) { return default(ulong); }
+        bool System.IConvertible.ToBoolean(System.IFormatProvider provider) { return default(bool); }
+        byte System.IConvertible.ToByte(System.IFormatProvider provider) { return default(byte); }
+        char System.IConvertible.ToChar(System.IFormatProvider provider) { return default(char); }
+        System.DateTime System.IConvertible.ToDateTime(System.IFormatProvider provider) { return default(System.DateTime); }
+        decimal System.IConvertible.ToDecimal(System.IFormatProvider provider) { return default(decimal); }
+        double System.IConvertible.ToDouble(System.IFormatProvider provider) { return default(double); }
+        short System.IConvertible.ToInt16(System.IFormatProvider provider) { return default(short); }
+        int System.IConvertible.ToInt32(System.IFormatProvider provider) { return default(int); }
+        long System.IConvertible.ToInt64(System.IFormatProvider provider) { return default(long); }
+        sbyte System.IConvertible.ToSByte(System.IFormatProvider provider) { return default(sbyte); }
+        float System.IConvertible.ToSingle(System.IFormatProvider provider) { return default(float); }
+        object System.IConvertible.ToType(System.Type type, System.IFormatProvider provider) { return default(object); }
+        ushort System.IConvertible.ToUInt16(System.IFormatProvider provider) { return default(ushort); }
+        uint System.IConvertible.ToUInt32(System.IFormatProvider provider) { return default(uint); }
+        ulong System.IConvertible.ToUInt64(System.IFormatProvider provider) { return default(ulong); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(System.IFormatProvider provider) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(string format, System.IFormatProvider provider) { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool TryParse(string s, System.Globalization.NumberStyles style, System.IFormatProvider provider, out ulong result) { result = default(ulong); return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        public static bool TryParse(string s, out ulong result) { result = default(ulong); return default(bool); }
+    }
+    [System.CLSCompliantAttribute(false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct UIntPtr
+    {
+        public static readonly System.UIntPtr Zero;
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public UIntPtr(uint value) { throw new System.NotImplementedException(); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public UIntPtr(ulong value) { throw new System.NotImplementedException(); }
+        [System.CLSCompliantAttribute(false)]
+        
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe UIntPtr(void* value) { throw new System.NotImplementedException(); }
+        public static int Size { get { return default(int); } }
+        
+        public static System.UIntPtr Add(System.UIntPtr pointer, int offset) { return default(System.UIntPtr); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override bool Equals(object obj) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetHashCode() { return default(int); }
+        
+        public static System.UIntPtr operator +(System.UIntPtr pointer, int offset) { return default(System.UIntPtr); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool operator ==(System.UIntPtr value1, System.UIntPtr value2) { return default(bool); }
+        
+        public static explicit operator System.UIntPtr (uint value) { return default(System.UIntPtr); }
+        
+        public static explicit operator System.UIntPtr (ulong value) { return default(System.UIntPtr); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static explicit operator uint (System.UIntPtr value) { return default(uint); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static explicit operator ulong (System.UIntPtr value) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe static explicit operator void* (System.UIntPtr value) { return default(void*); }
+        [System.CLSCompliantAttribute(false)]
+        
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe static explicit operator System.UIntPtr (void* value) { return default(System.UIntPtr); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool operator !=(System.UIntPtr value1, System.UIntPtr value2) { return default(bool); }
+        
+        public static System.UIntPtr operator -(System.UIntPtr pointer, int offset) { return default(System.UIntPtr); }
+        
+        public static System.UIntPtr Subtract(System.UIntPtr pointer, int offset) { return default(System.UIntPtr); }
+        [System.CLSCompliantAttribute(false)]
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public unsafe void* ToPointer() { return default(void*); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public uint ToUInt32() { return default(uint); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public ulong ToUInt64() { return default(ulong); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class UnauthorizedAccessException : System.SystemException
+    {
+        public UnauthorizedAccessException() { }
+        public UnauthorizedAccessException(string message) { }
+        public UnauthorizedAccessException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class UnhandledExceptionEventArgs : System.EventArgs
+    {
+        public UnhandledExceptionEventArgs(object exception, bool isTerminating) { }
+        public object ExceptionObject { get { return default(object); } }
+        public bool IsTerminating { get { return default(bool); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Security.SecurityCriticalAttribute]
+    public delegate void UnhandledExceptionEventHandler(object sender, System.UnhandledExceptionEventArgs e);
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class ValueType
+    {
+        protected ValueType() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override bool Equals(object obj) { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public override int GetHashCode() { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class Version : System.IComparable, System.IComparable<System.Version>, System.IEquatable<System.Version>
+    {
+        public Version(int major, int minor) { }
+        public Version(int major, int minor, int build) { }
+        public Version(int major, int minor, int build, int revision) { }
+        public Version(string version) { }
+        public int Build { get { return default(int); } }
+        public int Major { get { return default(int); } }
+        public short MajorRevision { get { return default(short); } }
+        public int Minor { get { return default(int); } }
+        public short MinorRevision { get { return default(short); } }
+        public int Revision { get { return default(int); } }
+        public object Clone() { return default(object); }
+        public int CompareTo(object version) { return default(int); }
+        public int CompareTo(System.Version value) { return default(int); }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Version obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Version v1, System.Version v2) { return default(bool); }
+        public static bool operator >(System.Version v1, System.Version v2) { return default(bool); }
+        public static bool operator >=(System.Version v1, System.Version v2) { return default(bool); }
+        public static bool operator !=(System.Version v1, System.Version v2) { return default(bool); }
+        public static bool operator <(System.Version v1, System.Version v2) { return default(bool); }
+        public static bool operator <=(System.Version v1, System.Version v2) { return default(bool); }
+        public static System.Version Parse(string input) { return default(System.Version); }
+        public override string ToString() { return default(string); }
+        public string ToString(int fieldCount) { return default(string); }
+        public static bool TryParse(string input, out System.Version result) { result = default(System.Version); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, Size=1)]
+    public partial struct Void
+    {
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class WeakReference
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected WeakReference() { }
+        public WeakReference(object target) { }
+        public WeakReference(object target, bool trackResurrection) { }
+        public virtual bool IsAlive { [System.Security.SecuritySafeCriticalAttribute][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(bool); } }
+        public virtual object Target { [System.Security.SecuritySafeCriticalAttribute][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(object); } [System.Security.SecuritySafeCriticalAttribute][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]set { } }
+        public virtual bool TrackResurrection { get { return default(bool); } }
+        ~WeakReference() { }
+    }
+    public sealed partial class WeakReference<T> where T : class
+    {
+        public WeakReference(T target) { }
+        public WeakReference(T target, bool trackResurrection) { }
+        ~WeakReference() { }
+        public void SetTarget(T target) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public bool TryGetTarget(out T target) { target = default(T); return default(bool); }
+    }
+}
+namespace System.Collections
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class BitArray : System.Collections.ICollection, System.Collections.IEnumerable
+    {
+        public BitArray(bool[] values) { }
+        public BitArray(byte[] bytes) { }
+        public BitArray(System.Collections.BitArray bits) { }
+        public BitArray(int length) { }
+        public BitArray(int length, bool defaultValue) { }
+        public BitArray(int[] values) { }
+        public int Count { get { return default(int); } }
+        public bool IsReadOnly { get { return default(bool); } }
+        public bool IsSynchronized { get { return default(bool); } }
+        public bool this[int index] { get { return default(bool); } set { } }
+        public int Length { get { return default(int); } set { } }
+        public object SyncRoot { get { return default(object); } }
+        public System.Collections.BitArray And(System.Collections.BitArray value) { return default(System.Collections.BitArray); }
+        public object Clone() { return default(object); }
+        public void CopyTo(System.Array array, int index) { }
+        public bool Get(int index) { return default(bool); }
+        public System.Collections.IEnumerator GetEnumerator() { return default(System.Collections.IEnumerator); }
+        public System.Collections.BitArray Not() { return default(System.Collections.BitArray); }
+        public System.Collections.BitArray Or(System.Collections.BitArray value) { return default(System.Collections.BitArray); }
+        public void Set(int index, bool value) { }
+        public void SetAll(bool value) { }
+        public System.Collections.BitArray Xor(System.Collections.BitArray value) { return default(System.Collections.BitArray); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class CollectionBase : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList
+    {
+        protected CollectionBase() { }
+        public int Count { get { return default(int); } }
+        protected System.Collections.IList List { get { return default(System.Collections.IList); } }
+        bool System.Collections.ICollection.IsSynchronized { get { return default(bool); } }
+        object System.Collections.ICollection.SyncRoot { get { return default(object); } }
+        bool System.Collections.IList.IsFixedSize { get { return default(bool); } }
+        bool System.Collections.IList.IsReadOnly { get { return default(bool); } }
+        object System.Collections.IList.this[int index] { get { return default(object); } set { } }
+        public void Clear() { }
+        public System.Collections.IEnumerator GetEnumerator() { return default(System.Collections.IEnumerator); }
+        public void RemoveAt(int index) { }
+        void System.Collections.ICollection.CopyTo(System.Array array, int index) { }
+        int System.Collections.IList.Add(object value) { return default(int); }
+        bool System.Collections.IList.Contains(object value) { return default(bool); }
+        int System.Collections.IList.IndexOf(object value) { return default(int); }
+        void System.Collections.IList.Insert(int index, object value) { }
+        void System.Collections.IList.Remove(object value) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct DictionaryEntry
+    {
+        public DictionaryEntry(object key, object value) { throw new System.NotImplementedException(); }
+        public object Key { get { return default(object); } set { } }
+        public object Value { get { return default(object); } set { } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface ICollection : System.Collections.IEnumerable
+    {
+        int Count { get; }
+        bool IsSynchronized { get; }
+        object SyncRoot { get; }
+        void CopyTo(System.Array array, int index);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IComparer
+    {
+        int Compare(object x, object y);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IDictionary : System.Collections.ICollection, System.Collections.IEnumerable
+    {
+        bool IsFixedSize { get; }
+        bool IsReadOnly { get; }
+        object this[object key] { get; set; }
+        System.Collections.ICollection Keys { get; }
+        System.Collections.ICollection Values { get; }
+        void Add(object key, object value);
+        void Clear();
+        bool Contains(object key);
+        new System.Collections.IDictionaryEnumerator GetEnumerator();
+        void Remove(object key);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IDictionaryEnumerator : System.Collections.IEnumerator
+    {
+        System.Collections.DictionaryEntry Entry { get; }
+        object Key { get; }
+        object Value { get; }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.GuidAttribute("496B0ABE-CDEE-11d3-88E8-00902754C43A")]
+    public partial interface IEnumerable
+    {
+        [System.Runtime.InteropServices.DispIdAttribute(-4)]
+        System.Collections.IEnumerator GetEnumerator();
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.GuidAttribute("496B0ABF-CDEE-11d3-88E8-00902754C43A")]
+    public partial interface IEnumerator
+    {
+        object Current { get; }
+        bool MoveNext();
+        void Reset();
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IEqualityComparer
+    {
+        bool Equals(object x, object y);
+        int GetHashCode(object obj);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IList : System.Collections.ICollection, System.Collections.IEnumerable
+    {
+        bool IsFixedSize { get; }
+        bool IsReadOnly { get; }
+        object this[int index] { get; set; }
+        int Add(object value);
+        void Clear();
+        bool Contains(object value);
+        int IndexOf(object value);
+        void Insert(int index, object value);
+        void Remove(object value);
+        void RemoveAt(int index);
+    }
+    public partial interface IStructuralComparable
+    {
+        int CompareTo(object other, System.Collections.IComparer comparer);
+    }
+    public partial interface IStructuralEquatable
+    {
+        bool Equals(object other, System.Collections.IEqualityComparer comparer);
+        int GetHashCode(System.Collections.IEqualityComparer comparer);
+    }
+    public static partial class StructuralComparisons
+    {
+        public static System.Collections.IComparer StructuralComparer { get { return default(System.Collections.IComparer); } }
+        public static System.Collections.IEqualityComparer StructuralEqualityComparer { get { return default(System.Collections.IEqualityComparer); } }
+    }
+}
+namespace System.Collections.Generic
+{
+    public abstract partial class Comparer<T> : System.Collections.Generic.IComparer<T>, System.Collections.IComparer
+    {
+        protected Comparer() { }
+        public static System.Collections.Generic.Comparer<T> Default { get { return default(System.Collections.Generic.Comparer<T>); } }
+        public abstract int Compare(T x, T y);
+        public static System.Collections.Generic.Comparer<T> Create(System.Comparison<T> comparison) { return default(System.Collections.Generic.Comparer<T>); }
+        int System.Collections.IComparer.Compare(object x, object y) { return default(int); }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Count = {Count}")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public partial class Dictionary<TKey, TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IDictionary<TKey, TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IReadOnlyCollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IReadOnlyDictionary<TKey, TValue>, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable
+    {
+        public Dictionary() { }
+        public Dictionary(System.Collections.Generic.IDictionary<TKey, TValue> dictionary) { }
+        public Dictionary(System.Collections.Generic.IDictionary<TKey, TValue> dictionary, System.Collections.Generic.IEqualityComparer<TKey> comparer) { }
+        public Dictionary(System.Collections.Generic.IEqualityComparer<TKey> comparer) { }
+        public Dictionary(int capacity) { }
+        public Dictionary(int capacity, System.Collections.Generic.IEqualityComparer<TKey> comparer) { }
+        public System.Collections.Generic.IEqualityComparer<TKey> Comparer { get { return default(System.Collections.Generic.IEqualityComparer<TKey>); } }
+        public int Count { get { return default(int); } }
+        public TValue this[TKey key] { get { return default(TValue); } set { } }
+        public System.Collections.Generic.Dictionary<TKey, TValue>.KeyCollection Keys { get { return default(System.Collections.Generic.Dictionary<TKey, TValue>.KeyCollection); } }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.IsReadOnly { get { return default(bool); } }
+        System.Collections.Generic.ICollection<TKey> System.Collections.Generic.IDictionary<TKey,TValue>.Keys { get { return default(System.Collections.Generic.ICollection<TKey>); } }
+        System.Collections.Generic.ICollection<TValue> System.Collections.Generic.IDictionary<TKey,TValue>.Values { get { return default(System.Collections.Generic.ICollection<TValue>); } }
+        System.Collections.Generic.IEnumerable<TKey> System.Collections.Generic.IReadOnlyDictionary<TKey,TValue>.Keys { get { return default(System.Collections.Generic.IEnumerable<TKey>); } }
+        System.Collections.Generic.IEnumerable<TValue> System.Collections.Generic.IReadOnlyDictionary<TKey,TValue>.Values { get { return default(System.Collections.Generic.IEnumerable<TValue>); } }
+        bool System.Collections.ICollection.IsSynchronized { get { return default(bool); } }
+        object System.Collections.ICollection.SyncRoot { get { return default(object); } }
+        bool System.Collections.IDictionary.IsFixedSize { get { return default(bool); } }
+        bool System.Collections.IDictionary.IsReadOnly { get { return default(bool); } }
+        object System.Collections.IDictionary.this[object key] { get { return default(object); } set { } }
+        System.Collections.ICollection System.Collections.IDictionary.Keys { get { return default(System.Collections.ICollection); } }
+        System.Collections.ICollection System.Collections.IDictionary.Values { get { return default(System.Collections.ICollection); } }
+        public System.Collections.Generic.Dictionary<TKey, TValue>.ValueCollection Values { get { return default(System.Collections.Generic.Dictionary<TKey, TValue>.ValueCollection); } }
+        public void Add(TKey key, TValue value) { }
+        public void Clear() { }
+        public bool ContainsKey(TKey key) { return default(bool); }
+        public bool ContainsValue(TValue value) { return default(bool); }
+        public System.Collections.Generic.Dictionary<TKey, TValue>.Enumerator GetEnumerator() { return default(System.Collections.Generic.Dictionary<TKey, TValue>.Enumerator); }
+        public bool Remove(TKey key) { return default(bool); }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.Add(System.Collections.Generic.KeyValuePair<TKey, TValue> keyValuePair) { }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.Contains(System.Collections.Generic.KeyValuePair<TKey, TValue> keyValuePair) { return default(bool); }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair<TKey, TValue>[] array, int index) { }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.Remove(System.Collections.Generic.KeyValuePair<TKey, TValue> keyValuePair) { return default(bool); }
+        System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator() { return default(System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>>); }
+        void System.Collections.ICollection.CopyTo(System.Array array, int index) { }
+        void System.Collections.IDictionary.Add(object key, object value) { }
+        bool System.Collections.IDictionary.Contains(object key) { return default(bool); }
+        System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() { return default(System.Collections.IDictionaryEnumerator); }
+        void System.Collections.IDictionary.Remove(object key) { }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+        public bool TryGetValue(TKey key, out TValue value) { value = default(TValue); return default(bool); }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        public partial struct Enumerator : System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.IDictionaryEnumerator, System.Collections.IEnumerator, System.IDisposable
+        {
+            public System.Collections.Generic.KeyValuePair<TKey, TValue> Current { get { return default(System.Collections.Generic.KeyValuePair<TKey, TValue>); } }
+            System.Collections.DictionaryEntry System.Collections.IDictionaryEnumerator.Entry { get { return default(System.Collections.DictionaryEntry); } }
+            object System.Collections.IDictionaryEnumerator.Key { get { return default(object); } }
+            object System.Collections.IDictionaryEnumerator.Value { get { return default(object); } }
+            object System.Collections.IEnumerator.Current { get { return default(object); } }
+            public void Dispose() { }
+            public bool MoveNext() { return default(bool); }
+            void System.Collections.IEnumerator.Reset() { }
+        }
+        [System.Diagnostics.DebuggerDisplayAttribute("Count = {Count}")]
+        public sealed partial class KeyCollection : System.Collections.Generic.ICollection<TKey>, System.Collections.Generic.IEnumerable<TKey>, System.Collections.Generic.IReadOnlyCollection<TKey>, System.Collections.ICollection, System.Collections.IEnumerable
+        {
+            public KeyCollection(System.Collections.Generic.Dictionary<TKey, TValue> dictionary) { }
+            public int Count { get { return default(int); } }
+            bool System.Collections.Generic.ICollection<TKey>.IsReadOnly { get { return default(bool); } }
+            bool System.Collections.ICollection.IsSynchronized { get { return default(bool); } }
+            object System.Collections.ICollection.SyncRoot { get { return default(object); } }
+            public void CopyTo(TKey[] array, int index) { }
+            public System.Collections.Generic.Dictionary<TKey, TValue>.KeyCollection.Enumerator GetEnumerator() { return default(System.Collections.Generic.Dictionary<TKey, TValue>.KeyCollection.Enumerator); }
+            void System.Collections.Generic.ICollection<TKey>.Add(TKey item) { }
+            void System.Collections.Generic.ICollection<TKey>.Clear() { }
+            bool System.Collections.Generic.ICollection<TKey>.Contains(TKey item) { return default(bool); }
+            bool System.Collections.Generic.ICollection<TKey>.Remove(TKey item) { return default(bool); }
+            System.Collections.Generic.IEnumerator<TKey> System.Collections.Generic.IEnumerable<TKey>.GetEnumerator() { return default(System.Collections.Generic.IEnumerator<TKey>); }
+            void System.Collections.ICollection.CopyTo(System.Array array, int index) { }
+            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+            [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+            public partial struct Enumerator : System.Collections.Generic.IEnumerator<TKey>, System.Collections.IEnumerator, System.IDisposable
+            {
+                public TKey Current { get { return default(TKey); } }
+                object System.Collections.IEnumerator.Current { get { return default(object); } }
+                public void Dispose() { }
+                public bool MoveNext() { return default(bool); }
+                void System.Collections.IEnumerator.Reset() { }
+            }
+        }
+        [System.Diagnostics.DebuggerDisplayAttribute("Count = {Count}")]
+        public sealed partial class ValueCollection : System.Collections.Generic.ICollection<TValue>, System.Collections.Generic.IEnumerable<TValue>, System.Collections.Generic.IReadOnlyCollection<TValue>, System.Collections.ICollection, System.Collections.IEnumerable
+        {
+            public ValueCollection(System.Collections.Generic.Dictionary<TKey, TValue> dictionary) { }
+            public int Count { get { return default(int); } }
+            bool System.Collections.Generic.ICollection<TValue>.IsReadOnly { get { return default(bool); } }
+            bool System.Collections.ICollection.IsSynchronized { get { return default(bool); } }
+            object System.Collections.ICollection.SyncRoot { get { return default(object); } }
+            public void CopyTo(TValue[] array, int index) { }
+            public System.Collections.Generic.Dictionary<TKey, TValue>.ValueCollection.Enumerator GetEnumerator() { return default(System.Collections.Generic.Dictionary<TKey, TValue>.ValueCollection.Enumerator); }
+            void System.Collections.Generic.ICollection<TValue>.Add(TValue item) { }
+            void System.Collections.Generic.ICollection<TValue>.Clear() { }
+            bool System.Collections.Generic.ICollection<TValue>.Contains(TValue item) { return default(bool); }
+            bool System.Collections.Generic.ICollection<TValue>.Remove(TValue item) { return default(bool); }
+            System.Collections.Generic.IEnumerator<TValue> System.Collections.Generic.IEnumerable<TValue>.GetEnumerator() { return default(System.Collections.Generic.IEnumerator<TValue>); }
+            void System.Collections.ICollection.CopyTo(System.Array array, int index) { }
+            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+            [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+            public partial struct Enumerator : System.Collections.Generic.IEnumerator<TValue>, System.Collections.IEnumerator, System.IDisposable
+            {
+                public TValue Current { get { return default(TValue); } }
+                object System.Collections.IEnumerator.Current { get { return default(object); } }
+                public void Dispose() { }
+                public bool MoveNext() { return default(bool); }
+                void System.Collections.IEnumerator.Reset() { }
+            }
+        }
+    }
+    public abstract partial class EqualityComparer<T> : System.Collections.Generic.IEqualityComparer<T>, System.Collections.IEqualityComparer
+    {
+        protected EqualityComparer() { }
+        public static System.Collections.Generic.EqualityComparer<T> Default { get { return default(System.Collections.Generic.EqualityComparer<T>); } }
+        public abstract bool Equals(T x, T y);
+        public abstract int GetHashCode(T obj);
+        bool System.Collections.IEqualityComparer.Equals(object x, object y) { return default(bool); }
+        int System.Collections.IEqualityComparer.GetHashCode(object obj) { return default(int); }
+    }
+    public partial interface ICollection<T> : System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable
+    {
+        int Count { get; }
+        bool IsReadOnly { get; }
+        void Add(T item);
+        void Clear();
+        bool Contains(T item);
+        void CopyTo(T[] array, int arrayIndex);
+        bool Remove(T item);
+    }
+    public partial interface IComparer<in T>
+    {
+        int Compare(T x, T y);
+    }
+    public partial interface IDictionary<TKey, TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.IEnumerable
+    {
+        TValue this[TKey key] { get; set; }
+        System.Collections.Generic.ICollection<TKey> Keys { get; }
+        System.Collections.Generic.ICollection<TValue> Values { get; }
+        void Add(TKey key, TValue value);
+        bool ContainsKey(TKey key);
+        bool Remove(TKey key);
+        bool TryGetValue(TKey key, out TValue value);
+    }
+    public partial interface IEnumerable<out T> : System.Collections.IEnumerable
+    {
+        new System.Collections.Generic.IEnumerator<T> GetEnumerator();
+    }
+    public partial interface IEnumerator<out T> : System.Collections.IEnumerator, System.IDisposable
+    {
+        new T Current { get; }
+    }
+    public partial interface IEqualityComparer<in T>
+    {
+        bool Equals(T x, T y);
+        int GetHashCode(T obj);
+    }
+    public partial interface IList<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable
+    {
+        T this[int index] { get; set; }
+        int IndexOf(T item);
+        void Insert(int index, T item);
+        void RemoveAt(int index);
+    }
+    public partial interface IReadOnlyCollection<out T> : System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable
+    {
+        int Count { get; }
+    }
+    public partial interface IReadOnlyDictionary<TKey, TValue> : System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IReadOnlyCollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.IEnumerable
+    {
+        TValue this[TKey key] { get; }
+        System.Collections.Generic.IEnumerable<TKey> Keys { get; }
+        System.Collections.Generic.IEnumerable<TValue> Values { get; }
+        bool ContainsKey(TKey key);
+        bool TryGetValue(TKey key, out TValue value);
+    }
+    public partial interface IReadOnlyList<out T> : System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.IEnumerable
+    {
+        T this[int index] { get; }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class KeyNotFoundException : System.SystemException
+    {
+        public KeyNotFoundException() { }
+        public KeyNotFoundException(string message) { }
+        public KeyNotFoundException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct KeyValuePair<TKey, TValue>
+    {
+        public KeyValuePair(TKey key, TValue value) { throw new System.NotImplementedException(); }
+        public TKey Key { get { return default(TKey); } }
+        public TValue Value { get { return default(TValue); } }
+        public override string ToString() { return default(string); }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Count = {Count}")]
+    public partial class List<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IList<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.IReadOnlyList<T>, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList
+    {
+        public List() { }
+        public List(System.Collections.Generic.IEnumerable<T> collection) { }
+        public List(int capacity) { }
+        public int Capacity { get { return default(int); } set { } }
+        public int Count { get { return default(int); } }
+        public T this[int index] { get { return default(T); } set { } }
+        bool System.Collections.Generic.ICollection<T>.IsReadOnly { get { return default(bool); } }
+        bool System.Collections.ICollection.IsSynchronized { get { return default(bool); } }
+        object System.Collections.ICollection.SyncRoot { get { return default(object); } }
+        bool System.Collections.IList.IsFixedSize { get { return default(bool); } }
+        bool System.Collections.IList.IsReadOnly { get { return default(bool); } }
+        object System.Collections.IList.this[int index] { get { return default(object); } set { } }
+        public void Add(T item) { }
+        public void AddRange(System.Collections.Generic.IEnumerable<T> collection) { }
+        public System.Collections.ObjectModel.ReadOnlyCollection<T> AsReadOnly() { return default(System.Collections.ObjectModel.ReadOnlyCollection<T>); }
+        public int BinarySearch(T item) { return default(int); }
+        public int BinarySearch(T item, System.Collections.Generic.IComparer<T> comparer) { return default(int); }
+        public int BinarySearch(int index, int count, T item, System.Collections.Generic.IComparer<T> comparer) { return default(int); }
+        public void Clear() { }
+        public bool Contains(T item) { return default(bool); }
+        public void CopyTo(T[] array) { }
+        public void CopyTo(T[] array, int arrayIndex) { }
+        public void CopyTo(int index, T[] array, int arrayIndex, int count) { }
+        public bool Exists(System.Predicate<T> match) { return default(bool); }
+        public T Find(System.Predicate<T> match) { return default(T); }
+        public System.Collections.Generic.List<T> FindAll(System.Predicate<T> match) { return default(System.Collections.Generic.List<T>); }
+        public int FindIndex(int startIndex, int count, System.Predicate<T> match) { return default(int); }
+        public int FindIndex(int startIndex, System.Predicate<T> match) { return default(int); }
+        public int FindIndex(System.Predicate<T> match) { return default(int); }
+        public T FindLast(System.Predicate<T> match) { return default(T); }
+        public int FindLastIndex(int startIndex, int count, System.Predicate<T> match) { return default(int); }
+        public int FindLastIndex(int startIndex, System.Predicate<T> match) { return default(int); }
+        public int FindLastIndex(System.Predicate<T> match) { return default(int); }
+        public void ForEach(System.Action<T> action) { }
+        public System.Collections.Generic.List<T>.Enumerator GetEnumerator() { return default(System.Collections.Generic.List<T>.Enumerator); }
+        public System.Collections.Generic.List<T> GetRange(int index, int count) { return default(System.Collections.Generic.List<T>); }
+        public int IndexOf(T item) { return default(int); }
+        public int IndexOf(T item, int index) { return default(int); }
+        public int IndexOf(T item, int index, int count) { return default(int); }
+        public void Insert(int index, T item) { }
+        public void InsertRange(int index, System.Collections.Generic.IEnumerable<T> collection) { }
+        public int LastIndexOf(T item) { return default(int); }
+        public int LastIndexOf(T item, int index) { return default(int); }
+        public int LastIndexOf(T item, int index, int count) { return default(int); }
+        public bool Remove(T item) { return default(bool); }
+        public int RemoveAll(System.Predicate<T> match) { return default(int); }
+        public void RemoveAt(int index) { }
+        public void RemoveRange(int index, int count) { }
+        public void Reverse() { }
+        public void Reverse(int index, int count) { }
+        public void Sort() { }
+        public void Sort(System.Collections.Generic.IComparer<T> comparer) { }
+        public void Sort(System.Comparison<T> comparison) { }
+        public void Sort(int index, int count, System.Collections.Generic.IComparer<T> comparer) { }
+        System.Collections.Generic.IEnumerator<T> System.Collections.Generic.IEnumerable<T>.GetEnumerator() { return default(System.Collections.Generic.IEnumerator<T>); }
+        void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) { }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+        int System.Collections.IList.Add(object item) { return default(int); }
+        bool System.Collections.IList.Contains(object item) { return default(bool); }
+        int System.Collections.IList.IndexOf(object item) { return default(int); }
+        void System.Collections.IList.Insert(int index, object item) { }
+        void System.Collections.IList.Remove(object item) { }
+        public T[] ToArray() { return default(T[]); }
+        public void TrimExcess() { }
+        public bool TrueForAll(System.Predicate<T> match) { return default(bool); }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        public partial struct Enumerator : System.Collections.Generic.IEnumerator<T>, System.Collections.IEnumerator, System.IDisposable
+        {
+            public T Current { get { return default(T); } }
+            object System.Collections.IEnumerator.Current { get { return default(object); } }
+            public void Dispose() { }
+            public bool MoveNext() { return default(bool); }
+            void System.Collections.IEnumerator.Reset() { }
+        }
+    }
+}
+namespace System.Collections.ObjectModel
+{
+    [System.Diagnostics.DebuggerDisplayAttribute("Count = {Count}")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public partial class Collection<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IList<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.IReadOnlyList<T>, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList
+    {
+        public Collection() { }
+        public Collection(System.Collections.Generic.IList<T> list) { }
+        public int Count { get { return default(int); } }
+        public T this[int index] { get { return default(T); } set { } }
+        protected System.Collections.Generic.IList<T> Items { get { return default(System.Collections.Generic.IList<T>); } }
+        bool System.Collections.Generic.ICollection<T>.IsReadOnly { get { return default(bool); } }
+        bool System.Collections.ICollection.IsSynchronized { get { return default(bool); } }
+        object System.Collections.ICollection.SyncRoot { get { return default(object); } }
+        bool System.Collections.IList.IsFixedSize { get { return default(bool); } }
+        bool System.Collections.IList.IsReadOnly { get { return default(bool); } }
+        object System.Collections.IList.this[int index] { get { return default(object); } set { } }
+        public void Add(T item) { }
+        public void Clear() { }
+        protected virtual void ClearItems() { }
+        public bool Contains(T item) { return default(bool); }
+        public void CopyTo(T[] array, int index) { }
+        public System.Collections.Generic.IEnumerator<T> GetEnumerator() { return default(System.Collections.Generic.IEnumerator<T>); }
+        public int IndexOf(T item) { return default(int); }
+        public void Insert(int index, T item) { }
+        protected virtual void InsertItem(int index, T item) { }
+        public bool Remove(T item) { return default(bool); }
+        public void RemoveAt(int index) { }
+        protected virtual void RemoveItem(int index) { }
+        protected virtual void SetItem(int index, T item) { }
+        void System.Collections.ICollection.CopyTo(System.Array array, int index) { }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+        int System.Collections.IList.Add(object value) { return default(int); }
+        bool System.Collections.IList.Contains(object value) { return default(bool); }
+        int System.Collections.IList.IndexOf(object value) { return default(int); }
+        void System.Collections.IList.Insert(int index, object value) { }
+        void System.Collections.IList.Remove(object value) { }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Count = {Count}")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public abstract partial class KeyedCollection<TKey, TItem> : System.Collections.ObjectModel.Collection<TItem>
+    {
+        protected KeyedCollection() { }
+        protected KeyedCollection(System.Collections.Generic.IEqualityComparer<TKey> comparer) { }
+        protected KeyedCollection(System.Collections.Generic.IEqualityComparer<TKey> comparer, int dictionaryCreationThreshold) { }
+        public System.Collections.Generic.IEqualityComparer<TKey> Comparer { get { return default(System.Collections.Generic.IEqualityComparer<TKey>); } }
+        protected System.Collections.Generic.IDictionary<TKey, TItem> Dictionary { get { return default(System.Collections.Generic.IDictionary<TKey, TItem>); } }
+        public TItem this[TKey key] { get { return default(TItem); } }
+        protected void ChangeItemKey(TItem item, TKey newKey) { }
+        protected override void ClearItems() { }
+        public bool Contains(TKey key) { return default(bool); }
+        protected abstract TKey GetKeyForItem(TItem item);
+        protected override void InsertItem(int index, TItem item) { }
+        public bool Remove(TKey key) { return default(bool); }
+        protected override void RemoveItem(int index) { }
+        protected override void SetItem(int index, TItem item) { }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Count = {Count}")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public partial class ReadOnlyCollection<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IList<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.IReadOnlyList<T>, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList
+    {
+        public ReadOnlyCollection(System.Collections.Generic.IList<T> list) { }
+        public int Count { get { return default(int); } }
+        public T this[int index] { get { return default(T); } }
+        protected System.Collections.Generic.IList<T> Items { get { return default(System.Collections.Generic.IList<T>); } }
+        bool System.Collections.Generic.ICollection<T>.IsReadOnly { get { return default(bool); } }
+        T System.Collections.Generic.IList<T>.this[int index] { get { return default(T); } set { } }
+        bool System.Collections.ICollection.IsSynchronized { get { return default(bool); } }
+        object System.Collections.ICollection.SyncRoot { get { return default(object); } }
+        bool System.Collections.IList.IsFixedSize { get { return default(bool); } }
+        bool System.Collections.IList.IsReadOnly { get { return default(bool); } }
+        object System.Collections.IList.this[int index] { get { return default(object); } set { } }
+        public bool Contains(T value) { return default(bool); }
+        public void CopyTo(T[] array, int index) { }
+        public System.Collections.Generic.IEnumerator<T> GetEnumerator() { return default(System.Collections.Generic.IEnumerator<T>); }
+        public int IndexOf(T value) { return default(int); }
+        void System.Collections.Generic.ICollection<T>.Add(T value) { }
+        void System.Collections.Generic.ICollection<T>.Clear() { }
+        bool System.Collections.Generic.ICollection<T>.Remove(T value) { return default(bool); }
+        void System.Collections.Generic.IList<T>.Insert(int index, T value) { }
+        void System.Collections.Generic.IList<T>.RemoveAt(int index) { }
+        void System.Collections.ICollection.CopyTo(System.Array array, int index) { }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+        int System.Collections.IList.Add(object value) { return default(int); }
+        void System.Collections.IList.Clear() { }
+        bool System.Collections.IList.Contains(object value) { return default(bool); }
+        int System.Collections.IList.IndexOf(object value) { return default(int); }
+        void System.Collections.IList.Insert(int index, object value) { }
+        void System.Collections.IList.Remove(object value) { }
+        void System.Collections.IList.RemoveAt(int index) { }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Count = {Count}")]
+    public partial class ReadOnlyDictionary<TKey, TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IDictionary<TKey, TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IReadOnlyCollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IReadOnlyDictionary<TKey, TValue>, System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable
+    {
+        public ReadOnlyDictionary(System.Collections.Generic.IDictionary<TKey, TValue> dictionary) { }
+        public int Count { get { return default(int); } }
+        protected System.Collections.Generic.IDictionary<TKey, TValue> Dictionary { get { return default(System.Collections.Generic.IDictionary<TKey, TValue>); } }
+        public TValue this[TKey key] { get { return default(TValue); } }
+        public System.Collections.ObjectModel.ReadOnlyDictionary<TKey, TValue>.KeyCollection Keys { get { return default(System.Collections.ObjectModel.ReadOnlyDictionary<TKey, TValue>.KeyCollection); } }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.IsReadOnly { get { return default(bool); } }
+        TValue System.Collections.Generic.IDictionary<TKey,TValue>.this[TKey key] { get { return default(TValue); } set { } }
+        System.Collections.Generic.ICollection<TKey> System.Collections.Generic.IDictionary<TKey,TValue>.Keys { get { return default(System.Collections.Generic.ICollection<TKey>); } }
+        System.Collections.Generic.ICollection<TValue> System.Collections.Generic.IDictionary<TKey,TValue>.Values { get { return default(System.Collections.Generic.ICollection<TValue>); } }
+        System.Collections.Generic.IEnumerable<TKey> System.Collections.Generic.IReadOnlyDictionary<TKey,TValue>.Keys { get { return default(System.Collections.Generic.IEnumerable<TKey>); } }
+        System.Collections.Generic.IEnumerable<TValue> System.Collections.Generic.IReadOnlyDictionary<TKey,TValue>.Values { get { return default(System.Collections.Generic.IEnumerable<TValue>); } }
+        bool System.Collections.ICollection.IsSynchronized { get { return default(bool); } }
+        object System.Collections.ICollection.SyncRoot { get { return default(object); } }
+        bool System.Collections.IDictionary.IsFixedSize { get { return default(bool); } }
+        bool System.Collections.IDictionary.IsReadOnly { get { return default(bool); } }
+        object System.Collections.IDictionary.this[object key] { get { return default(object); } set { } }
+        System.Collections.ICollection System.Collections.IDictionary.Keys { get { return default(System.Collections.ICollection); } }
+        System.Collections.ICollection System.Collections.IDictionary.Values { get { return default(System.Collections.ICollection); } }
+        public System.Collections.ObjectModel.ReadOnlyDictionary<TKey, TValue>.ValueCollection Values { get { return default(System.Collections.ObjectModel.ReadOnlyDictionary<TKey, TValue>.ValueCollection); } }
+        public bool ContainsKey(TKey key) { return default(bool); }
+        public System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>> GetEnumerator() { return default(System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>>); }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.Add(System.Collections.Generic.KeyValuePair<TKey, TValue> item) { }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.Clear() { }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.Contains(System.Collections.Generic.KeyValuePair<TKey, TValue> item) { return default(bool); }
+        void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair<TKey, TValue>[] array, int arrayIndex) { }
+        bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.Remove(System.Collections.Generic.KeyValuePair<TKey, TValue> item) { return default(bool); }
+        void System.Collections.Generic.IDictionary<TKey,TValue>.Add(TKey key, TValue value) { }
+        bool System.Collections.Generic.IDictionary<TKey,TValue>.Remove(TKey key) { return default(bool); }
+        void System.Collections.ICollection.CopyTo(System.Array array, int index) { }
+        void System.Collections.IDictionary.Add(object key, object value) { }
+        void System.Collections.IDictionary.Clear() { }
+        bool System.Collections.IDictionary.Contains(object key) { return default(bool); }
+        System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() { return default(System.Collections.IDictionaryEnumerator); }
+        void System.Collections.IDictionary.Remove(object key) { }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+        public bool TryGetValue(TKey key, out TValue value) { value = default(TValue); return default(bool); }
+        [System.Diagnostics.DebuggerDisplayAttribute("Count = {Count}")]
+        public sealed partial class KeyCollection : System.Collections.Generic.ICollection<TKey>, System.Collections.Generic.IEnumerable<TKey>, System.Collections.Generic.IReadOnlyCollection<TKey>, System.Collections.ICollection, System.Collections.IEnumerable
+        {
+            internal KeyCollection() { }
+            public int Count { get { return default(int); } }
+            bool System.Collections.Generic.ICollection<TKey>.IsReadOnly { get { return default(bool); } }
+            bool System.Collections.ICollection.IsSynchronized { get { return default(bool); } }
+            object System.Collections.ICollection.SyncRoot { get { return default(object); } }
+            public void CopyTo(TKey[] array, int arrayIndex) { }
+            public System.Collections.Generic.IEnumerator<TKey> GetEnumerator() { return default(System.Collections.Generic.IEnumerator<TKey>); }
+            void System.Collections.Generic.ICollection<TKey>.Add(TKey item) { }
+            void System.Collections.Generic.ICollection<TKey>.Clear() { }
+            bool System.Collections.Generic.ICollection<TKey>.Contains(TKey item) { return default(bool); }
+            bool System.Collections.Generic.ICollection<TKey>.Remove(TKey item) { return default(bool); }
+            void System.Collections.ICollection.CopyTo(System.Array array, int index) { }
+            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+        }
+        [System.Diagnostics.DebuggerDisplayAttribute("Count = {Count}")]
+                public sealed partial class ValueCollection : System.Collections.Generic.ICollection<TValue>, System.Collections.Generic.IEnumerable<TValue>, System.Collections.Generic.IReadOnlyCollection<TValue>, System.Collections.ICollection, System.Collections.IEnumerable
+        {
+            internal ValueCollection() { }
+            public int Count { get { return default(int); } }
+            bool System.Collections.Generic.ICollection<TValue>.IsReadOnly { get { return default(bool); } }
+            bool System.Collections.ICollection.IsSynchronized { get { return default(bool); } }
+            object System.Collections.ICollection.SyncRoot { get { return default(object); } }
+            public void CopyTo(TValue[] array, int arrayIndex) { }
+            public System.Collections.Generic.IEnumerator<TValue> GetEnumerator() { return default(System.Collections.Generic.IEnumerator<TValue>); }
+            void System.Collections.Generic.ICollection<TValue>.Add(TValue item) { }
+            void System.Collections.Generic.ICollection<TValue>.Clear() { }
+            bool System.Collections.Generic.ICollection<TValue>.Contains(TValue item) { return default(bool); }
+            bool System.Collections.Generic.ICollection<TValue>.Remove(TValue item) { return default(bool); }
+            void System.Collections.ICollection.CopyTo(System.Array array, int index) { }
+            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+        }
+    }
+}
+namespace System.Configuration.Assemblies
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum AssemblyHashAlgorithm
+    {
+        MD5 = 32771,
+        None = 0,
+        SHA1 = 32772,
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        SHA256 = 32780,
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        SHA384 = 32781,
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        SHA512 = 32782,
+    }
+}
+namespace System.Diagnostics
+{
+    [System.AttributeUsageAttribute((System.AttributeTargets)(68), AllowMultiple=true)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ConditionalAttribute : System.Attribute
+    {
+        public ConditionalAttribute(string conditionString) { }
+        public string ConditionString { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(3), AllowMultiple=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DebuggableAttribute : System.Attribute
+    {
+        public DebuggableAttribute(bool isJITTrackingEnabled, bool isJITOptimizerDisabled) { }
+        public DebuggableAttribute(System.Diagnostics.DebuggableAttribute.DebuggingModes modes) { }
+        [System.FlagsAttribute]
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public enum DebuggingModes
+        {
+            Default = 1,
+            DisableOptimizations = 256,
+            EnableEditAndContinue = 4,
+            IgnoreSymbolStoreSequencePoints = 2,
+            None = 0,
+        }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class Debugger
+    {
+        [System.ObsoleteAttribute("Do not create instances of the Debugger class.  Call the static methods directly on this type instead", true)]
+        public Debugger() { }
+        public static bool IsAttached { [System.Security.SecuritySafeCriticalAttribute][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(bool); } }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Break() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static bool IsLogging() { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool Launch() { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static void Log(int level, string category, string message) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public static void NotifyOfCrossThreadDependency() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(384), AllowMultiple=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DebuggerBrowsableAttribute : System.Attribute
+    {
+        public DebuggerBrowsableAttribute(System.Diagnostics.DebuggerBrowsableState state) { }
+        public System.Diagnostics.DebuggerBrowsableState State { get { return default(System.Diagnostics.DebuggerBrowsableState); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum DebuggerBrowsableState
+    {
+        Collapsed = 2,
+        Never = 0,
+        RootHidden = 3,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(4509), AllowMultiple=true)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DebuggerDisplayAttribute : System.Attribute
+    {
+        public DebuggerDisplayAttribute(string value) { }
+        public string Name { get { return default(string); } set { } }
+        public System.Type Target { get { return default(System.Type); } set { } }
+        public string TargetTypeName { get { return default(string); } set { } }
+        public string Type { get { return default(string); } set { } }
+        public string Value { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(224), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DebuggerHiddenAttribute : System.Attribute
+    {
+        public DebuggerHiddenAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(236), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DebuggerNonUserCodeAttribute : System.Attribute
+    {
+        public DebuggerNonUserCodeAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(108), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DebuggerStepThroughAttribute : System.Attribute
+    {
+        public DebuggerStepThroughAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(13), AllowMultiple=true)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DebuggerTypeProxyAttribute : System.Attribute
+    {
+        public DebuggerTypeProxyAttribute(string typeName) { }
+        public DebuggerTypeProxyAttribute(System.Type type) { }
+        public string ProxyTypeName { get { return default(string); } }
+        public System.Type Target { get { return default(System.Type); } set { } }
+        public string TargetTypeName { get { return default(string); } set { } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class StackFrame
+    {
+        public const int OFFSET_UNKNOWN = -1;
+        [System.Security.SecuritySafeCriticalAttribute]
+        public StackFrame() { }
+        [System.Security.SecurityCriticalAttribute]
+        public StackFrame(bool fNeedFileInfo) { }
+        public StackFrame(int skipFrames) { }
+        [System.Security.SecurityCriticalAttribute]
+        public StackFrame(int skipFrames, bool fNeedFileInfo) { }
+        public StackFrame(string fileName, int lineNumber) { }
+        public StackFrame(string fileName, int lineNumber, int colNumber) { }
+        public virtual int GetFileColumnNumber() { return default(int); }
+        public virtual int GetFileLineNumber() { return default(int); }
+        [System.Security.SecurityCriticalAttribute]
+        public virtual string GetFileName() { return default(string); }
+        public virtual int GetILOffset() { return default(int); }
+        public virtual System.Reflection.MethodBase GetMethod() { return default(System.Reflection.MethodBase); }
+        public virtual int GetNativeOffset() { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class StackTrace
+    {
+        public const int METHODS_TO_SKIP = 0;
+        [System.Security.SecuritySafeCriticalAttribute]
+        public StackTrace() { }
+        [System.Security.SecurityCriticalAttribute]
+        public StackTrace(bool fNeedFileInfo) { }
+        public StackTrace(System.Diagnostics.StackFrame frame) { }
+        public StackTrace(System.Exception e) { }
+        [System.Security.SecurityCriticalAttribute]
+        public StackTrace(System.Exception e, bool fNeedFileInfo) { }
+        [System.Security.SecurityCriticalAttribute]
+        public StackTrace(System.Exception e, int skipFrames) { }
+        [System.Security.SecurityCriticalAttribute]
+        public StackTrace(System.Exception e, int skipFrames, bool fNeedFileInfo) { }
+        [System.Security.SecurityCriticalAttribute]
+        public StackTrace(int skipFrames) { }
+        [System.Security.SecurityCriticalAttribute]
+        public StackTrace(int skipFrames, bool fNeedFileInfo) { }
+        [System.ObsoleteAttribute("This constructor has been deprecated.  Please use a constructor that does not require a Thread parameter.  http://go.microsoft.com/fwlink/?linkid=14202")]
+        [System.Security.SecurityCriticalAttribute]
+        public StackTrace(System.Threading.Thread targetThread, bool needFileInfo) { }
+        public virtual int FrameCount { get { return default(int); } }
+        public virtual System.Diagnostics.StackFrame GetFrame(int index) { return default(System.Diagnostics.StackFrame); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual System.Diagnostics.StackFrame[] GetFrames() { return default(System.Diagnostics.StackFrame[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+    }
+}
+namespace System.Diagnostics.CodeAnalysis
+{
+    [System.AttributeUsageAttribute((System.AttributeTargets)(32767), Inherited=false, AllowMultiple=true)]
+    [System.Diagnostics.ConditionalAttribute("CODE_ANALYSIS")]
+    public sealed partial class SuppressMessageAttribute : System.Attribute
+    {
+        public SuppressMessageAttribute(string category, string checkId) { }
+        public string Category { get { return default(string); } }
+        public string CheckId { get { return default(string); } }
+        public string Justification { get { return default(string); } set { } }
+        public string MessageId { get { return default(string); } set { } }
+        public string Scope { get { return default(string); } set { } }
+        public string Target { get { return default(string); } set { } }
+    }
+}
+namespace System.Diagnostics.Contracts
+{
+    public static partial class Contract
+    {
+        public static event System.EventHandler<System.Diagnostics.Contracts.ContractFailedEventArgs> ContractFailed { add { } remove { } }
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        [System.Diagnostics.ConditionalAttribute("DEBUG")]
+        
+        public static void Assert(bool condition) { }
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        [System.Diagnostics.ConditionalAttribute("DEBUG")]
+        
+        public static void Assert(bool condition, string userMessage) { }
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        [System.Diagnostics.ConditionalAttribute("DEBUG")]
+        
+        public static void Assume(bool condition) { }
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        [System.Diagnostics.ConditionalAttribute("DEBUG")]
+        
+        public static void Assume(bool condition, string userMessage) { }
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        
+        public static void EndContractBlock() { }
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        
+        public static void Ensures(bool condition) { }
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        
+        public static void Ensures(bool condition, string userMessage) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification="Exception type used in tools.")]
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        
+        public static void EnsuresOnThrow<TException>(bool condition) where TException : System.Exception { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification="Exception type used in tools.")]
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        
+        public static void EnsuresOnThrow<TException>(bool condition, string userMessage) where TException : System.Exception { }
+        
+        public static bool Exists(int fromInclusive, int toExclusive, System.Predicate<int> predicate) { return default(bool); }
+        
+        public static bool Exists<T>(System.Collections.Generic.IEnumerable<T> collection, System.Predicate<T> predicate) { return default(bool); }
+        
+        public static bool ForAll(int fromInclusive, int toExclusive, System.Predicate<int> predicate) { return default(bool); }
+        
+        public static bool ForAll<T>(System.Collections.Generic.IEnumerable<T> collection, System.Predicate<T> predicate) { return default(bool); }
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        
+        public static void Invariant(bool condition) { }
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        
+        public static void Invariant(bool condition, string userMessage) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId="value")]
+        
+        public static T OldValue<T>(T value) { return default(T); }
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        
+        public static void Requires(bool condition) { }
+        [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+        
+        public static void Requires(bool condition, string userMessage) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")]
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId="condition")]
+        
+        public static void Requires<TException>(bool condition) where TException : System.Exception { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")]
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId="condition")]
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId="userMessage")]
+        
+        public static void Requires<TException>(bool condition, string userMessage) where TException : System.Exception { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification="Not intended to be called at runtime.")]
+        
+        public static T Result<T>() { return default(T); }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId="0#", Justification="Not intended to be called at runtime.")]
+        
+        public static T ValueAtReturn<T>(out T value) { value = default(T); return default(T); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), AllowMultiple=false)]
+    [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+    public sealed partial class ContractAbbreviatorAttribute : System.Attribute
+    {
+        public ContractAbbreviatorAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), AllowMultiple=false)]
+    [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+    public sealed partial class ContractArgumentValidatorAttribute : System.Attribute
+    {
+        public ContractArgumentValidatorAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(5124), AllowMultiple=false, Inherited=false)]
+    [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+    [System.Diagnostics.ConditionalAttribute("DEBUG")]
+    public sealed partial class ContractClassAttribute : System.Attribute
+    {
+        public ContractClassAttribute(System.Type typeContainingContracts) { }
+        public System.Type TypeContainingContracts { get { return default(System.Type); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(4), AllowMultiple=false, Inherited=false)]
+    [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+    public sealed partial class ContractClassForAttribute : System.Attribute
+    {
+        public ContractClassForAttribute(System.Type typeContractsAreFor) { }
+        public System.Type TypeContractsAreFor { get { return default(System.Type); } }
+    }
+    public sealed partial class ContractFailedEventArgs : System.EventArgs
+    {
+        
+        public ContractFailedEventArgs(System.Diagnostics.Contracts.ContractFailureKind failureKind, string message, string condition, System.Exception originalException) { }
+        public string Condition { get { return default(string); } }
+        public System.Diagnostics.Contracts.ContractFailureKind FailureKind { get { return default(System.Diagnostics.Contracts.ContractFailureKind); } }
+        public bool Handled { get { return default(bool); } }
+        public string Message { get { return default(string); } }
+        public System.Exception OriginalException { get { return default(System.Exception); } }
+        public bool Unwind { get { return default(bool); } }
+        [System.Security.SecurityCriticalAttribute]
+        public void SetHandled() { }
+        [System.Security.SecurityCriticalAttribute]
+        public void SetUnwind() { }
+    }
+    public enum ContractFailureKind
+    {
+        Assert = 4,
+        Assume = 5,
+        Invariant = 3,
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Postcondition")]
+        Postcondition = 1,
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Postcondition")]
+        PostconditionOnException = 2,
+        Precondition = 0,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), AllowMultiple=false, Inherited=false)]
+    [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+    public sealed partial class ContractInvariantMethodAttribute : System.Attribute
+    {
+        public ContractInvariantMethodAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(32767), AllowMultiple=true, Inherited=false)]
+    [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+    public sealed partial class ContractOptionAttribute : System.Attribute
+    {
+        public ContractOptionAttribute(string category, string setting, bool enabled) { }
+        public ContractOptionAttribute(string category, string setting, string value) { }
+        public string Category { get { return default(string); } }
+        public bool Enabled { get { return default(bool); } }
+        public string Setting { get { return default(string); } }
+        public string Value { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(256))]
+    [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments", Justification="Thank you very much, but we like the names we've defined for the accessors")]
+    [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+    public sealed partial class ContractPublicPropertyNameAttribute : System.Attribute
+    {
+        public ContractPublicPropertyNameAttribute(string name) { }
+        public string Name { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1))]
+    public sealed partial class ContractReferenceAssemblyAttribute : System.Attribute
+    {
+        public ContractReferenceAssemblyAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(192), AllowMultiple=false, Inherited=true)]
+    [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+    public sealed partial class ContractRuntimeIgnoredAttribute : System.Attribute
+    {
+        public ContractRuntimeIgnoredAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(237))]
+    [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+    public sealed partial class ContractVerificationAttribute : System.Attribute
+    {
+        public ContractVerificationAttribute(bool value) { }
+        public bool Value { get { return default(bool); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(6884), AllowMultiple=false, Inherited=true)]
+    [System.Diagnostics.ConditionalAttribute("CONTRACTS_FULL")]
+    public sealed partial class PureAttribute : System.Attribute
+    {
+        public PureAttribute() { }
+    }
+}
+namespace System.Diagnostics.Contracts.Internal
+{
+    [System.ObsoleteAttribute("Use the ContractHelper class in the System.Runtime.CompilerServices namespace instead.")]
+    public static partial class ContractHelper
+    {
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1030:UseEventsWhereAppropriate")]
+        [System.Diagnostics.DebuggerNonUserCodeAttribute]
+        
+        public static string RaiseContractFailedEvent(System.Diagnostics.Contracts.ContractFailureKind failureKind, string userMessage, string conditionText, System.Exception innerException) { return default(string); }
+        [System.Diagnostics.DebuggerNonUserCodeAttribute]
+        
+        public static void TriggerFailure(System.Diagnostics.Contracts.ContractFailureKind kind, string displayMessage, string userMessage, string conditionText, System.Exception innerException) { }
+    }
+}
+namespace System.Diagnostics.SymbolStore
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface ISymbolDocumentWriter
+    {
+        void SetCheckSum(System.Guid algorithmId, byte[] checkSum);
+        void SetSource(byte[] source);
+    }
+}
+namespace System.Diagnostics.Tracing
+{
+    [System.FlagsAttribute]
+    public enum EventActivityOptions
+    {
+        Detachable = 8,
+        Disable = 2,
+        None = 0,
+        Recursive = 4,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64))]
+    public sealed partial class EventAttribute : System.Attribute
+    {
+        public EventAttribute(int eventId) { }
+        public System.Diagnostics.Tracing.EventActivityOptions ActivityOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Diagnostics.Tracing.EventActivityOptions); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Diagnostics.Tracing.EventChannel Channel { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Diagnostics.Tracing.EventChannel); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public int EventId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(int); } }
+        public System.Diagnostics.Tracing.EventKeywords Keywords { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Diagnostics.Tracing.EventKeywords); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Diagnostics.Tracing.EventLevel Level { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Diagnostics.Tracing.EventLevel); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Message { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(string); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Diagnostics.Tracing.EventOpcode Opcode { get { return default(System.Diagnostics.Tracing.EventOpcode); } set { } }
+        public System.Diagnostics.Tracing.EventTags Tags { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Diagnostics.Tracing.EventTags); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Diagnostics.Tracing.EventTask Task { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Diagnostics.Tracing.EventTask); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public byte Version { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(byte); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1028:EnumStorageShouldBeInt32", Justification="Backwards compatibility")]
+
+    public enum EventChannel : byte
+    {
+        Admin = (byte)16,
+        Analytic = (byte)18,
+        Debug = (byte)19,
+        None = (byte)0,
+        Operational = (byte)17,
+    }
+    public enum EventCommand
+    {
+        Disable = -3,
+        Enable = -2,
+        SendManifest = -1,
+        Update = 0,
+    }
+    public partial class EventCommandEventArgs : System.EventArgs
+    {
+        internal EventCommandEventArgs() { }
+        public System.Collections.Generic.IDictionary<string, string> Arguments { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Collections.Generic.IDictionary<string, string>); } }
+        public System.Diagnostics.Tracing.EventCommand Command { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Diagnostics.Tracing.EventCommand); } }
+        public bool DisableEvent(int eventId) { return default(bool); }
+        public bool EnableEvent(int eventId) { return default(bool); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(12), Inherited=false)]
+    public partial class EventDataAttribute : System.Attribute
+    {
+        public EventDataAttribute() { }
+        public string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(string); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(128))]
+    public partial class EventFieldAttribute : System.Attribute
+    {
+        public EventFieldAttribute() { }
+        public System.Diagnostics.Tracing.EventFieldFormat Format { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Diagnostics.Tracing.EventFieldFormat); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public System.Diagnostics.Tracing.EventFieldTags Tags { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Diagnostics.Tracing.EventFieldTags); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    public enum EventFieldFormat
+    {
+        Boolean = 3,
+        Default = 0,
+        Hexadecimal = 4,
+        HResult = 15,
+        Json = 12,
+        String = 2,
+        Xml = 11,
+    }
+    [System.FlagsAttribute]
+    public enum EventFieldTags
+    {
+        None = 0,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(128))]
+    public partial class EventIgnoreAttribute : System.Attribute
+    {
+        public EventIgnoreAttribute() { }
+    }
+    [System.FlagsAttribute]
+    public enum EventKeywords : long
+    {
+        All = (long)-1,
+        AuditFailure = (long)4503599627370496,
+        AuditSuccess = (long)9007199254740992,
+        CorrelationHint = (long)4503599627370496,
+        EventLogClassic = (long)36028797018963968,
+        MicrosoftTelemetry = (long)562949953421312,
+        None = (long)0,
+        Sqm = (long)2251799813685248,
+        WdiContext = (long)562949953421312,
+        WdiDiagnostic = (long)1125899906842624,
+    }
+    public enum EventLevel
+    {
+        Critical = 1,
+        Error = 2,
+        Informational = 4,
+        LogAlways = 0,
+        Verbose = 5,
+        Warning = 3,
+    }
+    public partial class EventListener : System.IDisposable
+    {
+        public EventListener() { }
+        public void DisableEvents(System.Diagnostics.Tracing.EventSource eventSource) { }
+        public virtual void Dispose() { }
+        public void EnableEvents(System.Diagnostics.Tracing.EventSource eventSource, System.Diagnostics.Tracing.EventLevel level) { }
+        public void EnableEvents(System.Diagnostics.Tracing.EventSource eventSource, System.Diagnostics.Tracing.EventLevel level, System.Diagnostics.Tracing.EventKeywords matchAnyKeyword) { }
+        public void EnableEvents(System.Diagnostics.Tracing.EventSource eventSource, System.Diagnostics.Tracing.EventLevel level, System.Diagnostics.Tracing.EventKeywords matchAnyKeyword, System.Collections.Generic.IDictionary<string, string> arguments) { }
+        public static int EventSourceIndex(System.Diagnostics.Tracing.EventSource eventSource) { return default(int); }
+        protected internal virtual void OnEventSourceCreated(System.Diagnostics.Tracing.EventSource eventSource) { }
+        protected internal virtual void OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs eventData) { }
+    }
+    [System.FlagsAttribute]
+    public enum EventManifestOptions
+    {
+        AllCultures = 2,
+        AllowEventSourceOverride = 8,
+        None = 0,
+        OnlyIfNeededForRegistration = 4,
+        Strict = 1,
+    }
+
+    public enum EventOpcode
+    {
+        DataCollectionStart = 3,
+        DataCollectionStop = 4,
+        Extension = 5,
+        Info = 0,
+        Receive = 240,
+        Reply = 6,
+        Resume = 7,
+        Send = 9,
+        Start = 1,
+        Stop = 2,
+        Suspend = 8,
+    }
+    public partial class EventSource : System.IDisposable
+    {
+        protected EventSource() { }
+        protected EventSource(bool throwOnEventWriteErrors) { }
+        protected EventSource(System.Diagnostics.Tracing.EventSourceSettings settings) { }
+        protected EventSource(System.Diagnostics.Tracing.EventSourceSettings settings, params string[] traits) { }
+        public EventSource(string eventSourceName) { }
+        public EventSource(string eventSourceName, System.Diagnostics.Tracing.EventSourceSettings config) { }
+        public EventSource(string eventSourceName, System.Diagnostics.Tracing.EventSourceSettings config, params string[] traits) { }
+        public System.Exception ConstructionException { get { return default(System.Exception); } }
+        public static System.Guid CurrentThreadActivityId { [System.Security.SecuritySafeCriticalAttribute]get { return default(System.Guid); } }
+        public System.Guid Guid { get { return default(System.Guid); } }
+        public string Name { get { return default(string); } }
+        public System.Diagnostics.Tracing.EventSourceSettings Settings { get { return default(System.Diagnostics.Tracing.EventSourceSettings); } }
+        public event System.EventHandler<System.Diagnostics.Tracing.EventCommandEventArgs> EventCommandExecuted { add { } remove { } }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        ~EventSource() { }
+        public static string GenerateManifest(System.Type eventSourceType, string assemblyPathToIncludeInManifest) { return default(string); }
+        public static string GenerateManifest(System.Type eventSourceType, string assemblyPathToIncludeInManifest, System.Diagnostics.Tracing.EventManifestOptions flags) { return default(string); }
+        public static System.Guid GetGuid(System.Type eventSourceType) { return default(System.Guid); }
+        public static string GetName(System.Type eventSourceType) { return default(string); }
+        public static System.Collections.Generic.IEnumerable<System.Diagnostics.Tracing.EventSource> GetSources() { return default(System.Collections.Generic.IEnumerable<System.Diagnostics.Tracing.EventSource>); }
+        public string GetTrait(string key) { return default(string); }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        public bool IsEnabled() { return default(bool); }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        public bool IsEnabled(System.Diagnostics.Tracing.EventLevel level, System.Diagnostics.Tracing.EventKeywords keywords) { return default(bool); }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        public bool IsEnabled(System.Diagnostics.Tracing.EventLevel level, System.Diagnostics.Tracing.EventKeywords keywords, System.Diagnostics.Tracing.EventChannel channel) { return default(bool); }
+        protected virtual void OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs command) { }
+        public static void SendCommand(System.Diagnostics.Tracing.EventSource eventSource, System.Diagnostics.Tracing.EventCommand command, System.Collections.Generic.IDictionary<string, string> commandArguments) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void SetCurrentThreadActivityId(System.Guid activityId) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void SetCurrentThreadActivityId(System.Guid activityId, out System.Guid oldActivityThatWillContinue) { oldActivityThatWillContinue = default(System.Guid); }
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(string eventName) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(string eventName, System.Diagnostics.Tracing.EventSourceOptions options) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write<T>(string eventName, T data) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write<T>(string eventName, System.Diagnostics.Tracing.EventSourceOptions options, T data) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write<T>(string eventName, ref System.Diagnostics.Tracing.EventSourceOptions options, ref T data) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write<T>(string eventName, ref System.Diagnostics.Tracing.EventSourceOptions options, ref System.Guid activityId, ref System.Guid relatedActivityId, ref T data) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, byte[] arg1) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, int arg1) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, int arg1, int arg2) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, int arg1, int arg2, int arg3) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, int arg1, string arg2) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, long arg1) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, long arg1, byte[] arg2) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, long arg1, long arg2) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, long arg1, long arg2, long arg3) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, long arg1, string arg2) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, params object[] args) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, string arg1) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, string arg1, int arg2) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, string arg1, int arg2, int arg3) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, string arg1, long arg2) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, string arg1, string arg2) { }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Concurrency", "CA8001", Justification="This does not need to be correct when racing with other threads")]
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEvent(int eventId, string arg1, string arg2, string arg3) { }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        protected unsafe void WriteEventCore(int eventId, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void WriteEventWithRelatedActivityId(int eventId, System.Guid relatedActivityId, params object[] args) { }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        protected unsafe void WriteEventWithRelatedActivityIdCore(int eventId, System.Guid* relatedActivityId, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data) { }
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        protected internal partial struct EventData
+        {
+            public System.IntPtr DataPointer { get { return default(System.IntPtr); } set { } }
+            public int Size { get { return default(int); } set { } }
+        }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(4))]
+    public sealed partial class EventSourceAttribute : System.Attribute
+    {
+        public EventSourceAttribute() { }
+        public string Guid { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(string); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string LocalizationResources { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(string); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+        public string Name { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(string); } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+    }
+    public partial class EventSourceException : System.Exception
+    {
+        public EventSourceException() { }
+        public EventSourceException(string message) { }
+        public EventSourceException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct EventSourceOptions
+    {
+        public System.Diagnostics.Tracing.EventActivityOptions ActivityOptions { get { return default(System.Diagnostics.Tracing.EventActivityOptions); } set { } }
+        public System.Diagnostics.Tracing.EventKeywords Keywords { get { return default(System.Diagnostics.Tracing.EventKeywords); } set { } }
+        public System.Diagnostics.Tracing.EventLevel Level { get { return default(System.Diagnostics.Tracing.EventLevel); } set { } }
+        public System.Diagnostics.Tracing.EventOpcode Opcode { get { return default(System.Diagnostics.Tracing.EventOpcode); } set { } }
+        public System.Diagnostics.Tracing.EventTags Tags { get { return default(System.Diagnostics.Tracing.EventTags); } set { } }
+    }
+    [System.FlagsAttribute]
+    public enum EventSourceSettings
+    {
+        Default = 0,
+        EtwManifestEventFormat = 4,
+        EtwSelfDescribingEventFormat = 8,
+        ThrowOnEventWriteErrors = 1,
+    }
+    [System.FlagsAttribute]
+    public enum EventTags
+    {
+        None = 0,
+    }
+
+    public enum EventTask
+    {
+        None = 0,
+    }
+    public partial class EventWrittenEventArgs : System.EventArgs
+    {
+        internal EventWrittenEventArgs() { }
+        public System.Guid ActivityId { [System.Security.SecurityCriticalAttribute]get { return default(System.Guid); } }
+        public System.Diagnostics.Tracing.EventChannel Channel { get { return default(System.Diagnostics.Tracing.EventChannel); } }
+        public int EventId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(int); } }
+        public string EventName { get { return default(string); } }
+        public System.Diagnostics.Tracing.EventSource EventSource { get { return default(System.Diagnostics.Tracing.EventSource); } }
+        public System.Diagnostics.Tracing.EventKeywords Keywords { get { return default(System.Diagnostics.Tracing.EventKeywords); } }
+        public System.Diagnostics.Tracing.EventLevel Level { get { return default(System.Diagnostics.Tracing.EventLevel); } }
+        public string Message { get { return default(string); } }
+        public System.Diagnostics.Tracing.EventOpcode Opcode { get { return default(System.Diagnostics.Tracing.EventOpcode); } }
+        public System.Collections.ObjectModel.ReadOnlyCollection<object> Payload { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Collections.ObjectModel.ReadOnlyCollection<object>); } }
+        public System.Collections.ObjectModel.ReadOnlyCollection<string> PayloadNames { get { return default(System.Collections.ObjectModel.ReadOnlyCollection<string>); } }
+        public System.Guid RelatedActivityId { [System.Runtime.CompilerServices.CompilerGeneratedAttribute, System.Security.SecurityCriticalAttribute]get { return default(System.Guid); } }
+        public System.Diagnostics.Tracing.EventTags Tags { get { return default(System.Diagnostics.Tracing.EventTags); } }
+        public System.Diagnostics.Tracing.EventTask Task { get { return default(System.Diagnostics.Tracing.EventTask); } }
+        public byte Version { get { return default(byte); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64))]
+    public sealed partial class NonEventAttribute : System.Attribute
+    {
+        public NonEventAttribute() { }
+    }
+}
+namespace System.Globalization
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Calendar
+    {
+        public const int CurrentEra = 0;
+        protected Calendar() { }
+#if FEATURE_COREFX_GLOBALIZATION 
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        protected virtual int DaysInYearBeforeMinSupportedYear { get { return default(int); } }
+        public abstract int[] Eras { get; }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public bool IsReadOnly { get { return default(bool); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public virtual int TwoDigitYearMax { get { return default(int); } set { } }
+        public virtual System.DateTime AddDays(System.DateTime time, int days) { return default(System.DateTime); }
+        public virtual System.DateTime AddHours(System.DateTime time, int hours) { return default(System.DateTime); }
+        public virtual System.DateTime AddMilliseconds(System.DateTime time, double milliseconds) { return default(System.DateTime); }
+        public virtual System.DateTime AddMinutes(System.DateTime time, int minutes) { return default(System.DateTime); }
+        public abstract System.DateTime AddMonths(System.DateTime time, int months);
+        public virtual System.DateTime AddSeconds(System.DateTime time, int seconds) { return default(System.DateTime); }
+        public virtual System.DateTime AddWeeks(System.DateTime time, int weeks) { return default(System.DateTime); }
+        public abstract System.DateTime AddYears(System.DateTime time, int years);
+        public abstract int GetDayOfMonth(System.DateTime time);
+        public abstract System.DayOfWeek GetDayOfWeek(System.DateTime time);
+        public abstract int GetDayOfYear(System.DateTime time);
+        public virtual int GetDaysInMonth(int year, int month) { return default(int); }
+        public abstract int GetDaysInMonth(int year, int month, int era);
+        public virtual int GetDaysInYear(int year) { return default(int); }
+        public abstract int GetDaysInYear(int year, int era);
+        public abstract int GetEra(System.DateTime time);
+        public virtual int GetHour(System.DateTime time) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual int GetLeapMonth(int year, int era) { return default(int); }
+        public virtual double GetMilliseconds(System.DateTime time) { return default(double); }
+        public virtual int GetMinute(System.DateTime time) { return default(int); }
+        public abstract int GetMonth(System.DateTime time);
+        public virtual int GetMonthsInYear(int year) { return default(int); }
+        public abstract int GetMonthsInYear(int year, int era);
+        public virtual int GetSecond(System.DateTime time) { return default(int); }
+        public virtual int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) { return default(int); }
+        public abstract int GetYear(System.DateTime time);
+        public virtual bool IsLeapDay(int year, int month, int day) { return default(bool); }
+        public abstract bool IsLeapDay(int year, int month, int day, int era);
+        public virtual bool IsLeapMonth(int year, int month) { return default(bool); }
+        public abstract bool IsLeapMonth(int year, int month, int era);
+        public virtual bool IsLeapYear(int year) { return default(bool); }
+        public abstract bool IsLeapYear(int year, int era);
+        public virtual System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond) { return default(System.DateTime); }
+        public abstract System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era);
+        public virtual int ToFourDigitYear(int year) { return default(int); }
+    }
+#if FEATURE_COREFX_GLOBALIZATION
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum CalendarAlgorithmType
+    {
+        LunarCalendar = 2,
+        LunisolarCalendar = 3,
+        SolarCalendar = 1,
+        Unknown = 0,
+    }
+#endif
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum CalendarWeekRule
+    {
+        FirstDay = 0,
+        FirstFourDayWeek = 2,
+        FirstFullWeek = 1,
+    }
+    public static partial class CharUnicodeInfo
+    {
+        public static double GetNumericValue(char ch) { return default(double); }
+        public static double GetNumericValue(string s, int index) { return default(double); }
+        public static System.Globalization.UnicodeCategory GetUnicodeCategory(char ch) { return default(System.Globalization.UnicodeCategory); }
+        public static System.Globalization.UnicodeCategory GetUnicodeCategory(string s, int index) { return default(System.Globalization.UnicodeCategory); }
+    }
+    public partial class ChineseLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar
+    {
+        public const int ChineseEra = 1;
+        public ChineseLunisolarCalendar() { }
+        protected override int DaysInYearBeforeMinSupportedYear { get { return default(int); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int[] Eras { get { return default(int[]); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetEra(System.DateTime time) { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class CompareInfo
+    {
+        internal CompareInfo() { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual string Name { get { return default(string); } }
+        public virtual int Compare(string string1, int offset1, int length1, string string2, int offset2, int length2) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual int Compare(string string1, int offset1, int length1, string string2, int offset2, int length2, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int Compare(string string1, int offset1, string string2, int offset2) { return default(int); }
+        public virtual int Compare(string string1, int offset1, string string2, int offset2, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int Compare(string string1, string string2) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual int Compare(string string1, string string2, System.Globalization.CompareOptions options) { return default(int); }
+        public override bool Equals(object value) { return default(bool); }
+        public static System.Globalization.CompareInfo GetCompareInfo(string name) { return default(System.Globalization.CompareInfo); }
+        public override int GetHashCode() { return default(int); }
+        public virtual int GetHashCode(string source, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int IndexOf(string source, char value) { return default(int); }
+        public virtual int IndexOf(string source, char value, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int IndexOf(string source, char value, int startIndex, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int IndexOf(string source, char value, int startIndex, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual int IndexOf(string source, char value, int startIndex, int count, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int IndexOf(string source, string value) { return default(int); }
+        public virtual int IndexOf(string source, string value, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int IndexOf(string source, string value, int startIndex, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int IndexOf(string source, string value, int startIndex, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual int IndexOf(string source, string value, int startIndex, int count, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual bool IsPrefix(string source, string prefix) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual bool IsPrefix(string source, string prefix, System.Globalization.CompareOptions options) { return default(bool); }
+        public virtual bool IsSuffix(string source, string suffix) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual bool IsSuffix(string source, string suffix, System.Globalization.CompareOptions options) { return default(bool); }
+        public virtual int LastIndexOf(string source, char value) { return default(int); }
+        public virtual int LastIndexOf(string source, char value, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int LastIndexOf(string source, char value, int startIndex, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int LastIndexOf(string source, char value, int startIndex, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual int LastIndexOf(string source, char value, int startIndex, int count, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int LastIndexOf(string source, string value) { return default(int); }
+        public virtual int LastIndexOf(string source, string value, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int LastIndexOf(string source, string value, int startIndex, System.Globalization.CompareOptions options) { return default(int); }
+        public virtual int LastIndexOf(string source, string value, int startIndex, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual int LastIndexOf(string source, string value, int startIndex, int count, System.Globalization.CompareOptions options) { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum CompareOptions
+    {
+        IgnoreCase = 1,
+        IgnoreKanaType = 8,
+        IgnoreNonSpace = 2,
+        IgnoreSymbols = 4,
+        IgnoreWidth = 16,
+        None = 0,
+        Ordinal = 1073741824,
+        OrdinalIgnoreCase = 268435456,
+        StringSort = 536870912,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class CultureInfo : System.IFormatProvider
+    {
+        public CultureInfo(string name) { }
+        public virtual System.Globalization.Calendar Calendar { get { return default(System.Globalization.Calendar); } }
+        public virtual System.Globalization.CompareInfo CompareInfo { get { return default(System.Globalization.CompareInfo); } }
+        public static System.Globalization.CultureInfo CurrentCulture { get { return default(System.Globalization.CultureInfo); } set { } }
+        public static System.Globalization.CultureInfo CurrentUICulture { get { return default(System.Globalization.CultureInfo); } set { } }
+        public virtual System.Globalization.DateTimeFormatInfo DateTimeFormat { get { return default(System.Globalization.DateTimeFormatInfo); } set { } }
+        public static System.Globalization.CultureInfo DefaultThreadCurrentCulture { get { return default(System.Globalization.CultureInfo); } [System.Security.SecuritySafeCriticalAttribute]set { } }
+        public static System.Globalization.CultureInfo DefaultThreadCurrentUICulture { get { return default(System.Globalization.CultureInfo); } [System.Security.SecuritySafeCriticalAttribute]set { } }
+        public virtual string DisplayName { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public virtual string EnglishName { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public static System.Globalization.CultureInfo InvariantCulture { get { return default(System.Globalization.CultureInfo); } }
+        public virtual bool IsNeutralCulture { get { return default(bool); } }
+        public bool IsReadOnly { get { return default(bool); } }
+        public virtual string Name { get { return default(string); } }
+        public virtual string NativeName { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public virtual System.Globalization.NumberFormatInfo NumberFormat { get { return default(System.Globalization.NumberFormatInfo); } set { } }
+        public virtual System.Globalization.Calendar[] OptionalCalendars { get { return default(System.Globalization.Calendar[]); } }
+        public virtual System.Globalization.CultureInfo Parent { [System.Security.SecuritySafeCriticalAttribute]get { return default(System.Globalization.CultureInfo); } }
+        public virtual System.Globalization.TextInfo TextInfo { get { return default(System.Globalization.TextInfo); } }
+        public virtual string TwoLetterISOLanguageName { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public virtual object Clone() { return default(object); }
+        public override bool Equals(object value) { return default(bool); }
+        public virtual object GetFormat(System.Type formatType) { return default(object); }
+        public override int GetHashCode() { return default(int); }
+        public static System.Globalization.CultureInfo ReadOnly(System.Globalization.CultureInfo ci) { return default(System.Globalization.CultureInfo); }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class CultureNotFoundException : System.ArgumentException
+    {
+        public CultureNotFoundException() { }
+        public CultureNotFoundException(string message) { }
+        public CultureNotFoundException(string message, System.Exception innerException) { }
+        public CultureNotFoundException(string paramName, string message) { }
+        public CultureNotFoundException(string message, string invalidCultureName, System.Exception innerException) { }
+        public CultureNotFoundException(string paramName, string invalidCultureName, string message) { }
+        public virtual string InvalidCultureName { get { return default(string); } }
+        public override string Message { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DateTimeFormatInfo : System.IFormatProvider
+    {
+        public DateTimeFormatInfo() { }
+        public string[] AbbreviatedDayNames { get { return default(string[]); } set { } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public string[] AbbreviatedMonthGenitiveNames { get { return default(string[]); } set { } }
+        public string[] AbbreviatedMonthNames { get { return default(string[]); } set { } }
+        public string AMDesignator { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } set { } }
+        public System.Globalization.Calendar Calendar { get { return default(System.Globalization.Calendar); } set { } }
+        public System.Globalization.CalendarWeekRule CalendarWeekRule { get { return default(System.Globalization.CalendarWeekRule); } set { } }
+        public static System.Globalization.DateTimeFormatInfo CurrentInfo { get { return default(System.Globalization.DateTimeFormatInfo); } }
+        public string[] DayNames { get { return default(string[]); } set { } }
+        public System.DayOfWeek FirstDayOfWeek { get { return default(System.DayOfWeek); } set { } }
+        public string FullDateTimePattern { get { return default(string); } set { } }
+        public static System.Globalization.DateTimeFormatInfo InvariantInfo { get { return default(System.Globalization.DateTimeFormatInfo); } }
+        public bool IsReadOnly { get { return default(bool); } }
+        public string LongDatePattern { get { return default(string); } set { } }
+        public string LongTimePattern { get { return default(string); } set { } }
+        public string MonthDayPattern { get { return default(string); } set { } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public string[] MonthGenitiveNames { get { return default(string[]); } set { } }
+        public string[] MonthNames { get { return default(string[]); } set { } }
+        public string PMDesignator { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } set { } }
+        public string RFC1123Pattern { get { return default(string); } }
+        public string ShortDatePattern { get { return default(string); } set { } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public string[] ShortestDayNames { get { return default(string[]); } set { } }
+        public string ShortTimePattern { get { return default(string); } set { } }
+        public string SortableDateTimePattern { get { return default(string); } }
+        public string UniversalSortableDateTimePattern { get { return default(string); } }
+        public string YearMonthPattern { get { return default(string); } set { } }
+        public object Clone() { return default(object); }
+        public string GetAbbreviatedDayName(System.DayOfWeek dayofweek) { return default(string); }
+        public string GetAbbreviatedEraName(int era) { return default(string); }
+        public string GetAbbreviatedMonthName(int month) { return default(string); }
+        public string GetDayName(System.DayOfWeek dayofweek) { return default(string); }
+        public int GetEra(string eraName) { return default(int); }
+        public string GetEraName(int era) { return default(string); }
+        public object GetFormat(System.Type formatType) { return default(object); }
+        public static System.Globalization.DateTimeFormatInfo GetInstance(System.IFormatProvider provider) { return default(System.Globalization.DateTimeFormatInfo); }
+        public string GetMonthName(int month) { return default(string); }
+        public static System.Globalization.DateTimeFormatInfo ReadOnly(System.Globalization.DateTimeFormatInfo dtfi) { return default(System.Globalization.DateTimeFormatInfo); }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum DateTimeStyles
+    {
+        AdjustToUniversal = 16,
+        AllowInnerWhite = 4,
+        AllowLeadingWhite = 1,
+        AllowTrailingWhite = 2,
+        AllowWhiteSpaces = 7,
+        AssumeLocal = 32,
+        AssumeUniversal = 64,
+        NoCurrentDateDefault = 8,
+        None = 0,
+        RoundtripKind = 128,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class EastAsianLunisolarCalendar : System.Globalization.Calendar
+    {
+        internal EastAsianLunisolarCalendar() { }
+#if FEATURE_COREFX_GLOBALIZATION
+        public override System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        public override int TwoDigitYearMax { get { return default(int); } set { } }
+        public override System.DateTime AddMonths(System.DateTime time, int months) { return default(System.DateTime); }
+        public override System.DateTime AddYears(System.DateTime time, int years) { return default(System.DateTime); }
+        public int GetCelestialStem(int sexagenaryYear) { return default(int); }
+        public override int GetDayOfMonth(System.DateTime time) { return default(int); }
+        public override System.DayOfWeek GetDayOfWeek(System.DateTime time) { return default(System.DayOfWeek); }
+        public override int GetDayOfYear(System.DateTime time) { return default(int); }
+        public override int GetDaysInMonth(int year, int month, int era) { return default(int); }
+        public override int GetDaysInYear(int year, int era) { return default(int); }
+        public override int GetLeapMonth(int year, int era) { return default(int); }
+        public override int GetMonth(System.DateTime time) { return default(int); }
+        public override int GetMonthsInYear(int year, int era) { return default(int); }
+        public virtual int GetSexagenaryYear(System.DateTime time) { return default(int); }
+        public int GetTerrestrialBranch(int sexagenaryYear) { return default(int); }
+        public override int GetYear(System.DateTime time) { return default(int); }
+        public override bool IsLeapDay(int year, int month, int day, int era) { return default(bool); }
+        public override bool IsLeapMonth(int year, int month, int era) { return default(bool); }
+        public override bool IsLeapYear(int year, int era) { return default(bool); }
+        public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) { return default(System.DateTime); }
+        public override int ToFourDigitYear(int year) { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class GregorianCalendar : System.Globalization.Calendar
+    {
+        public const int ADEra = 1;
+        public GregorianCalendar() { }
+        public GregorianCalendar(System.Globalization.GregorianCalendarTypes type) { }
+#if FEATURE_COREFX_GLOBALIZATION 
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        public virtual System.Globalization.GregorianCalendarTypes CalendarType { get { return default(System.Globalization.GregorianCalendarTypes); } set { } }
+        public override int[] Eras { get { return default(int[]); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int TwoDigitYearMax { get { return default(int); } set { } }
+        public override System.DateTime AddMonths(System.DateTime time, int months) { return default(System.DateTime); }
+        public override System.DateTime AddYears(System.DateTime time, int years) { return default(System.DateTime); }
+        public override int GetDayOfMonth(System.DateTime time) { return default(int); }
+        public override System.DayOfWeek GetDayOfWeek(System.DateTime time) { return default(System.DayOfWeek); }
+        public override int GetDayOfYear(System.DateTime time) { return default(int); }
+        public override int GetDaysInMonth(int year, int month, int era) { return default(int); }
+        public override int GetDaysInYear(int year, int era) { return default(int); }
+        public override int GetEra(System.DateTime time) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetLeapMonth(int year, int era) { return default(int); }
+        public override int GetMonth(System.DateTime time) { return default(int); }
+        public override int GetMonthsInYear(int year, int era) { return default(int); }
+        public override int GetYear(System.DateTime time) { return default(int); }
+        public override bool IsLeapDay(int year, int month, int day, int era) { return default(bool); }
+        public override bool IsLeapMonth(int year, int month, int era) { return default(bool); }
+        public override bool IsLeapYear(int year, int era) { return default(bool); }
+        public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) { return default(System.DateTime); }
+        public override int ToFourDigitYear(int year) { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum GregorianCalendarTypes
+    {
+        Arabic = 10,
+        Localized = 1,
+        MiddleEastFrench = 9,
+        TransliteratedEnglish = 11,
+        TransliteratedFrench = 12,
+        USEnglish = 2,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class HebrewCalendar : System.Globalization.Calendar
+    {
+        public HebrewCalendar() { }
+#if FEATURE_COREFX_GLOBALIZATION 
+        public override System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        public override int[] Eras { get { return default(int[]); } }
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int TwoDigitYearMax { get { return default(int); } set { } }
+        public override System.DateTime AddMonths(System.DateTime time, int months) { return default(System.DateTime); }
+        public override System.DateTime AddYears(System.DateTime time, int years) { return default(System.DateTime); }
+        public override int GetDayOfMonth(System.DateTime time) { return default(int); }
+        public override System.DayOfWeek GetDayOfWeek(System.DateTime time) { return default(System.DayOfWeek); }
+        public override int GetDayOfYear(System.DateTime time) { return default(int); }
+        public override int GetDaysInMonth(int year, int month, int era) { return default(int); }
+        public override int GetDaysInYear(int year, int era) { return default(int); }
+        public override int GetEra(System.DateTime time) { return default(int); }
+        public override int GetLeapMonth(int year, int era) { return default(int); }
+        public override int GetMonth(System.DateTime time) { return default(int); }
+        public override int GetMonthsInYear(int year, int era) { return default(int); }
+        public override int GetYear(System.DateTime time) { return default(int); }
+        public override bool IsLeapDay(int year, int month, int day, int era) { return default(bool); }
+        public override bool IsLeapMonth(int year, int month, int era) { return default(bool); }
+        public override bool IsLeapYear(int year, int era) { return default(bool); }
+        public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) { return default(System.DateTime); }
+        public override int ToFourDigitYear(int year) { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class HijriCalendar : System.Globalization.Calendar
+    {
+        public HijriCalendar() { }
+#if FEATURE_COREFX_GLOBALIZATION 
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        protected override int DaysInYearBeforeMinSupportedYear { get { return default(int); } }
+        public override int[] Eras { get { return default(int[]); } }
+        public int HijriAdjustment { [System.Security.SecuritySafeCriticalAttribute]get { return default(int); } set { } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int TwoDigitYearMax { get { return default(int); } set { } }
+        public override System.DateTime AddMonths(System.DateTime time, int months) { return default(System.DateTime); }
+        public override System.DateTime AddYears(System.DateTime time, int years) { return default(System.DateTime); }
+        public override int GetDayOfMonth(System.DateTime time) { return default(int); }
+        public override System.DayOfWeek GetDayOfWeek(System.DateTime time) { return default(System.DayOfWeek); }
+        public override int GetDayOfYear(System.DateTime time) { return default(int); }
+        public override int GetDaysInMonth(int year, int month, int era) { return default(int); }
+        public override int GetDaysInYear(int year, int era) { return default(int); }
+        public override int GetEra(System.DateTime time) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetLeapMonth(int year, int era) { return default(int); }
+        public override int GetMonth(System.DateTime time) { return default(int); }
+        public override int GetMonthsInYear(int year, int era) { return default(int); }
+        public override int GetYear(System.DateTime time) { return default(int); }
+        public override bool IsLeapDay(int year, int month, int day, int era) { return default(bool); }
+        public override bool IsLeapMonth(int year, int month, int era) { return default(bool); }
+        public override bool IsLeapYear(int year, int era) { return default(bool); }
+        public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) { return default(System.DateTime); }
+        public override int ToFourDigitYear(int year) { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class JapaneseCalendar : System.Globalization.Calendar
+    {
+        public JapaneseCalendar() { }
+#if FEATURE_COREFX_GLOBALIZATION 
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        public override int[] Eras { get { return default(int[]); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int TwoDigitYearMax { get { return default(int); } set { } }
+        public override System.DateTime AddMonths(System.DateTime time, int months) { return default(System.DateTime); }
+        public override System.DateTime AddYears(System.DateTime time, int years) { return default(System.DateTime); }
+        public override int GetDayOfMonth(System.DateTime time) { return default(int); }
+        public override System.DayOfWeek GetDayOfWeek(System.DateTime time) { return default(System.DayOfWeek); }
+        public override int GetDayOfYear(System.DateTime time) { return default(int); }
+        public override int GetDaysInMonth(int year, int month, int era) { return default(int); }
+        public override int GetDaysInYear(int year, int era) { return default(int); }
+        public override int GetEra(System.DateTime time) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetLeapMonth(int year, int era) { return default(int); }
+        public override int GetMonth(System.DateTime time) { return default(int); }
+        public override int GetMonthsInYear(int year, int era) { return default(int); }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Contracts", "CC1055")]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) { return default(int); }
+        public override int GetYear(System.DateTime time) { return default(int); }
+        public override bool IsLeapDay(int year, int month, int day, int era) { return default(bool); }
+        public override bool IsLeapMonth(int year, int month, int era) { return default(bool); }
+        public override bool IsLeapYear(int year, int era) { return default(bool); }
+        public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) { return default(System.DateTime); }
+        public override int ToFourDigitYear(int year) { return default(int); }
+    }
+    public partial class JapaneseLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar
+    {
+        public const int JapaneseEra = 1;
+        public JapaneseLunisolarCalendar() { }
+        protected override int DaysInYearBeforeMinSupportedYear { get { return default(int); } }
+        public override int[] Eras { get { return default(int[]); } }
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int GetEra(System.DateTime time) { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class JulianCalendar : System.Globalization.Calendar
+    {
+        public static readonly int JulianEra;
+        public JulianCalendar() { }
+#if FEATURE_COREFX_GLOBALIZATION 
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        public override int[] Eras { get { return default(int[]); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int TwoDigitYearMax { get { return default(int); } set { } }
+        public override System.DateTime AddMonths(System.DateTime time, int months) { return default(System.DateTime); }
+        public override System.DateTime AddYears(System.DateTime time, int years) { return default(System.DateTime); }
+        public override int GetDayOfMonth(System.DateTime time) { return default(int); }
+        public override System.DayOfWeek GetDayOfWeek(System.DateTime time) { return default(System.DayOfWeek); }
+        public override int GetDayOfYear(System.DateTime time) { return default(int); }
+        public override int GetDaysInMonth(int year, int month, int era) { return default(int); }
+        public override int GetDaysInYear(int year, int era) { return default(int); }
+        public override int GetEra(System.DateTime time) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetLeapMonth(int year, int era) { return default(int); }
+        public override int GetMonth(System.DateTime time) { return default(int); }
+        public override int GetMonthsInYear(int year, int era) { return default(int); }
+        public override int GetYear(System.DateTime time) { return default(int); }
+        public override bool IsLeapDay(int year, int month, int day, int era) { return default(bool); }
+        public override bool IsLeapMonth(int year, int month, int era) { return default(bool); }
+        public override bool IsLeapYear(int year, int era) { return default(bool); }
+        public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) { return default(System.DateTime); }
+        public override int ToFourDigitYear(int year) { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class KoreanCalendar : System.Globalization.Calendar
+    {
+        public const int KoreanEra = 1;
+        public KoreanCalendar() { }
+#if FEATURE_COREFX_GLOBALIZATION 
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        public override int[] Eras { get { return default(int[]); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int TwoDigitYearMax { get { return default(int); } set { } }
+        public override System.DateTime AddMonths(System.DateTime time, int months) { return default(System.DateTime); }
+        public override System.DateTime AddYears(System.DateTime time, int years) { return default(System.DateTime); }
+        public override int GetDayOfMonth(System.DateTime time) { return default(int); }
+        public override System.DayOfWeek GetDayOfWeek(System.DateTime time) { return default(System.DayOfWeek); }
+        public override int GetDayOfYear(System.DateTime time) { return default(int); }
+        public override int GetDaysInMonth(int year, int month, int era) { return default(int); }
+        public override int GetDaysInYear(int year, int era) { return default(int); }
+        public override int GetEra(System.DateTime time) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetLeapMonth(int year, int era) { return default(int); }
+        public override int GetMonth(System.DateTime time) { return default(int); }
+        public override int GetMonthsInYear(int year, int era) { return default(int); }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Contracts", "CC1055")]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) { return default(int); }
+        public override int GetYear(System.DateTime time) { return default(int); }
+        public override bool IsLeapDay(int year, int month, int day, int era) { return default(bool); }
+        public override bool IsLeapMonth(int year, int month, int era) { return default(bool); }
+        public override bool IsLeapYear(int year, int era) { return default(bool); }
+        public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) { return default(System.DateTime); }
+        public override int ToFourDigitYear(int year) { return default(int); }
+    }
+    public partial class KoreanLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar
+    {
+        public const int GregorianEra = 1;
+        public KoreanLunisolarCalendar() { }
+        protected override int DaysInYearBeforeMinSupportedYear { get { return default(int); } }
+        public override int[] Eras { get { return default(int[]); } }
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int GetEra(System.DateTime time) { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class NumberFormatInfo : System.IFormatProvider
+    {
+        public NumberFormatInfo() { }
+        public int CurrencyDecimalDigits { get { return default(int); } set { } }
+        public string CurrencyDecimalSeparator { get { return default(string); } set { } }
+        public string CurrencyGroupSeparator { get { return default(string); } set { } }
+        public int[] CurrencyGroupSizes { get { return default(int[]); } set { } }
+        public int CurrencyNegativePattern { get { return default(int); } set { } }
+        public int CurrencyPositivePattern { get { return default(int); } set { } }
+        public string CurrencySymbol { get { return default(string); } set { } }
+        public static System.Globalization.NumberFormatInfo CurrentInfo { get { return default(System.Globalization.NumberFormatInfo); } }
+        public static System.Globalization.NumberFormatInfo InvariantInfo { get { return default(System.Globalization.NumberFormatInfo); } }
+        public bool IsReadOnly { get { return default(bool); } }
+        public string NaNSymbol { get { return default(string); } set { } }
+        public string NegativeInfinitySymbol { get { return default(string); } set { } }
+        public string NegativeSign { get { return default(string); } set { } }
+        public int NumberDecimalDigits { get { return default(int); } set { } }
+        public string NumberDecimalSeparator { get { return default(string); } set { } }
+        public string NumberGroupSeparator { get { return default(string); } set { } }
+        public int[] NumberGroupSizes { get { return default(int[]); } set { } }
+        public int NumberNegativePattern { get { return default(int); } set { } }
+        public int PercentDecimalDigits { get { return default(int); } set { } }
+        public string PercentDecimalSeparator { get { return default(string); } set { } }
+        public string PercentGroupSeparator { get { return default(string); } set { } }
+        public int[] PercentGroupSizes { get { return default(int[]); } set { } }
+        public int PercentNegativePattern { get { return default(int); } set { } }
+        public int PercentPositivePattern { get { return default(int); } set { } }
+        public string PercentSymbol { get { return default(string); } set { } }
+        public string PerMilleSymbol { get { return default(string); } set { } }
+        public string PositiveInfinitySymbol { get { return default(string); } set { } }
+        public string PositiveSign { get { return default(string); } set { } }
+        public object Clone() { return default(object); }
+        public object GetFormat(System.Type formatType) { return default(object); }
+        public static System.Globalization.NumberFormatInfo GetInstance(System.IFormatProvider formatProvider) { return default(System.Globalization.NumberFormatInfo); }
+        public static System.Globalization.NumberFormatInfo ReadOnly(System.Globalization.NumberFormatInfo nfi) { return default(System.Globalization.NumberFormatInfo); }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum NumberStyles
+    {
+        AllowCurrencySymbol = 256,
+        AllowDecimalPoint = 32,
+        AllowExponent = 128,
+        AllowHexSpecifier = 512,
+        AllowLeadingSign = 4,
+        AllowLeadingWhite = 1,
+        AllowParentheses = 16,
+        AllowThousands = 64,
+        AllowTrailingSign = 8,
+        AllowTrailingWhite = 2,
+        Any = 511,
+        Currency = 383,
+        Float = 167,
+        HexNumber = 515,
+        Integer = 7,
+        None = 0,
+        Number = 111,
+    }
+    public partial class PersianCalendar : System.Globalization.Calendar
+    {
+        public static readonly int PersianEra;
+        public PersianCalendar() { }
+#if FEATURE_COREFX_GLOBALIZATION 
+        public override System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        public override int[] Eras { get { return default(int[]); } }
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int TwoDigitYearMax { get { return default(int); } set { } }
+        public override System.DateTime AddMonths(System.DateTime time, int months) { return default(System.DateTime); }
+        public override System.DateTime AddYears(System.DateTime time, int years) { return default(System.DateTime); }
+        public override int GetDayOfMonth(System.DateTime time) { return default(int); }
+        public override System.DayOfWeek GetDayOfWeek(System.DateTime time) { return default(System.DayOfWeek); }
+        public override int GetDayOfYear(System.DateTime time) { return default(int); }
+        public override int GetDaysInMonth(int year, int month, int era) { return default(int); }
+        public override int GetDaysInYear(int year, int era) { return default(int); }
+        public override int GetEra(System.DateTime time) { return default(int); }
+        public override int GetLeapMonth(int year, int era) { return default(int); }
+        public override int GetMonth(System.DateTime time) { return default(int); }
+        public override int GetMonthsInYear(int year, int era) { return default(int); }
+        public override int GetYear(System.DateTime time) { return default(int); }
+        public override bool IsLeapDay(int year, int month, int day, int era) { return default(bool); }
+        public override bool IsLeapMonth(int year, int month, int era) { return default(bool); }
+        public override bool IsLeapYear(int year, int era) { return default(bool); }
+        public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) { return default(System.DateTime); }
+        public override int ToFourDigitYear(int year) { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class RegionInfo
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        public RegionInfo(string name) { }
+        public virtual string CurrencySymbol { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public static System.Globalization.RegionInfo CurrentRegion { [System.Security.SecuritySafeCriticalAttribute]get { return default(System.Globalization.RegionInfo); } }
+        public virtual string DisplayName { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public virtual string EnglishName { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public virtual bool IsMetric { get { return default(bool); } }
+        public virtual string ISOCurrencySymbol { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public virtual string Name { get { return default(string); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual string NativeName { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public virtual string TwoLetterISORegionName { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public override bool Equals(object value) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class StringInfo
+    {
+        public StringInfo() { }
+        public StringInfo(string value) { }
+        public int LengthInTextElements { get { return default(int); } }
+        public string String { get { return default(string); } set { } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override bool Equals(object value) { return default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetHashCode() { return default(int); }
+        public static string GetNextTextElement(string str) { return default(string); }
+        public static string GetNextTextElement(string str, int index) { return default(string); }
+        public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str) { return default(System.Globalization.TextElementEnumerator); }
+        public static System.Globalization.TextElementEnumerator GetTextElementEnumerator(string str, int index) { return default(System.Globalization.TextElementEnumerator); }
+        public static int[] ParseCombiningCharacters(string str) { return default(int[]); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class TaiwanCalendar : System.Globalization.Calendar
+    {
+        public TaiwanCalendar() { }
+#if FEATURE_COREFX_GLOBALIZATION 
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        public override int[] Eras { get { return default(int[]); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int TwoDigitYearMax { get { return default(int); } set { } }
+        public override System.DateTime AddMonths(System.DateTime time, int months) { return default(System.DateTime); }
+        public override System.DateTime AddYears(System.DateTime time, int years) { return default(System.DateTime); }
+        public override int GetDayOfMonth(System.DateTime time) { return default(int); }
+        public override System.DayOfWeek GetDayOfWeek(System.DateTime time) { return default(System.DayOfWeek); }
+        public override int GetDayOfYear(System.DateTime time) { return default(int); }
+        public override int GetDaysInMonth(int year, int month, int era) { return default(int); }
+        public override int GetDaysInYear(int year, int era) { return default(int); }
+        public override int GetEra(System.DateTime time) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetLeapMonth(int year, int era) { return default(int); }
+        public override int GetMonth(System.DateTime time) { return default(int); }
+        public override int GetMonthsInYear(int year, int era) { return default(int); }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Contracts", "CC1055")]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) { return default(int); }
+        public override int GetYear(System.DateTime time) { return default(int); }
+        public override bool IsLeapDay(int year, int month, int day, int era) { return default(bool); }
+        public override bool IsLeapMonth(int year, int month, int era) { return default(bool); }
+        public override bool IsLeapYear(int year, int era) { return default(bool); }
+        public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) { return default(System.DateTime); }
+        public override int ToFourDigitYear(int year) { return default(int); }
+    }
+    public partial class TaiwanLunisolarCalendar : System.Globalization.EastAsianLunisolarCalendar
+    {
+        public TaiwanLunisolarCalendar() { }
+        protected override int DaysInYearBeforeMinSupportedYear { get { return default(int); } }
+        public override int[] Eras { get { return default(int[]); } }
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int GetEra(System.DateTime time) { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class TextElementEnumerator : System.Collections.IEnumerator
+    {
+        internal TextElementEnumerator() { }
+        public object Current { get { return default(object); } }
+        public int ElementIndex { get { return default(int); } }
+        public string GetTextElement() { return default(string); }
+        public bool MoveNext() { return default(bool); }
+        public void Reset() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class TextInfo
+    {
+        internal TextInfo() { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public string CultureName { get { return default(string); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public bool IsReadOnly { get { return default(bool); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public bool IsRightToLeft { get { return default(bool); } }
+        public virtual string ListSeparator { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } [System.Runtime.InteropServices.ComVisibleAttribute(false)]set { } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual char ToLower(char c) { return default(char); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual string ToLower(string str) { return default(string); }
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual char ToUpper(char c) { return default(char); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual string ToUpper(string str) { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ThaiBuddhistCalendar : System.Globalization.Calendar
+    {
+        public const int ThaiBuddhistEra = 1;
+        public ThaiBuddhistCalendar() { }
+#if FEATURE_COREFX_GLOBALIZATION 
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        public override int[] Eras { get { return default(int[]); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int TwoDigitYearMax { get { return default(int); } set { } }
+        public override System.DateTime AddMonths(System.DateTime time, int months) { return default(System.DateTime); }
+        public override System.DateTime AddYears(System.DateTime time, int years) { return default(System.DateTime); }
+        public override int GetDayOfMonth(System.DateTime time) { return default(int); }
+        public override System.DayOfWeek GetDayOfWeek(System.DateTime time) { return default(System.DayOfWeek); }
+        public override int GetDayOfYear(System.DateTime time) { return default(int); }
+        public override int GetDaysInMonth(int year, int month, int era) { return default(int); }
+        public override int GetDaysInYear(int year, int era) { return default(int); }
+        public override int GetEra(System.DateTime time) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetLeapMonth(int year, int era) { return default(int); }
+        public override int GetMonth(System.DateTime time) { return default(int); }
+        public override int GetMonthsInYear(int year, int era) { return default(int); }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Contracts", "CC1055")]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetWeekOfYear(System.DateTime time, System.Globalization.CalendarWeekRule rule, System.DayOfWeek firstDayOfWeek) { return default(int); }
+        public override int GetYear(System.DateTime time) { return default(int); }
+        public override bool IsLeapDay(int year, int month, int day, int era) { return default(bool); }
+        public override bool IsLeapMonth(int year, int month, int era) { return default(bool); }
+        public override bool IsLeapYear(int year, int era) { return default(bool); }
+        public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) { return default(System.DateTime); }
+        public override int ToFourDigitYear(int year) { return default(int); }
+    }
+    [System.FlagsAttribute]
+    public enum TimeSpanStyles
+    {
+        AssumeNegative = 1,
+        None = 0,
+    }
+    public partial class UmAlQuraCalendar : System.Globalization.Calendar
+    {
+        public UmAlQuraCalendar() { }
+#if FEATURE_COREFX_GLOBALIZATION 
+        public override System.Globalization.CalendarAlgorithmType AlgorithmType { get { return default(System.Globalization.CalendarAlgorithmType); } }
+#endif
+        protected override int DaysInYearBeforeMinSupportedYear { get { return default(int); } }
+        public override int[] Eras { get { return default(int[]); } }
+        public override System.DateTime MaxSupportedDateTime { get { return default(System.DateTime); } }
+        public override System.DateTime MinSupportedDateTime { get { return default(System.DateTime); } }
+        public override int TwoDigitYearMax { get { return default(int); } set { } }
+        public override System.DateTime AddMonths(System.DateTime time, int months) { return default(System.DateTime); }
+        public override System.DateTime AddYears(System.DateTime time, int years) { return default(System.DateTime); }
+        public override int GetDayOfMonth(System.DateTime time) { return default(int); }
+        public override System.DayOfWeek GetDayOfWeek(System.DateTime time) { return default(System.DayOfWeek); }
+        public override int GetDayOfYear(System.DateTime time) { return default(int); }
+        public override int GetDaysInMonth(int year, int month, int era) { return default(int); }
+        public override int GetDaysInYear(int year, int era) { return default(int); }
+        public override int GetEra(System.DateTime time) { return default(int); }
+        public override int GetLeapMonth(int year, int era) { return default(int); }
+        public override int GetMonth(System.DateTime time) { return default(int); }
+        public override int GetMonthsInYear(int year, int era) { return default(int); }
+        public override int GetYear(System.DateTime time) { return default(int); }
+        public override bool IsLeapDay(int year, int month, int day, int era) { return default(bool); }
+        public override bool IsLeapMonth(int year, int month, int era) { return default(bool); }
+        public override bool IsLeapYear(int year, int era) { return default(bool); }
+        public override System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era) { return default(System.DateTime); }
+        public override int ToFourDigitYear(int year) { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum UnicodeCategory
+    {
+        ClosePunctuation = 21,
+        ConnectorPunctuation = 18,
+        Control = 14,
+        CurrencySymbol = 26,
+        DashPunctuation = 19,
+        DecimalDigitNumber = 8,
+        EnclosingMark = 7,
+        FinalQuotePunctuation = 23,
+        Format = 15,
+        InitialQuotePunctuation = 22,
+        LetterNumber = 9,
+        LineSeparator = 12,
+        LowercaseLetter = 1,
+        MathSymbol = 25,
+        ModifierLetter = 3,
+        ModifierSymbol = 27,
+        NonSpacingMark = 5,
+        OpenPunctuation = 20,
+        OtherLetter = 4,
+        OtherNotAssigned = 29,
+        OtherNumber = 10,
+        OtherPunctuation = 24,
+        OtherSymbol = 28,
+        ParagraphSeparator = 13,
+        PrivateUse = 17,
+        SpaceSeparator = 11,
+        SpacingCombiningMark = 6,
+        Surrogate = 16,
+        TitlecaseLetter = 2,
+        UppercaseLetter = 0,
+    }
+}
+namespace System.IO
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class BinaryReader : System.IDisposable
+    {
+        public BinaryReader(System.IO.Stream input) { }
+        public BinaryReader(System.IO.Stream input, System.Text.Encoding encoding) { }
+        public BinaryReader(System.IO.Stream input, System.Text.Encoding encoding, bool leaveOpen) { }
+        public virtual System.IO.Stream BaseStream { get { return default(System.IO.Stream); } }
+        public virtual void Close() { }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        protected virtual void FillBuffer(int numBytes) { }
+        public virtual int PeekChar() { return default(int); }
+        public virtual int Read() { return default(int); }
+        public virtual int Read(byte[] buffer, int index, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual int Read(char[] buffer, int index, int count) { return default(int); }
+        protected internal int Read7BitEncodedInt() { return default(int); }
+        public virtual bool ReadBoolean() { return default(bool); }
+        public virtual byte ReadByte() { return default(byte); }
+        public virtual byte[] ReadBytes(int count) { return default(byte[]); }
+        public virtual char ReadChar() { return default(char); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual char[] ReadChars(int count) { return default(char[]); }
+        public virtual decimal ReadDecimal() { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual double ReadDouble() { return default(double); }
+        public virtual short ReadInt16() { return default(short); }
+        public virtual int ReadInt32() { return default(int); }
+        public virtual long ReadInt64() { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        public virtual sbyte ReadSByte() { return default(sbyte); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual float ReadSingle() { return default(float); }
+        public virtual string ReadString() { return default(string); }
+        [System.CLSCompliantAttribute(false)]
+        public virtual ushort ReadUInt16() { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        public virtual uint ReadUInt32() { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        public virtual ulong ReadUInt64() { return default(ulong); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class BinaryWriter : System.IDisposable
+    {
+        public static readonly System.IO.BinaryWriter Null;
+        protected System.IO.Stream OutStream;
+        protected BinaryWriter() { }
+        public BinaryWriter(System.IO.Stream output) { }
+        public BinaryWriter(System.IO.Stream output, System.Text.Encoding encoding) { }
+        public BinaryWriter(System.IO.Stream output, System.Text.Encoding encoding, bool leaveOpen) { }
+        public virtual System.IO.Stream BaseStream { get { return default(System.IO.Stream); } }
+        public virtual void Close() { }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        public virtual void Flush() { }
+        public virtual long Seek(int offset, System.IO.SeekOrigin origin) { return default(long); }
+        public virtual void Write(bool value) { }
+        public virtual void Write(byte value) { }
+        public virtual void Write(byte[] buffer) { }
+        public virtual void Write(byte[] buffer, int index, int count) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void Write(char ch) { }
+        public virtual void Write(char[] chars) { }
+        public virtual void Write(char[] chars, int index, int count) { }
+        public virtual void Write(decimal value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void Write(double value) { }
+        public virtual void Write(short value) { }
+        public virtual void Write(int value) { }
+        public virtual void Write(long value) { }
+        [System.CLSCompliantAttribute(false)]
+        public virtual void Write(sbyte value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void Write(float value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void Write(string value) { }
+        [System.CLSCompliantAttribute(false)]
+        public virtual void Write(ushort value) { }
+        [System.CLSCompliantAttribute(false)]
+        public virtual void Write(uint value) { }
+        [System.CLSCompliantAttribute(false)]
+        public virtual void Write(ulong value) { }
+        protected void Write7BitEncodedInt(int value) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class DirectoryNotFoundException : System.IO.IOException
+    {
+        public DirectoryNotFoundException() { }
+        public DirectoryNotFoundException(string message) { }
+        public DirectoryNotFoundException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class EndOfStreamException : System.IO.IOException
+    {
+        public EndOfStreamException() { }
+        public EndOfStreamException(string message) { }
+        public EndOfStreamException(string message, System.Exception innerException) { }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum FileAccess
+    {
+        Read = 1,
+        ReadWrite = 3,
+        Write = 2,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class FileLoadException : System.IO.IOException
+    {
+        public FileLoadException() { }
+        public FileLoadException(string message) { }
+        public FileLoadException(string message, System.Exception inner) { }
+        public FileLoadException(string message, string fileName) { }
+        public FileLoadException(string message, string fileName, System.Exception inner) { }
+        public string FileName { get { return default(string); } }
+        public override string Message { get { return default(string); } }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class FileNotFoundException : System.IO.IOException
+    {
+        public FileNotFoundException() { }
+        public FileNotFoundException(string message) { }
+        public FileNotFoundException(string message, System.Exception innerException) { }
+        public FileNotFoundException(string message, string fileName) { }
+        public FileNotFoundException(string message, string fileName, System.Exception innerException) { }
+        public string FileName { get { return default(string); } }
+        public override string Message { get { return default(string); } }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class IOException : System.SystemException
+    {
+        public IOException() { }
+        public IOException(string message) { }
+        public IOException(string message, System.Exception innerException) { }
+        public IOException(string message, int hresult) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class MemoryStream : System.IO.Stream
+    {
+        public MemoryStream() { }
+        public MemoryStream(byte[] buffer) { }
+        public MemoryStream(byte[] buffer, bool writable) { }
+        public MemoryStream(byte[] buffer, int index, int count) { }
+        public MemoryStream(byte[] buffer, int index, int count, bool writable) { }
+        public MemoryStream(byte[] buffer, int index, int count, bool writable, bool publiclyVisible) { }
+        public MemoryStream(int capacity) { }
+        public override bool CanRead { get { return default(bool); } }
+        public override bool CanSeek { get { return default(bool); } }
+        public override bool CanWrite { get { return default(bool); } }
+        public virtual int Capacity { get { return default(int); } set { } }
+        public override long Length { get { return default(long); } }
+        public override long Position { get { return default(long); } set { } }
+        public override System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        protected override void Dispose(bool disposing) { }
+        public override void Flush() { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        public virtual byte[] GetBuffer() { return default(byte[]); }
+        public override int Read(byte[] buffer, int offset, int count) { buffer = default(byte[]); return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<int>); }
+        public override int ReadByte() { return default(int); }
+        public override long Seek(long offset, System.IO.SeekOrigin loc) { return default(long); }
+        public override void SetLength(long value) { }
+        public virtual byte[] ToArray() { return default(byte[]); }
+        public virtual bool TryGetBuffer(out System.ArraySegment<byte> buffer) { buffer = default(System.ArraySegment<byte>); return default(bool); }
+        public override void Write(byte[] buffer, int offset, int count) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        public override void WriteByte(byte value) { }
+        public virtual void WriteTo(System.IO.Stream stream) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public static partial class Path
+    {
+        public static readonly char AltDirectorySeparatorChar;
+        public static readonly char DirectorySeparatorChar;
+        public static readonly char PathSeparator;
+        public static readonly char VolumeSeparatorChar;
+        public static string ChangeExtension(string path, string extension) { return default(string); }
+        public static string Combine(string path1, string path2) { return default(string); }
+        public static string Combine(string path1, string path2, string path3) { return default(string); }
+        public static string Combine(params string[] paths) { return default(string); }
+        public static string GetDirectoryName(string path) { return default(string); }
+        public static string GetExtension(string path) { return default(string); }
+        public static string GetFileName(string path) { return default(string); }
+        public static string GetFileNameWithoutExtension(string path) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string GetFullPath(string path) { return default(string); }
+        public static char[] GetInvalidFileNameChars() { return default(char[]); }
+        public static char[] GetInvalidPathChars() { return default(char[]); }
+        public static string GetPathRoot(string path) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string GetRandomFileName() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string GetTempFileName() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string GetTempPath() { return default(string); }
+        public static bool HasExtension(string path) { return default(bool); }
+        public static bool IsPathRooted(string path) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class PathTooLongException : System.IO.IOException
+    {
+        public PathTooLongException() { }
+        public PathTooLongException(string message) { }
+        public PathTooLongException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum SeekOrigin
+    {
+        Begin = 0,
+        Current = 1,
+        End = 2,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Stream : System.IDisposable
+    {
+        public static readonly System.IO.Stream Null;
+        protected Stream() { }
+        public abstract bool CanRead { get; }
+        public abstract bool CanSeek { get; }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual bool CanTimeout { get { return default(bool); } }
+        public abstract bool CanWrite { get; }
+        public abstract long Length { get; }
+        public abstract long Position { get; set; }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual int ReadTimeout { get { return default(int); } set { } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual int WriteTimeout { get { return default(int); } set { } }
+        
+        public virtual System.IAsyncResult BeginRead(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { return default(System.IAsyncResult); }
+        
+        public virtual System.IAsyncResult BeginWrite(byte[] buffer, int offset, int count, System.AsyncCallback callback, object state) { return default(System.IAsyncResult); }
+        public virtual void Close() { }
+        public void CopyTo(System.IO.Stream destination) { }
+        public void CopyTo(System.IO.Stream destination, int bufferSize) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task CopyToAsync(System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        public virtual int EndRead(System.IAsyncResult asyncResult) { return default(int); }
+        public virtual void EndWrite(System.IAsyncResult asyncResult) { }
+        public abstract void Flush();
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public System.Threading.Tasks.Task FlushAsync() { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        public abstract int Read(byte[] buffer, int offset, int count);
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count) { return default(System.Threading.Tasks.Task<int>); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<int>); }
+        public virtual int ReadByte() { return default(int); }
+        public abstract long Seek(long offset, System.IO.SeekOrigin origin);
+        public abstract void SetLength(long value);
+        public abstract void Write(byte[] buffer, int offset, int count);
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        public virtual void WriteByte(byte value) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class StreamReader : System.IO.TextReader
+    {
+        public static readonly new System.IO.StreamReader Null;
+        public StreamReader(System.IO.Stream stream) { }
+        public StreamReader(System.IO.Stream stream, bool detectEncodingFromByteOrderMarks) { }
+        public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding) { }
+        public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks) { }
+        public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize) { }
+        public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen) { }
+        public StreamReader(string path) { }
+        public StreamReader(string path, bool detectEncodingFromByteOrderMarks) { }
+        public StreamReader(string path, System.Text.Encoding encoding) { }
+        public StreamReader(string path, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public StreamReader(string path, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize) { }
+        public virtual System.IO.Stream BaseStream { get { return default(System.IO.Stream); } }
+        public virtual System.Text.Encoding CurrentEncoding { get { return default(System.Text.Encoding); } }
+        public bool EndOfStream { get { return default(bool); } }
+        public override void Close() { }
+        public void DiscardBufferedData() { }
+        protected override void Dispose(bool disposing) { }
+        public override int Peek() { return default(int); }
+        public override int Read() { return default(int); }
+        public override int Read(char[] buffer, int index, int count) { buffer = default(char[]); return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task<int> ReadAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task<int>); }
+        public override int ReadBlock(char[] buffer, int index, int count) { buffer = default(char[]); return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task<int> ReadBlockAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task<int>); }
+        public override string ReadLine() { return default(string); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task<string> ReadLineAsync() { return default(System.Threading.Tasks.Task<string>); }
+        public override string ReadToEnd() { return default(string); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task<string> ReadToEndAsync() { return default(System.Threading.Tasks.Task<string>); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class StreamWriter : System.IO.TextWriter
+    {
+        public static readonly new System.IO.StreamWriter Null;
+        public StreamWriter(System.IO.Stream stream) { }
+        public StreamWriter(System.IO.Stream stream, System.Text.Encoding encoding) { }
+        public StreamWriter(System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize) { }
+        public StreamWriter(System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize, bool leaveOpen) { }
+        public StreamWriter(string path) { }
+        public StreamWriter(string path, bool append) { }
+        public StreamWriter(string path, bool append, System.Text.Encoding encoding) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public StreamWriter(string path, bool append, System.Text.Encoding encoding, int bufferSize) { }
+        public virtual bool AutoFlush { get { return default(bool); } set { } }
+        public virtual System.IO.Stream BaseStream { get { return default(System.IO.Stream); } }
+        public override System.Text.Encoding Encoding { get { return default(System.Text.Encoding); } }
+        public override void Close() { }
+        protected override void Dispose(bool disposing) { }
+        public override void Flush() { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task FlushAsync() { return default(System.Threading.Tasks.Task); }
+        public override void Write(char value) { }
+        public override void Write(char[] buffer) { }
+        public override void Write(char[] buffer, int index, int count) { }
+        public override void Write(string value) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteAsync(char value) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteAsync(string value) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteLineAsync() { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteLineAsync(char value) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteLineAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteLineAsync(string value) { return default(System.Threading.Tasks.Task); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class StringReader : System.IO.TextReader
+    {
+        public StringReader(string s) { }
+        public override void Close() { }
+        protected override void Dispose(bool disposing) { }
+        public override int Peek() { return default(int); }
+        public override int Read() { return default(int); }
+        public override int Read(char[] buffer, int index, int count) { buffer = default(char[]); return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Threading.Tasks.Task<int> ReadAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task<int>); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Threading.Tasks.Task<int> ReadBlockAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task<int>); }
+        public override string ReadLine() { return default(string); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Threading.Tasks.Task<string> ReadLineAsync() { return default(System.Threading.Tasks.Task<string>); }
+        public override string ReadToEnd() { return default(string); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Threading.Tasks.Task<string> ReadToEndAsync() { return default(System.Threading.Tasks.Task<string>); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class StringWriter : System.IO.TextWriter
+    {
+        public StringWriter() { }
+        public StringWriter(System.IFormatProvider formatProvider) { }
+        public StringWriter(System.Text.StringBuilder sb) { }
+        public StringWriter(System.Text.StringBuilder sb, System.IFormatProvider formatProvider) { }
+        public override System.Text.Encoding Encoding { get { return default(System.Text.Encoding); } }
+        public override void Close() { }
+        protected override void Dispose(bool disposing) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task FlushAsync() { return default(System.Threading.Tasks.Task); }
+        public virtual System.Text.StringBuilder GetStringBuilder() { return default(System.Text.StringBuilder); }
+        public override string ToString() { return default(string); }
+        public override void Write(char value) { }
+        public override void Write(char[] buffer, int index, int count) { }
+        public override void Write(string value) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteAsync(char value) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteAsync(string value) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteLineAsync(char value) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteLineAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteLineAsync(string value) { return default(System.Threading.Tasks.Task); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class TextReader : System.IDisposable
+    {
+        public static readonly System.IO.TextReader Null;
+        protected TextReader() { }
+        public virtual void Close() { }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        public virtual int Peek() { return default(int); }
+        public virtual int Read() { return default(int); }
+        public virtual int Read(char[] buffer, int index, int count) { buffer = default(char[]); return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task<int> ReadAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task<int>); }
+        public virtual int ReadBlock(char[] buffer, int index, int count) { buffer = default(char[]); return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task<int> ReadBlockAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task<int>); }
+        public virtual string ReadLine() { return default(string); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task<string> ReadLineAsync() { return default(System.Threading.Tasks.Task<string>); }
+        public virtual string ReadToEnd() { return default(string); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task<string> ReadToEndAsync() { return default(System.Threading.Tasks.Task<string>); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class TextWriter : System.IDisposable
+    {
+        protected char[] CoreNewLine;
+        public static readonly System.IO.TextWriter Null;
+        protected TextWriter() { }
+        protected TextWriter(System.IFormatProvider formatProvider) { }
+        public abstract System.Text.Encoding Encoding { get; }
+        public virtual System.IFormatProvider FormatProvider { get { return default(System.IFormatProvider); } }
+        public virtual string NewLine { get { return default(string); } set { } }
+        public virtual void Close() { }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        public virtual void Flush() { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task FlushAsync() { return default(System.Threading.Tasks.Task); }
+        public virtual void Write(bool value) { }
+        public virtual void Write(char value) { }
+        public virtual void Write(char[] buffer) { }
+        public virtual void Write(char[] buffer, int index, int count) { }
+        public virtual void Write(decimal value) { }
+        public virtual void Write(double value) { }
+        public virtual void Write(int value) { }
+        public virtual void Write(long value) { }
+        public virtual void Write(object value) { }
+        public virtual void Write(float value) { }
+        public virtual void Write(string value) { }
+        public virtual void Write(string format, object arg0) { }
+        public virtual void Write(string format, object arg0, object arg1) { }
+        public virtual void Write(string format, object arg0, object arg1, object arg2) { }
+        public virtual void Write(string format, params object[] arg) { }
+        [System.CLSCompliantAttribute(false)]
+        public virtual void Write(uint value) { }
+        [System.CLSCompliantAttribute(false)]
+        public virtual void Write(ulong value) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task WriteAsync(char value) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public System.Threading.Tasks.Task WriteAsync(char[] buffer) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task WriteAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task WriteAsync(string value) { return default(System.Threading.Tasks.Task); }
+        public virtual void WriteLine() { }
+        public virtual void WriteLine(bool value) { }
+        public virtual void WriteLine(char value) { }
+        public virtual void WriteLine(char[] buffer) { }
+        public virtual void WriteLine(char[] buffer, int index, int count) { }
+        public virtual void WriteLine(decimal value) { }
+        public virtual void WriteLine(double value) { }
+        public virtual void WriteLine(int value) { }
+        public virtual void WriteLine(long value) { }
+        public virtual void WriteLine(object value) { }
+        public virtual void WriteLine(float value) { }
+        public virtual void WriteLine(string value) { }
+        public virtual void WriteLine(string format, object arg0) { }
+        public virtual void WriteLine(string format, object arg0, object arg1) { }
+        public virtual void WriteLine(string format, object arg0, object arg1, object arg2) { }
+        public virtual void WriteLine(string format, params object[] arg) { }
+        [System.CLSCompliantAttribute(false)]
+        public virtual void WriteLine(uint value) { }
+        [System.CLSCompliantAttribute(false)]
+        public virtual void WriteLine(ulong value) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task WriteLineAsync() { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task WriteLineAsync(char value) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public System.Threading.Tasks.Task WriteLineAsync(char[] buffer) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task WriteLineAsync(char[] buffer, int index, int count) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public virtual System.Threading.Tasks.Task WriteLineAsync(string value) { return default(System.Threading.Tasks.Task); }
+    }
+    public partial class UnmanagedMemoryAccessor : System.IDisposable
+    {
+        protected UnmanagedMemoryAccessor() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public UnmanagedMemoryAccessor(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long capacity) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public UnmanagedMemoryAccessor(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long capacity, System.IO.FileAccess access) { }
+        public bool CanRead { get { return default(bool); } }
+        public bool CanWrite { get { return default(bool); } }
+        public long Capacity { get { return default(long); } }
+        protected bool IsOpen { get { return default(bool); } }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        [System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, Flags=(System.Security.Permissions.SecurityPermissionFlag)(2))]
+        protected void Initialize(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long capacity, System.IO.FileAccess access) { }
+        public bool ReadBoolean(long position) { return default(bool); }
+        public byte ReadByte(long position) { return default(byte); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public char ReadChar(long position) { return default(char); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public decimal ReadDecimal(long position) { return default(decimal); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public double ReadDouble(long position) { return default(double); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public short ReadInt16(long position) { return default(short); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public int ReadInt32(long position) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public long ReadInt64(long position) { return default(long); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public sbyte ReadSByte(long position) { return default(sbyte); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public float ReadSingle(long position) { return default(float); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public ushort ReadUInt16(long position) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public uint ReadUInt32(long position) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public ulong ReadUInt64(long position) { return default(ulong); }
+        public void Write(long position, bool value) { }
+        public void Write(long position, byte value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(long position, char value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(long position, decimal value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(long position, double value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(long position, short value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(long position, int value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(long position, long value) { }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(long position, sbyte value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(long position, float value) { }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(long position, ushort value) { }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(long position, uint value) { }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Write(long position, ulong value) { }
+    }
+    public partial class UnmanagedMemoryStream : System.IO.Stream
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected UnmanagedMemoryStream() { }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe UnmanagedMemoryStream(byte* pointer, long length) { }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe UnmanagedMemoryStream(byte* pointer, long length, long capacity, System.IO.FileAccess access) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public UnmanagedMemoryStream(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long length) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public UnmanagedMemoryStream(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long length, System.IO.FileAccess access) { }
+        public override bool CanRead { get { return default(bool); } }
+        public override bool CanSeek { get { return default(bool); } }
+        public override bool CanWrite { get { return default(bool); } }
+        public long Capacity { get { return default(long); } }
+        public override long Length { get { return default(long); } }
+        public override long Position { get { return default(long); } [System.Security.SecuritySafeCriticalAttribute]set { } }
+        [System.CLSCompliantAttribute(false)]
+        public unsafe byte* PositionPointer { [System.Security.SecurityCriticalAttribute]get { return default(byte*); } [System.Security.SecurityCriticalAttribute]set { } }
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected override void Dispose(bool disposing) { }
+        public override void Flush() { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        protected unsafe void Initialize(byte* pointer, long length, long capacity, System.IO.FileAccess access) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected void Initialize(System.Runtime.InteropServices.SafeBuffer buffer, long offset, long length, System.IO.FileAccess access) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int Read(byte[] buffer, int offset, int count) { buffer = default(byte[]); return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<int>); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int ReadByte() { return default(int); }
+        public override long Seek(long offset, System.IO.SeekOrigin loc) { return default(long); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override void SetLength(long value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override void Write(byte[] buffer, int offset, int count) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        
+        public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override void WriteByte(byte value) { }
+    }
+}
+namespace System.Reflection
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AmbiguousMatchException : System.SystemException
+    {
+        public AmbiguousMatchException() { }
+        public AmbiguousMatchException(string message) { }
+        public AmbiguousMatchException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Assembly : System.Reflection.ICustomAttributeProvider
+    {
+        protected Assembly() { }
+        public virtual string CodeBase { [System.Security.SecurityCriticalAttribute]get { return default(string); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.CustomAttributeData> CustomAttributes { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.CustomAttributeData>); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.TypeInfo> DefinedTypes { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.TypeInfo>); } }
+        public virtual System.Reflection.MethodInfo EntryPoint { get { return default(System.Reflection.MethodInfo); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Type> ExportedTypes { get { return default(System.Collections.Generic.IEnumerable<System.Type>); } }
+        public virtual string FullName { get { return default(string); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual string ImageRuntimeVersion { get { return default(string); } }
+        public virtual bool IsDynamic { get { return default(bool); } }
+        public virtual string Location { [System.Security.SecurityCriticalAttribute]get { return default(string); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual System.Reflection.Module ManifestModule { get { return default(System.Reflection.Module); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.Module> Modules { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.Module>); } }
+        public object CreateInstance(string typeName) { return default(object); }
+        public object CreateInstance(string typeName, bool ignoreCase) { return default(object); }
+        public static string CreateQualifiedName(string assemblyName, string typeName) { return default(string); }
+        public override bool Equals(object o) { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static System.Reflection.Assembly GetCallingAssembly() { return default(System.Reflection.Assembly); }
+        public virtual object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public virtual object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Reflection.Assembly GetEntryAssembly() { return default(System.Reflection.Assembly); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static System.Reflection.Assembly GetExecutingAssembly() { return default(System.Reflection.Assembly); }
+        public virtual System.Type[] GetExportedTypes() { return default(System.Type[]); }
+        public override int GetHashCode() { return default(int); }
+        public virtual System.Reflection.ManifestResourceInfo GetManifestResourceInfo(string resourceName) { return default(System.Reflection.ManifestResourceInfo); }
+        public virtual string[] GetManifestResourceNames() { return default(string[]); }
+        public virtual System.IO.Stream GetManifestResourceStream(string name) { return default(System.IO.Stream); }
+        public virtual System.IO.Stream GetManifestResourceStream(System.Type type, string name) { return default(System.IO.Stream); }
+        public System.Reflection.Module[] GetModules() { return default(System.Reflection.Module[]); }
+        [System.Security.SecurityCriticalAttribute]
+        public virtual System.Reflection.AssemblyName GetName() { return default(System.Reflection.AssemblyName); }
+        public virtual System.Reflection.AssemblyName[] GetReferencedAssemblies() { return default(System.Reflection.AssemblyName[]); }
+        public virtual System.Type GetType(string name) { return default(System.Type); }
+        public virtual System.Type GetType(string name, bool throwOnError) { return default(System.Type); }
+        public virtual System.Type GetType(string name, bool throwOnError, bool ignoreCase) { return default(System.Type); }
+        public virtual System.Type[] GetTypes() { return default(System.Type[]); }
+        public virtual bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecurityCriticalAttribute]
+        public static System.Reflection.Assembly Load(byte[] rawAssembly) { return default(System.Reflection.Assembly); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecurityCriticalAttribute]
+        public static System.Reflection.Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore) { return default(System.Reflection.Assembly); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecurityCriticalAttribute]
+        public static System.Reflection.Assembly Load(System.Reflection.AssemblyName assemblyRef) { return default(System.Reflection.Assembly); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static System.Reflection.Assembly Load(string assemblyString) { return default(System.Reflection.Assembly); }
+        public override string ToString() { return default(string); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyAlgorithmIdAttribute : System.Attribute
+    {
+        public AssemblyAlgorithmIdAttribute(System.Configuration.Assemblies.AssemblyHashAlgorithm algorithmId) { }
+        [System.CLSCompliantAttribute(false)]
+        public AssemblyAlgorithmIdAttribute(uint algorithmId) { }
+        [System.CLSCompliantAttribute(false)]
+        public uint AlgorithmId { get { return default(uint); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyCompanyAttribute : System.Attribute
+    {
+        public AssemblyCompanyAttribute(string company) { }
+        public string Company { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyConfigurationAttribute : System.Attribute
+    {
+        public AssemblyConfigurationAttribute(string configuration) { }
+        public string Configuration { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public enum AssemblyContentType
+    {
+        Default = 0,
+        WindowsRuntime = 1,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyCopyrightAttribute : System.Attribute
+    {
+        public AssemblyCopyrightAttribute(string copyright) { }
+        public string Copyright { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyCultureAttribute : System.Attribute
+    {
+        public AssemblyCultureAttribute(string culture) { }
+        public string Culture { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyDefaultAliasAttribute : System.Attribute
+    {
+        public AssemblyDefaultAliasAttribute(string defaultAlias) { }
+        public string DefaultAlias { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyDelaySignAttribute : System.Attribute
+    {
+        public AssemblyDelaySignAttribute(bool delaySign) { }
+        public bool DelaySign { get { return default(bool); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyDescriptionAttribute : System.Attribute
+    {
+        public AssemblyDescriptionAttribute(string description) { }
+        public string Description { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyFileVersionAttribute : System.Attribute
+    {
+        public AssemblyFileVersionAttribute(string version) { }
+        public string Version { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyFlagsAttribute : System.Attribute
+    {
+        public AssemblyFlagsAttribute(System.Reflection.AssemblyNameFlags assemblyFlags) { }
+        public int AssemblyFlags { get { return default(int); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyInformationalVersionAttribute : System.Attribute
+    {
+        public AssemblyInformationalVersionAttribute(string informationalVersion) { }
+        public string InformationalVersion { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyKeyFileAttribute : System.Attribute
+    {
+        public AssemblyKeyFileAttribute(string keyFile) { }
+        public string KeyFile { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyKeyNameAttribute : System.Attribute
+    {
+        public AssemblyKeyNameAttribute(string keyName) { }
+        public string KeyName { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), AllowMultiple=true, Inherited=false)]
+    public sealed partial class AssemblyMetadataAttribute : System.Attribute
+    {
+        public AssemblyMetadataAttribute(string key, string value) { }
+        public string Key { get { return default(string); } }
+        public string Value { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyName
+    {
+        public AssemblyName() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public AssemblyName(string assemblyName) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public System.Reflection.AssemblyContentType ContentType { get { return default(System.Reflection.AssemblyContentType); } set { } }
+        public System.Globalization.CultureInfo CultureInfo { get { return default(System.Globalization.CultureInfo); } set { } }
+        public string CultureName { get { return default(string); } set { } }
+        public System.Reflection.AssemblyNameFlags Flags { get { return default(System.Reflection.AssemblyNameFlags); } set { } }
+        public string FullName { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public System.Configuration.Assemblies.AssemblyHashAlgorithm HashAlgorithm { get { return default(System.Configuration.Assemblies.AssemblyHashAlgorithm); } set { } }
+        public string Name { get { return default(string); } set { } }
+        public System.Reflection.ProcessorArchitecture ProcessorArchitecture { get { return default(System.Reflection.ProcessorArchitecture); } set { } }
+        public System.Version Version { get { return default(System.Version); } set { } }
+        public byte[] GetPublicKey() { return default(byte[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public byte[] GetPublicKeyToken() { return default(byte[]); }
+        public void SetPublicKey(byte[] publicKey) { }
+        public void SetPublicKeyToken(byte[] publicKeyToken) { }
+        public override string ToString() { return default(string); }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum AssemblyNameFlags
+    {
+        EnableJITcompileOptimizer = 16384,
+        EnableJITcompileTracking = 32768,
+        None = 0,
+        PublicKey = 1,
+        Retargetable = 256,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyProductAttribute : System.Attribute
+    {
+        public AssemblyProductAttribute(string product) { }
+        public string Product { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false, AllowMultiple=false)]
+    public sealed partial class AssemblySignatureKeyAttribute : System.Attribute
+    {
+        public AssemblySignatureKeyAttribute(string publicKey, string countersignature) { }
+        public string Countersignature { get { return default(string); } }
+        public string PublicKey { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyTitleAttribute : System.Attribute
+    {
+        public AssemblyTitleAttribute(string title) { }
+        public string Title { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyTrademarkAttribute : System.Attribute
+    {
+        public AssemblyTrademarkAttribute(string trademark) { }
+        public string Trademark { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AssemblyVersionAttribute : System.Attribute
+    {
+        public AssemblyVersionAttribute(string version) { }
+        public string Version { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(2))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Binder
+    {
+        protected Binder() { }
+        public abstract System.Reflection.FieldInfo BindToField(System.Reflection.BindingFlags bindingAttr, System.Reflection.FieldInfo[] match, object value, System.Globalization.CultureInfo culture);
+        public abstract System.Reflection.MethodBase BindToMethod(System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] names, out object state);
+        public abstract object ChangeType(object value, System.Type type, System.Globalization.CultureInfo culture);
+        public abstract void ReorderArgumentArray(ref object[] args, object state);
+        public abstract System.Reflection.MethodBase SelectMethod(System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, System.Type[] types, System.Reflection.ParameterModifier[] modifiers);
+        public abstract System.Reflection.PropertyInfo SelectProperty(System.Reflection.BindingFlags bindingAttr, System.Reflection.PropertyInfo[] match, System.Type returnType, System.Type[] indexes, System.Reflection.ParameterModifier[] modifiers);
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum BindingFlags
+    {
+        CreateInstance = 512,
+        DeclaredOnly = 2,
+        Default = 0,
+        ExactBinding = 65536,
+        FlattenHierarchy = 64,
+        GetField = 1024,
+        GetProperty = 4096,
+        IgnoreCase = 1,
+        IgnoreReturn = 16777216,
+        Instance = 4,
+        InvokeMethod = 256,
+        NonPublic = 32,
+        OptionalParamBinding = 262144,
+        Public = 16,
+        PutDispProperty = 16384,
+        PutRefDispProperty = 32768,
+        SetField = 2048,
+        SetProperty = 8192,
+        Static = 8,
+        SuppressChangeType = 131072,
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum CallingConventions
+    {
+        Any = 3,
+        ExplicitThis = 64,
+        HasThis = 32,
+        Standard = 1,
+        VarArgs = 2,
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class ConstructorInfo : System.Reflection.MethodBase
+    {
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static readonly string ConstructorName;
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static readonly string TypeConstructorName;
+        protected ConstructorInfo() { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override System.Reflection.MemberTypes MemberType { get { return default(System.Reflection.MemberTypes); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        [System.Diagnostics.DebuggerHiddenAttribute]
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public object Invoke(object[] parameters) { return default(object); }
+        public abstract object Invoke(System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class CustomAttributeData
+    {
+        internal CustomAttributeData() { }
+        public System.Type AttributeType { get { return default(System.Type); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public virtual System.Reflection.ConstructorInfo Constructor { get { return default(System.Reflection.ConstructorInfo); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public virtual System.Collections.Generic.IList<System.Reflection.CustomAttributeTypedArgument> ConstructorArguments { get { return default(System.Collections.Generic.IList<System.Reflection.CustomAttributeTypedArgument>); } }
+        public virtual System.Collections.Generic.IList<System.Reflection.CustomAttributeNamedArgument> NamedArguments { get { return default(System.Collections.Generic.IList<System.Reflection.CustomAttributeNamedArgument>); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public static System.Collections.Generic.IList<System.Reflection.CustomAttributeData> GetCustomAttributes(System.Reflection.Assembly target) { return default(System.Collections.Generic.IList<System.Reflection.CustomAttributeData>); }
+        public static System.Collections.Generic.IList<System.Reflection.CustomAttributeData> GetCustomAttributes(System.Reflection.MemberInfo target) { return default(System.Collections.Generic.IList<System.Reflection.CustomAttributeData>); }
+        public static System.Collections.Generic.IList<System.Reflection.CustomAttributeData> GetCustomAttributes(System.Reflection.Module target) { return default(System.Collections.Generic.IList<System.Reflection.CustomAttributeData>); }
+        public static System.Collections.Generic.IList<System.Reflection.CustomAttributeData> GetCustomAttributes(System.Reflection.ParameterInfo target) { return default(System.Collections.Generic.IList<System.Reflection.CustomAttributeData>); }
+        public override int GetHashCode() { return default(int); }
+        public override string ToString() { return default(string); }
+    }
+    public static partial class CustomAttributeExtensions
+    {
+        public static System.Attribute GetCustomAttribute(this System.Reflection.Assembly element, System.Type attributeType) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(this System.Reflection.MemberInfo element, System.Type attributeType) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(this System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(this System.Reflection.Module element, System.Type attributeType) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(this System.Reflection.ParameterInfo element, System.Type attributeType) { return default(System.Attribute); }
+        public static System.Attribute GetCustomAttribute(this System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) { return default(System.Attribute); }
+        public static T GetCustomAttribute<T>(this System.Reflection.Assembly element) where T : System.Attribute { return default(T); }
+        public static T GetCustomAttribute<T>(this System.Reflection.MemberInfo element) where T : System.Attribute { return default(T); }
+        public static T GetCustomAttribute<T>(this System.Reflection.MemberInfo element, bool inherit) where T : System.Attribute { return default(T); }
+        public static T GetCustomAttribute<T>(this System.Reflection.Module element) where T : System.Attribute { return default(T); }
+        public static T GetCustomAttribute<T>(this System.Reflection.ParameterInfo element) where T : System.Attribute { return default(T); }
+        public static T GetCustomAttribute<T>(this System.Reflection.ParameterInfo element, bool inherit) where T : System.Attribute { return default(T); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.Assembly element) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.Assembly element, System.Type attributeType) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.MemberInfo element) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.MemberInfo element, bool inherit) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.MemberInfo element, System.Type attributeType) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.Module element) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.Module element, System.Type attributeType) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.ParameterInfo element) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.ParameterInfo element, bool inherit) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.ParameterInfo element, System.Type attributeType) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<System.Attribute> GetCustomAttributes(this System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) { return default(System.Collections.Generic.IEnumerable<System.Attribute>); }
+        public static System.Collections.Generic.IEnumerable<T> GetCustomAttributes<T>(this System.Reflection.Assembly element) where T : System.Attribute { return default(System.Collections.Generic.IEnumerable<T>); }
+        public static System.Collections.Generic.IEnumerable<T> GetCustomAttributes<T>(this System.Reflection.MemberInfo element) where T : System.Attribute { return default(System.Collections.Generic.IEnumerable<T>); }
+        public static System.Collections.Generic.IEnumerable<T> GetCustomAttributes<T>(this System.Reflection.MemberInfo element, bool inherit) where T : System.Attribute { return default(System.Collections.Generic.IEnumerable<T>); }
+        public static System.Collections.Generic.IEnumerable<T> GetCustomAttributes<T>(this System.Reflection.Module element) where T : System.Attribute { return default(System.Collections.Generic.IEnumerable<T>); }
+        public static System.Collections.Generic.IEnumerable<T> GetCustomAttributes<T>(this System.Reflection.ParameterInfo element) where T : System.Attribute { return default(System.Collections.Generic.IEnumerable<T>); }
+        public static System.Collections.Generic.IEnumerable<T> GetCustomAttributes<T>(this System.Reflection.ParameterInfo element, bool inherit) where T : System.Attribute { return default(System.Collections.Generic.IEnumerable<T>); }
+        public static bool IsDefined(this System.Reflection.Assembly element, System.Type attributeType) { return default(bool); }
+        public static bool IsDefined(this System.Reflection.MemberInfo element, System.Type attributeType) { return default(bool); }
+        public static bool IsDefined(this System.Reflection.MemberInfo element, System.Type attributeType, bool inherit) { return default(bool); }
+        public static bool IsDefined(this System.Reflection.Module element, System.Type attributeType) { return default(bool); }
+        public static bool IsDefined(this System.Reflection.ParameterInfo element, System.Type attributeType) { return default(bool); }
+        public static bool IsDefined(this System.Reflection.ParameterInfo element, System.Type attributeType, bool inherit) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class CustomAttributeFormatException : System.FormatException
+    {
+        public CustomAttributeFormatException() { }
+        public CustomAttributeFormatException(string message) { }
+        public CustomAttributeFormatException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct CustomAttributeNamedArgument
+    {
+        public bool IsField { get { return default(bool); } }
+        public string MemberName { get { return default(string); } }
+        public System.Reflection.CustomAttributeTypedArgument TypedValue { get { return default(System.Reflection.CustomAttributeTypedArgument); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.CustomAttributeNamedArgument left, System.Reflection.CustomAttributeNamedArgument right) { return default(bool); }
+        public static bool operator !=(System.Reflection.CustomAttributeNamedArgument left, System.Reflection.CustomAttributeNamedArgument right) { return default(bool); }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct CustomAttributeTypedArgument
+    {
+        public System.Type ArgumentType { get { return default(System.Type); } }
+        public object Value { get { return default(object); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.CustomAttributeTypedArgument left, System.Reflection.CustomAttributeTypedArgument right) { return default(bool); }
+        public static bool operator !=(System.Reflection.CustomAttributeTypedArgument left, System.Reflection.CustomAttributeTypedArgument right) { return default(bool); }
+        public override string ToString() { return default(string); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1036))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DefaultMemberAttribute : System.Attribute
+    {
+        public DefaultMemberAttribute(string memberName) { }
+        public string MemberName { get { return default(string); } }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum EventAttributes
+    {
+        None = 0,
+        ReservedMask = 1024,
+        RTSpecialName = 1024,
+        SpecialName = 512,
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class EventInfo : System.Reflection.MemberInfo
+    {
+        protected EventInfo() { }
+        public virtual System.Reflection.MethodInfo AddMethod { get { return default(System.Reflection.MethodInfo); } }
+        public abstract System.Reflection.EventAttributes Attributes { get; }
+        public virtual System.Type EventHandlerType { get { return default(System.Type); } }
+        public virtual bool IsMulticast { get { return default(bool); } }
+        public bool IsSpecialName { get { return default(bool); } }
+        public override System.Reflection.MemberTypes MemberType { get { return default(System.Reflection.MemberTypes); } }
+        public virtual System.Reflection.MethodInfo RaiseMethod { get { return default(System.Reflection.MethodInfo); } }
+        public virtual System.Reflection.MethodInfo RemoveMethod { get { return default(System.Reflection.MethodInfo); } }
+        [System.Diagnostics.DebuggerHiddenAttribute]
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public virtual void AddEventHandler(object target, System.Delegate handler) { }
+        public override bool Equals(object obj) { return default(bool); }
+        public System.Reflection.MethodInfo GetAddMethod() { return default(System.Reflection.MethodInfo); }
+        public abstract System.Reflection.MethodInfo GetAddMethod(bool nonPublic);
+        public override int GetHashCode() { return default(int); }
+        public System.Reflection.MethodInfo GetRaiseMethod() { return default(System.Reflection.MethodInfo); }
+        public abstract System.Reflection.MethodInfo GetRaiseMethod(bool nonPublic);
+        public System.Reflection.MethodInfo GetRemoveMethod() { return default(System.Reflection.MethodInfo); }
+        public abstract System.Reflection.MethodInfo GetRemoveMethod(bool nonPublic);
+        [System.Diagnostics.DebuggerHiddenAttribute]
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public virtual void RemoveEventHandler(object target, System.Delegate handler) { }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum FieldAttributes
+    {
+        Assembly = 3,
+        FamANDAssem = 2,
+        Family = 4,
+        FamORAssem = 5,
+        FieldAccessMask = 7,
+        HasDefault = 32768,
+        HasFieldMarshal = 4096,
+        HasFieldRVA = 256,
+        InitOnly = 32,
+        Literal = 64,
+        NotSerialized = 128,
+        PinvokeImpl = 8192,
+        Private = 1,
+        PrivateScope = 0,
+        Public = 6,
+        ReservedMask = 38144,
+        RTSpecialName = 1024,
+        SpecialName = 512,
+        Static = 16,
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class FieldInfo : System.Reflection.MemberInfo
+    {
+        protected FieldInfo() { }
+        public abstract System.Reflection.FieldAttributes Attributes { get; }
+        public abstract System.RuntimeFieldHandle FieldHandle { get; }
+        public abstract System.Type FieldType { get; }
+        public bool IsAssembly { get { return default(bool); } }
+        public bool IsFamily { get { return default(bool); } }
+        public bool IsFamilyAndAssembly { get { return default(bool); } }
+        public bool IsFamilyOrAssembly { get { return default(bool); } }
+        public bool IsInitOnly { get { return default(bool); } }
+        public bool IsLiteral { get { return default(bool); } }
+        public bool IsNotSerialized { get { return default(bool); } }
+        public bool IsPinvokeImpl { get { return default(bool); } }
+        public bool IsPrivate { get { return default(bool); } }
+        public bool IsPublic { get { return default(bool); } }
+        public bool IsSpecialName { get { return default(bool); } }
+        public bool IsStatic { get { return default(bool); } }
+        public override System.Reflection.MemberTypes MemberType { get { return default(System.Reflection.MemberTypes); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public static System.Reflection.FieldInfo GetFieldFromHandle(System.RuntimeFieldHandle handle) { return default(System.Reflection.FieldInfo); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public static System.Reflection.FieldInfo GetFieldFromHandle(System.RuntimeFieldHandle handle, System.RuntimeTypeHandle declaringType) { return default(System.Reflection.FieldInfo); }
+        public override int GetHashCode() { return default(int); }
+        public virtual System.Type[] GetOptionalCustomModifiers() { return default(System.Type[]); }
+        public virtual object GetRawConstantValue() { return default(object); }
+        public virtual System.Type[] GetRequiredCustomModifiers() { return default(System.Type[]); }
+        public abstract object GetValue(object obj);
+        [System.Diagnostics.DebuggerHiddenAttribute]
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public void SetValue(object obj, object value) { }
+        public abstract void SetValue(object obj, object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Globalization.CultureInfo culture);
+    }
+    [System.FlagsAttribute]
+    public enum GenericParameterAttributes
+    {
+        Contravariant = 2,
+        Covariant = 1,
+        DefaultConstructorConstraint = 16,
+        None = 0,
+        NotNullableValueTypeConstraint = 8,
+        ReferenceTypeConstraint = 4,
+        SpecialConstraintMask = 28,
+        VarianceMask = 3,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface ICustomAttributeProvider
+    {
+        object[] GetCustomAttributes(bool inherit);
+        object[] GetCustomAttributes(System.Type attributeType, bool inherit);
+        bool IsDefined(System.Type attributeType, bool inherit);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct InterfaceMapping
+    {
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public System.Reflection.MethodInfo[] InterfaceMethods;
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public System.Type InterfaceType;
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public System.Reflection.MethodInfo[] TargetMethods;
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public System.Type TargetType;
+    }
+    public static partial class IntrospectionExtensions
+    {
+        public static System.Reflection.TypeInfo GetTypeInfo(this System.Type type) { return default(System.Reflection.TypeInfo); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class InvalidFilterCriteriaException : System.Exception
+    {
+        public InvalidFilterCriteriaException() { }
+        public InvalidFilterCriteriaException(string message) { }
+        public InvalidFilterCriteriaException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.GuidAttribute("AFBF15E5-C37C-11d2-B88E-00A0C9B471B8")]
+    public partial interface IReflect
+    {
+        System.Type UnderlyingSystemType { get; }
+        System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr);
+        System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingAttr);
+        System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.BindingFlags bindingAttr);
+        System.Reflection.MemberInfo[] GetMembers(System.Reflection.BindingFlags bindingAttr);
+        System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr);
+        System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type[] types, System.Reflection.ParameterModifier[] modifiers);
+        System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingAttr);
+        System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr);
+        System.Reflection.PropertyInfo GetProperty(string name, System.Reflection.BindingFlags bindingAttr);
+        System.Reflection.PropertyInfo GetProperty(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers);
+        object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters);
+    }
+    public partial interface IReflectableType
+    {
+        System.Reflection.TypeInfo GetTypeInfo();
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class LocalVariableInfo
+    {
+        protected LocalVariableInfo() { }
+        public virtual bool IsPinned { get { return default(bool); } }
+        public virtual int LocalIndex { get { return default(int); } }
+        public virtual System.Type LocalType { get { return default(System.Type); } }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ManifestResourceInfo
+    {
+        public ManifestResourceInfo(System.Reflection.Assembly containingAssembly, string containingFileName, System.Reflection.ResourceLocation resourceLocation) { }
+        public virtual string FileName { get { return default(string); } }
+        public virtual System.Reflection.Assembly ReferencedAssembly { get { return default(System.Reflection.Assembly); } }
+        public virtual System.Reflection.ResourceLocation ResourceLocation { get { return default(System.Reflection.ResourceLocation); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public delegate bool MemberFilter(System.Reflection.MemberInfo m, object filterCriteria);
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class MemberInfo : System.Reflection.ICustomAttributeProvider
+    {
+        protected MemberInfo() { }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.CustomAttributeData> CustomAttributes { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.CustomAttributeData>); } }
+        public abstract System.Type DeclaringType { get; }
+        public abstract System.Reflection.MemberTypes MemberType { get; }
+        public virtual int MetadataToken { get { return default(int); } }
+        public virtual System.Reflection.Module Module { get { return default(System.Reflection.Module); } }
+        public abstract string Name { get; }
+        public abstract System.Type ReflectedType { get; }
+        public override bool Equals(object obj) { return default(bool); }
+        public abstract object[] GetCustomAttributes(bool inherit);
+        public abstract object[] GetCustomAttributes(System.Type attributeType, bool inherit);
+        public override int GetHashCode() { return default(int); }
+        public abstract bool IsDefined(System.Type attributeType, bool inherit);
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum MemberTypes
+    {
+        All = 191,
+        Constructor = 1,
+        Custom = 64,
+        Event = 2,
+        Field = 4,
+        Method = 8,
+        NestedType = 128,
+        Property = 16,
+        TypeInfo = 32,
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum MethodAttributes
+    {
+        Abstract = 1024,
+        Assembly = 3,
+        CheckAccessOnOverride = 512,
+        FamANDAssem = 2,
+        Family = 4,
+        FamORAssem = 5,
+        Final = 32,
+        HasSecurity = 16384,
+        HideBySig = 128,
+        MemberAccessMask = 7,
+        NewSlot = 256,
+        PinvokeImpl = 8192,
+        Private = 1,
+        PrivateScope = 0,
+        Public = 6,
+        RequireSecObject = 32768,
+        ReservedMask = 53248,
+        ReuseSlot = 0,
+        RTSpecialName = 4096,
+        SpecialName = 2048,
+        Static = 16,
+        UnmanagedExport = 8,
+        Virtual = 64,
+        VtableLayoutMask = 256,
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class MethodBase : System.Reflection.MemberInfo
+    {
+        protected MethodBase() { }
+        public abstract System.Reflection.MethodAttributes Attributes { get; }
+        public virtual System.Reflection.CallingConventions CallingConvention { get { return default(System.Reflection.CallingConventions); } }
+        public virtual bool ContainsGenericParameters { get { return default(bool); } }
+        public bool IsAbstract { get { return default(bool); } }
+        public bool IsAssembly { get { return default(bool); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public bool IsConstructor { get { return default(bool); } }
+        public bool IsFamily { get { return default(bool); } }
+        public bool IsFamilyAndAssembly { get { return default(bool); } }
+        public bool IsFamilyOrAssembly { get { return default(bool); } }
+        public bool IsFinal { get { return default(bool); } }
+        public virtual bool IsGenericMethod { get { return default(bool); } }
+        public virtual bool IsGenericMethodDefinition { get { return default(bool); } }
+        public bool IsHideBySig { get { return default(bool); } }
+        public bool IsPrivate { get { return default(bool); } }
+        public bool IsPublic { get { return default(bool); } }
+        public bool IsSpecialName { get { return default(bool); } }
+        public bool IsStatic { get { return default(bool); } }
+        public bool IsVirtual { get { return default(bool); } }
+        public abstract System.RuntimeMethodHandle MethodHandle { get; }
+        public virtual System.Reflection.MethodImplAttributes MethodImplementationFlags { get { return default(System.Reflection.MethodImplAttributes); } }
+        public override bool Equals(object obj) { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static System.Reflection.MethodBase GetCurrentMethod() { return default(System.Reflection.MethodBase); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public virtual System.Type[] GetGenericArguments() { return default(System.Type[]); }
+        public override int GetHashCode() { return default(int); }
+        public static System.Reflection.MethodBase GetMethodFromHandle(System.RuntimeMethodHandle handle) { return default(System.Reflection.MethodBase); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public static System.Reflection.MethodBase GetMethodFromHandle(System.RuntimeMethodHandle handle, System.RuntimeTypeHandle declaringType) { return default(System.Reflection.MethodBase); }
+        public abstract System.Reflection.MethodImplAttributes GetMethodImplementationFlags();
+        public abstract System.Reflection.ParameterInfo[] GetParameters();
+        [System.Diagnostics.DebuggerHiddenAttribute]
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public object Invoke(object obj, object[] parameters) { return default(object); }
+        public abstract object Invoke(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum MethodImplAttributes
+    {
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        AggressiveInlining = 256,
+        CodeTypeMask = 3,
+        ForwardRef = 16,
+        IL = 0,
+        InternalCall = 4096,
+        Managed = 0,
+        ManagedMask = 4,
+        MaxMethodImplVal = 65535,
+        Native = 1,
+        NoInlining = 8,
+        NoOptimization = 64,
+        OPTIL = 2,
+        PreserveSig = 128,
+        Runtime = 3,
+        Synchronized = 32,
+        Unmanaged = 4,
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class MethodInfo : System.Reflection.MethodBase
+    {
+        protected MethodInfo() { }
+        public override System.Reflection.MemberTypes MemberType { get { return default(System.Reflection.MemberTypes); } }
+        public virtual System.Reflection.ParameterInfo ReturnParameter { get { return default(System.Reflection.ParameterInfo); } }
+        public virtual System.Type ReturnType { get { return default(System.Type); } }
+        public abstract System.Reflection.ICustomAttributeProvider ReturnTypeCustomAttributes { get; }
+        public virtual System.Delegate CreateDelegate(System.Type delegateType) { return default(System.Delegate); }
+        public virtual System.Delegate CreateDelegate(System.Type delegateType, object target) { return default(System.Delegate); }
+        public override bool Equals(object obj) { return default(bool); }
+        public abstract System.Reflection.MethodInfo GetBaseDefinition();
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override System.Type[] GetGenericArguments() { return default(System.Type[]); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public virtual System.Reflection.MethodInfo GetGenericMethodDefinition() { return default(System.Reflection.MethodInfo); }
+        public override int GetHashCode() { return default(int); }
+        public virtual System.Reflection.MethodInfo MakeGenericMethod(params System.Type[] typeArguments) { return default(System.Reflection.MethodInfo); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class Missing
+    {
+        internal Missing() { }
+        public static readonly System.Reflection.Missing Value;
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Module : System.Reflection.ICustomAttributeProvider
+    {
+        public static readonly System.Reflection.TypeFilter FilterTypeName;
+        public static readonly System.Reflection.TypeFilter FilterTypeNameIgnoreCase;
+        protected Module() { }
+        public virtual System.Reflection.Assembly Assembly { get { return default(System.Reflection.Assembly); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.CustomAttributeData> CustomAttributes { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.CustomAttributeData>); } }
+        public virtual string FullyQualifiedName { [System.Security.SecurityCriticalAttribute]get { return default(string); } }
+        public virtual int MetadataToken { get { return default(int); } }
+        public virtual System.Guid ModuleVersionId { get { return default(System.Guid); } }
+        public virtual string Name { get { return default(string); } }
+        public virtual string ScopeName { get { return default(string); } }
+        public override bool Equals(object o) { return default(bool); }
+        public virtual System.Type[] FindTypes(System.Reflection.TypeFilter filter, object filterCriteria) { return default(System.Type[]); }
+        public virtual object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public virtual object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public System.Reflection.FieldInfo GetField(string name) { return default(System.Reflection.FieldInfo); }
+        public virtual System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.FieldInfo); }
+        public System.Reflection.FieldInfo[] GetFields() { return default(System.Reflection.FieldInfo[]); }
+        public virtual System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingFlags) { return default(System.Reflection.FieldInfo[]); }
+        public override int GetHashCode() { return default(int); }
+        public System.Reflection.MethodInfo GetMethod(string name) { return default(System.Reflection.MethodInfo); }
+        public System.Reflection.MethodInfo GetMethod(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.MethodInfo); }
+        public System.Reflection.MethodInfo GetMethod(string name, System.Type[] types) { return default(System.Reflection.MethodInfo); }
+        protected virtual System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.MethodInfo); }
+        public System.Reflection.MethodInfo[] GetMethods() { return default(System.Reflection.MethodInfo[]); }
+        public virtual System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingFlags) { return default(System.Reflection.MethodInfo[]); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public virtual System.Type GetType(string className) { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public virtual System.Type GetType(string className, bool ignoreCase) { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public virtual System.Type GetType(string className, bool throwOnError, bool ignoreCase) { return default(System.Type); }
+        public virtual System.Type[] GetTypes() { return default(System.Type[]); }
+        public virtual bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        public System.Reflection.FieldInfo ResolveField(int metadataToken) { return default(System.Reflection.FieldInfo); }
+        public virtual System.Reflection.FieldInfo ResolveField(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) { return default(System.Reflection.FieldInfo); }
+        public System.Reflection.MethodBase ResolveMethod(int metadataToken) { return default(System.Reflection.MethodBase); }
+        public virtual System.Reflection.MethodBase ResolveMethod(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) { return default(System.Reflection.MethodBase); }
+        public virtual string ResolveString(int metadataToken) { return default(string); }
+        public System.Type ResolveType(int metadataToken) { return default(System.Type); }
+        public virtual System.Type ResolveType(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) { return default(System.Type); }
+        public override string ToString() { return default(string); }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum ParameterAttributes
+    {
+        HasDefault = 4096,
+        HasFieldMarshal = 8192,
+        In = 1,
+        Lcid = 4,
+        None = 0,
+        Optional = 16,
+        Out = 2,
+        Reserved3 = 16384,
+        Reserved4 = 32768,
+        ReservedMask = 61440,
+        Retval = 8,
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ParameterInfo : System.Reflection.ICustomAttributeProvider
+    {
+        protected ParameterInfo() { }
+        public virtual System.Reflection.ParameterAttributes Attributes { get { return default(System.Reflection.ParameterAttributes); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.CustomAttributeData> CustomAttributes { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.CustomAttributeData>); } }
+        public virtual object DefaultValue { get { return default(object); } }
+        public virtual bool HasDefaultValue { get { return default(bool); } }
+        public bool IsIn { get { return default(bool); } }
+        public bool IsOptional { get { return default(bool); } }
+        public bool IsOut { get { return default(bool); } }
+        public bool IsRetval { get { return default(bool); } }
+        public virtual System.Reflection.MemberInfo Member { get { return default(System.Reflection.MemberInfo); } }
+        public virtual int MetadataToken { get { return default(int); } }
+        public virtual string Name { get { return default(string); } }
+        public virtual System.Type ParameterType { get { return default(System.Type); } }
+        public virtual int Position { get { return default(int); } }
+        public virtual object RawDefaultValue { get { return default(object); } }
+        public virtual object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public virtual object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public virtual System.Type[] GetOptionalCustomModifiers() { return default(System.Type[]); }
+        public virtual System.Type[] GetRequiredCustomModifiers() { return default(System.Type[]); }
+        public virtual bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct ParameterModifier
+    {
+        public ParameterModifier(int parameterCount) { throw new System.NotImplementedException(); }
+        public bool this[int index] { get { return default(bool); } set { } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum ProcessorArchitecture
+    {
+        Amd64 = 4,
+        Arm = 5,
+        IA64 = 3,
+        MSIL = 1,
+        None = 0,
+        X86 = 2,
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum PropertyAttributes
+    {
+        HasDefault = 4096,
+        None = 0,
+        Reserved2 = 8192,
+        Reserved3 = 16384,
+        Reserved4 = 32768,
+        ReservedMask = 62464,
+        RTSpecialName = 1024,
+        SpecialName = 512,
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class PropertyInfo : System.Reflection.MemberInfo
+    {
+        protected PropertyInfo() { }
+        public abstract System.Reflection.PropertyAttributes Attributes { get; }
+        public abstract bool CanRead { get; }
+        public abstract bool CanWrite { get; }
+        public virtual System.Reflection.MethodInfo GetMethod { get { return default(System.Reflection.MethodInfo); } }
+        public bool IsSpecialName { get { return default(bool); } }
+        public override System.Reflection.MemberTypes MemberType { get { return default(System.Reflection.MemberTypes); } }
+        public abstract System.Type PropertyType { get; }
+        public virtual System.Reflection.MethodInfo SetMethod { get { return default(System.Reflection.MethodInfo); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public System.Reflection.MethodInfo[] GetAccessors() { return default(System.Reflection.MethodInfo[]); }
+        public abstract System.Reflection.MethodInfo[] GetAccessors(bool nonPublic);
+        public virtual object GetConstantValue() { return default(object); }
+        public System.Reflection.MethodInfo GetGetMethod() { return default(System.Reflection.MethodInfo); }
+        public abstract System.Reflection.MethodInfo GetGetMethod(bool nonPublic);
+        public override int GetHashCode() { return default(int); }
+        public abstract System.Reflection.ParameterInfo[] GetIndexParameters();
+        public virtual System.Type[] GetOptionalCustomModifiers() { return default(System.Type[]); }
+        public virtual object GetRawConstantValue() { return default(object); }
+        public virtual System.Type[] GetRequiredCustomModifiers() { return default(System.Type[]); }
+        public System.Reflection.MethodInfo GetSetMethod() { return default(System.Reflection.MethodInfo); }
+        public abstract System.Reflection.MethodInfo GetSetMethod(bool nonPublic);
+        [System.Diagnostics.DebuggerHiddenAttribute]
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public object GetValue(object obj) { return default(object); }
+        [System.Diagnostics.DebuggerHiddenAttribute]
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public virtual object GetValue(object obj, object[] index) { return default(object); }
+        public abstract object GetValue(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture);
+        [System.Diagnostics.DebuggerHiddenAttribute]
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public void SetValue(object obj, object value) { }
+        [System.Diagnostics.DebuggerHiddenAttribute]
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        public virtual void SetValue(object obj, object value, object[] index) { }
+        public abstract void SetValue(object obj, object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture);
+    }
+    public abstract partial class ReflectionContext
+    {
+        protected ReflectionContext() { }
+        public virtual System.Reflection.TypeInfo GetTypeForObject(object value) { return default(System.Reflection.TypeInfo); }
+        public abstract System.Reflection.Assembly MapAssembly(System.Reflection.Assembly assembly);
+        public abstract System.Reflection.TypeInfo MapType(System.Reflection.TypeInfo type);
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ReflectionTypeLoadException : System.SystemException
+    {
+        public ReflectionTypeLoadException(System.Type[] classes, System.Exception[] exceptions) { }
+        public ReflectionTypeLoadException(System.Type[] classes, System.Exception[] exceptions, string message) { }
+        public System.Exception[] LoaderExceptions { get { return default(System.Exception[]); } }
+        public System.Type[] Types { get { return default(System.Type[]); } }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum ResourceAttributes
+    {
+        Private = 2,
+        Public = 1,
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum ResourceLocation
+    {
+        ContainedInAnotherAssembly = 2,
+        ContainedInManifestFile = 4,
+        Embedded = 1,
+    }
+    public static partial class RuntimeReflectionExtensions
+    {
+        public static System.Reflection.MethodInfo GetMethodInfo(this System.Delegate del) { return default(System.Reflection.MethodInfo); }
+        public static System.Reflection.MethodInfo GetRuntimeBaseDefinition(this System.Reflection.MethodInfo method) { return default(System.Reflection.MethodInfo); }
+        public static System.Reflection.EventInfo GetRuntimeEvent(this System.Type type, string name) { return default(System.Reflection.EventInfo); }
+        public static System.Collections.Generic.IEnumerable<System.Reflection.EventInfo> GetRuntimeEvents(this System.Type type) { return default(System.Collections.Generic.IEnumerable<System.Reflection.EventInfo>); }
+        public static System.Reflection.FieldInfo GetRuntimeField(this System.Type type, string name) { return default(System.Reflection.FieldInfo); }
+        public static System.Collections.Generic.IEnumerable<System.Reflection.FieldInfo> GetRuntimeFields(this System.Type type) { return default(System.Collections.Generic.IEnumerable<System.Reflection.FieldInfo>); }
+        public static System.Reflection.InterfaceMapping GetRuntimeInterfaceMap(this System.Reflection.TypeInfo typeInfo, System.Type interfaceType) { return default(System.Reflection.InterfaceMapping); }
+        public static System.Reflection.MethodInfo GetRuntimeMethod(this System.Type type, string name, System.Type[] parameters) { return default(System.Reflection.MethodInfo); }
+        public static System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo> GetRuntimeMethods(this System.Type type) { return default(System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo>); }
+        public static System.Collections.Generic.IEnumerable<System.Reflection.PropertyInfo> GetRuntimeProperties(this System.Type type) { return default(System.Collections.Generic.IEnumerable<System.Reflection.PropertyInfo>); }
+        public static System.Reflection.PropertyInfo GetRuntimeProperty(this System.Type type, string name) { return default(System.Reflection.PropertyInfo); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class TargetException : System.Exception
+    {
+        public TargetException() { }
+        public TargetException(string message) { }
+        public TargetException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class TargetInvocationException : System.Exception
+    {
+        public TargetInvocationException(System.Exception inner) { }
+        public TargetInvocationException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class TargetParameterCountException : System.Exception
+    {
+        public TargetParameterCountException() { }
+        public TargetParameterCountException(string message) { }
+        public TargetParameterCountException(string message, System.Exception inner) { }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum TypeAttributes
+    {
+        Abstract = 128,
+        AnsiClass = 0,
+        AutoClass = 131072,
+        AutoLayout = 0,
+        BeforeFieldInit = 1048576,
+        Class = 0,
+        ClassSemanticsMask = 32,
+        CustomFormatClass = 196608,
+        CustomFormatMask = 12582912,
+        ExplicitLayout = 16,
+        HasSecurity = 262144,
+        Import = 4096,
+        Interface = 32,
+        LayoutMask = 24,
+        NestedAssembly = 5,
+        NestedFamANDAssem = 6,
+        NestedFamily = 4,
+        NestedFamORAssem = 7,
+        NestedPrivate = 3,
+        NestedPublic = 2,
+        NotPublic = 0,
+        Public = 1,
+        ReservedMask = 264192,
+        RTSpecialName = 2048,
+        Sealed = 256,
+        SequentialLayout = 8,
+        Serializable = 8192,
+        SpecialName = 1024,
+        StringFormatMask = 196608,
+        UnicodeClass = 65536,
+        VisibilityMask = 7,
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        WindowsRuntime = 16384,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public delegate bool TypeFilter(System.Type m, object filterCriteria);
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class TypeInfo : System.Type, System.Reflection.IReflectableType
+    {
+        internal TypeInfo() { }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.ConstructorInfo> DeclaredConstructors { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.ConstructorInfo>); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.EventInfo> DeclaredEvents { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.EventInfo>); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.FieldInfo> DeclaredFields { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.FieldInfo>); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> DeclaredMembers { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo>); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo> DeclaredMethods { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo>); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.TypeInfo> DeclaredNestedTypes { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.TypeInfo>); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.PropertyInfo> DeclaredProperties { get { return default(System.Collections.Generic.IEnumerable<System.Reflection.PropertyInfo>); } }
+        public virtual System.Type[] GenericTypeParameters { get { return default(System.Type[]); } }
+        public virtual System.Collections.Generic.IEnumerable<System.Type> ImplementedInterfaces { get { return default(System.Collections.Generic.IEnumerable<System.Type>); } }
+        public virtual System.Type AsType() { return default(System.Type); }
+        public virtual System.Reflection.EventInfo GetDeclaredEvent(string name) { return default(System.Reflection.EventInfo); }
+        public virtual System.Reflection.FieldInfo GetDeclaredField(string name) { return default(System.Reflection.FieldInfo); }
+        public virtual System.Reflection.MethodInfo GetDeclaredMethod(string name) { return default(System.Reflection.MethodInfo); }
+        public virtual System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo> GetDeclaredMethods(string name) { return default(System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo>); }
+        public virtual System.Reflection.TypeInfo GetDeclaredNestedType(string name) { return default(System.Reflection.TypeInfo); }
+        public virtual System.Reflection.PropertyInfo GetDeclaredProperty(string name) { return default(System.Reflection.PropertyInfo); }
+        public virtual bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo) { return default(bool); }
+        System.Reflection.TypeInfo System.Reflection.IReflectableType.GetTypeInfo() { return default(System.Reflection.TypeInfo); }
+    }
+}
+namespace System.Reflection.Emit
+{
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class AssemblyBuilder : System.Reflection.Assembly
+    {
+        internal AssemblyBuilder() { }
+        public override string CodeBase { [System.Security.SecurityCriticalAttribute]get { return default(string); } }
+        public override System.Reflection.MethodInfo EntryPoint { get { return default(System.Reflection.MethodInfo); } }
+        public override string FullName { get { return default(string); } }
+        public override string ImageRuntimeVersion { get { return default(string); } }
+        public override bool IsDynamic { get { return default(bool); } }
+        public override string Location { [System.Security.SecurityCriticalAttribute]get { return default(string); } }
+        public override System.Reflection.Module ManifestModule { get { return default(System.Reflection.Module); } }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access) { return default(System.Reflection.Emit.AssemblyBuilder); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.Reflection.AssemblyName name, System.Reflection.Emit.AssemblyBuilderAccess access, System.Collections.Generic.IEnumerable<System.Reflection.Emit.CustomAttributeBuilder> assemblyAttributes) { return default(System.Reflection.Emit.AssemblyBuilder); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.ModuleBuilder DefineDynamicModule(string name) { return default(System.Reflection.Emit.ModuleBuilder); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.ModuleBuilder DefineDynamicModule(string name, bool emitSymbolInfo) { return default(System.Reflection.Emit.ModuleBuilder); }
+        public override bool Equals(object obj) { return default(bool); }
+        public override object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public System.Reflection.Emit.ModuleBuilder GetDynamicModule(string name) { return default(System.Reflection.Emit.ModuleBuilder); }
+        public override System.Type[] GetExportedTypes() { return default(System.Type[]); }
+        public override int GetHashCode() { return default(int); }
+        public override System.Reflection.ManifestResourceInfo GetManifestResourceInfo(string resourceName) { return default(System.Reflection.ManifestResourceInfo); }
+        public override string[] GetManifestResourceNames() { return default(string[]); }
+        public override System.IO.Stream GetManifestResourceStream(string name) { return default(System.IO.Stream); }
+        public override System.IO.Stream GetManifestResourceStream(System.Type type, string name) { return default(System.IO.Stream); }
+        public override System.Reflection.AssemblyName[] GetReferencedAssemblies() { return default(System.Reflection.AssemblyName[]); }
+        public override System.Type GetType(string name, bool throwOnError, bool ignoreCase) { return default(System.Type); }
+        public override bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) { }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum AssemblyBuilderAccess
+    {
+        Run = 1,
+        RunAndCollect = 9,
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class ConstructorBuilder : System.Reflection.ConstructorInfo
+    {
+        internal ConstructorBuilder() { }
+        public override System.Reflection.MethodAttributes Attributes { get { return default(System.Reflection.MethodAttributes); } }
+        public override System.Reflection.CallingConventions CallingConvention { get { return default(System.Reflection.CallingConventions); } }
+        public override System.Type DeclaringType { get { return default(System.Type); } }
+        public bool InitLocals { get { return default(bool); } set { } }
+        public override System.RuntimeMethodHandle MethodHandle { get { return default(System.RuntimeMethodHandle); } }
+        public override System.Reflection.Module Module { get { return default(System.Reflection.Module); } }
+        public override string Name { get { return default(string); } }
+        public override System.Type ReflectedType { get { return default(System.Type); } }
+        public string Signature { get { return default(string); } }
+        public System.Reflection.Emit.ParameterBuilder DefineParameter(int iSequence, System.Reflection.ParameterAttributes attributes, string strParamName) { return default(System.Reflection.Emit.ParameterBuilder); }
+        public override object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public System.Reflection.Emit.ILGenerator GetILGenerator() { return default(System.Reflection.Emit.ILGenerator); }
+        public System.Reflection.Emit.ILGenerator GetILGenerator(int streamSize) { return default(System.Reflection.Emit.ILGenerator); }
+        public override System.Reflection.MethodImplAttributes GetMethodImplementationFlags() { return default(System.Reflection.MethodImplAttributes); }
+        public System.Reflection.Module GetModule() { return default(System.Reflection.Module); }
+        public override System.Reflection.ParameterInfo[] GetParameters() { return default(System.Reflection.ParameterInfo[]); }
+        public System.Reflection.Emit.MethodToken GetToken() { return default(System.Reflection.Emit.MethodToken); }
+        public override object Invoke(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture) { return default(object); }
+        public override object Invoke(System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture) { return default(object); }
+        public override bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) { }
+        public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) { }
+        public void SetImplementationFlags(System.Reflection.MethodImplAttributes attributes) { }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public partial class CustomAttributeBuilder
+    {
+        public CustomAttributeBuilder(System.Reflection.ConstructorInfo con, object[] constructorArgs) { }
+        public CustomAttributeBuilder(System.Reflection.ConstructorInfo con, object[] constructorArgs, System.Reflection.FieldInfo[] namedFields, object[] fieldValues) { }
+        public CustomAttributeBuilder(System.Reflection.ConstructorInfo con, object[] constructorArgs, System.Reflection.PropertyInfo[] namedProperties, object[] propertyValues) { }
+        public CustomAttributeBuilder(System.Reflection.ConstructorInfo con, object[] constructorArgs, System.Reflection.PropertyInfo[] namedProperties, object[] propertyValues, System.Reflection.FieldInfo[] namedFields, object[] fieldValues) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DynamicMethod : System.Reflection.MethodInfo
+    {
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecurityCriticalAttribute]
+        public DynamicMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Reflection.Module m, bool skipVisibility) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecurityCriticalAttribute]
+        public DynamicMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Type owner, bool skipVisibility) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes, bool restrictedSkipVisibility) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecurityCriticalAttribute]
+        public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes, System.Reflection.Module m) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecurityCriticalAttribute]
+        public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes, System.Reflection.Module m, bool skipVisibility) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecurityCriticalAttribute]
+        public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes, System.Type owner) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecurityCriticalAttribute]
+        public DynamicMethod(string name, System.Type returnType, System.Type[] parameterTypes, System.Type owner, bool skipVisibility) { }
+        public override System.Reflection.MethodAttributes Attributes { get { return default(System.Reflection.MethodAttributes); } }
+        public override System.Reflection.CallingConventions CallingConvention { get { return default(System.Reflection.CallingConventions); } }
+        public override System.Type DeclaringType { get { return default(System.Type); } }
+        public bool InitLocals { get { return default(bool); } set { } }
+        public override System.RuntimeMethodHandle MethodHandle { get { return default(System.RuntimeMethodHandle); } }
+        public override System.Reflection.Module Module { get { return default(System.Reflection.Module); } }
+        public override string Name { get { return default(string); } }
+        public override System.Type ReflectedType { get { return default(System.Type); } }
+        public override System.Reflection.ParameterInfo ReturnParameter { get { return default(System.Reflection.ParameterInfo); } }
+        public override System.Type ReturnType { get { return default(System.Type); } }
+        public override System.Reflection.ICustomAttributeProvider ReturnTypeCustomAttributes { get { return default(System.Reflection.ICustomAttributeProvider); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public sealed override System.Delegate CreateDelegate(System.Type delegateType) { return default(System.Delegate); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public sealed override System.Delegate CreateDelegate(System.Type delegateType, object target) { return default(System.Delegate); }
+        public System.Reflection.Emit.ParameterBuilder DefineParameter(int position, System.Reflection.ParameterAttributes attributes, string parameterName) { return default(System.Reflection.Emit.ParameterBuilder); }
+        public override System.Reflection.MethodInfo GetBaseDefinition() { return default(System.Reflection.MethodInfo); }
+        public override object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public System.Reflection.Emit.ILGenerator GetILGenerator() { return default(System.Reflection.Emit.ILGenerator); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.ILGenerator GetILGenerator(int streamSize) { return default(System.Reflection.Emit.ILGenerator); }
+        public override System.Reflection.MethodImplAttributes GetMethodImplementationFlags() { return default(System.Reflection.MethodImplAttributes); }
+        public override System.Reflection.ParameterInfo[] GetParameters() { return default(System.Reflection.ParameterInfo[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override object Invoke(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture) { return default(object); }
+        public override bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class EnumBuilder : System.Reflection.TypeInfo
+    {
+        internal EnumBuilder() { }
+        public override System.Reflection.Assembly Assembly { get { return default(System.Reflection.Assembly); } }
+        public override string AssemblyQualifiedName { get { return default(string); } }
+        public override System.Type BaseType { get { return default(System.Type); } }
+        public override System.Type DeclaringType { get { return default(System.Type); } }
+        public override string FullName { get { return default(string); } }
+        public override System.Guid GUID { get { return default(System.Guid); } }
+        public override bool IsConstructedGenericType { get { return default(bool); } }
+        public override System.Reflection.Module Module { get { return default(System.Reflection.Module); } }
+        public override string Name { get { return default(string); } }
+        public override string Namespace { get { return default(string); } }
+        public override System.Type ReflectedType { get { return default(System.Type); } }
+        public override System.RuntimeTypeHandle TypeHandle { get { return default(System.RuntimeTypeHandle); } }
+        public System.Reflection.Emit.TypeToken TypeToken { get { return default(System.Reflection.Emit.TypeToken); } }
+        public System.Reflection.Emit.FieldBuilder UnderlyingField { get { return default(System.Reflection.Emit.FieldBuilder); } }
+        public override System.Type UnderlyingSystemType { get { return default(System.Type); } }
+        public System.Type CreateType() { return default(System.Type); }
+        public System.Reflection.TypeInfo CreateTypeInfo() { return default(System.Reflection.TypeInfo); }
+        public System.Reflection.Emit.FieldBuilder DefineLiteral(string literalName, object literalValue) { return default(System.Reflection.Emit.FieldBuilder); }
+        protected override System.Reflection.TypeAttributes GetAttributeFlagsImpl() { return default(System.Reflection.TypeAttributes); }
+        protected override System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.ConstructorInfo); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override System.Reflection.ConstructorInfo[] GetConstructors(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.ConstructorInfo[]); }
+        public override object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public override System.Type GetElementType() { return default(System.Type); }
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Contracts", "CC1055")]
+        public override System.Type GetEnumUnderlyingType() { return default(System.Type); }
+        public override System.Reflection.EventInfo GetEvent(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.EventInfo); }
+        public override System.Reflection.EventInfo[] GetEvents() { return default(System.Reflection.EventInfo[]); }
+        public override System.Reflection.EventInfo[] GetEvents(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.EventInfo[]); }
+        public override System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.FieldInfo); }
+        public override System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.FieldInfo[]); }
+        public override System.Type GetInterface(string name, bool ignoreCase) { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override System.Reflection.InterfaceMapping GetInterfaceMap(System.Type interfaceType) { return default(System.Reflection.InterfaceMapping); }
+        public override System.Type[] GetInterfaces() { return default(System.Type[]); }
+        public override System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.MemberTypes type, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MemberInfo[]); }
+        public override System.Reflection.MemberInfo[] GetMembers(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MemberInfo[]); }
+        protected override System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.MethodInfo); }
+        public override System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MethodInfo[]); }
+        public override System.Type GetNestedType(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Type); }
+        public override System.Type[] GetNestedTypes(System.Reflection.BindingFlags bindingAttr) { return default(System.Type[]); }
+        public override System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.PropertyInfo[]); }
+        protected override System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.PropertyInfo); }
+        protected override bool HasElementTypeImpl() { return default(bool); }
+        public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters) { return default(object); }
+        protected override bool IsArrayImpl() { return default(bool); }
+        public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo) { return default(bool); }
+        protected override bool IsByRefImpl() { return default(bool); }
+        protected override bool IsCOMObjectImpl() { return default(bool); }
+        public override bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        protected override bool IsPointerImpl() { return default(bool); }
+        protected override bool IsPrimitiveImpl() { return default(bool); }
+        protected override bool IsValueTypeImpl() { return default(bool); }
+        public override System.Type MakeArrayType() { return default(System.Type); }
+        public override System.Type MakeArrayType(int rank) { return default(System.Type); }
+        public override System.Type MakeByRefType() { return default(System.Type); }
+        public override System.Type MakePointerType() { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) { }
+        public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) { }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class EventBuilder
+    {
+        internal EventBuilder() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void AddOtherMethod(System.Reflection.Emit.MethodBuilder mdBuilder) { }
+        public System.Reflection.Emit.EventToken GetEventToken() { return default(System.Reflection.Emit.EventToken); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetAddOnMethod(System.Reflection.Emit.MethodBuilder mdBuilder) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetRaiseMethod(System.Reflection.Emit.MethodBuilder mdBuilder) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetRemoveOnMethod(System.Reflection.Emit.MethodBuilder mdBuilder) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct EventToken
+    {
+        public static readonly System.Reflection.Emit.EventToken Empty;
+        public int Token { get { return default(int); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Reflection.Emit.EventToken obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.Emit.EventToken a, System.Reflection.Emit.EventToken b) { return default(bool); }
+        public static bool operator !=(System.Reflection.Emit.EventToken a, System.Reflection.Emit.EventToken b) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class FieldBuilder : System.Reflection.FieldInfo
+    {
+        internal FieldBuilder() { }
+        public override System.Reflection.FieldAttributes Attributes { get { return default(System.Reflection.FieldAttributes); } }
+        public override System.Type DeclaringType { get { return default(System.Type); } }
+        public override System.RuntimeFieldHandle FieldHandle { get { return default(System.RuntimeFieldHandle); } }
+        public override System.Type FieldType { get { return default(System.Type); } }
+        public override System.Reflection.Module Module { get { return default(System.Reflection.Module); } }
+        public override string Name { get { return default(string); } }
+        public override System.Type ReflectedType { get { return default(System.Type); } }
+        public override object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public System.Reflection.Emit.FieldToken GetToken() { return default(System.Reflection.Emit.FieldToken); }
+        public override object GetValue(object obj) { return default(object); }
+        public override bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetConstant(object defaultValue) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) { }
+        [System.Security.SecurityCriticalAttribute]
+        public void SetOffset(int iOffset) { }
+        public override void SetValue(object obj, object val, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Globalization.CultureInfo culture) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct FieldToken
+    {
+        public static readonly System.Reflection.Emit.FieldToken Empty;
+        public int Token { get { return default(int); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Reflection.Emit.FieldToken obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.Emit.FieldToken a, System.Reflection.Emit.FieldToken b) { return default(bool); }
+        public static bool operator !=(System.Reflection.Emit.FieldToken a, System.Reflection.Emit.FieldToken b) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum FlowControl
+    {
+        Branch = 0,
+        Break = 1,
+        Call = 2,
+        Cond_Branch = 3,
+        Meta = 4,
+        Next = 5,
+        Return = 7,
+        Throw = 8,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class GenericTypeParameterBuilder : System.Reflection.TypeInfo
+    {
+        internal GenericTypeParameterBuilder() { }
+        public override System.Reflection.Assembly Assembly { get { return default(System.Reflection.Assembly); } }
+        public override string AssemblyQualifiedName { get { return default(string); } }
+        public override System.Type BaseType { get { return default(System.Type); } }
+        public override bool ContainsGenericParameters { get { return default(bool); } }
+        public override System.Reflection.MethodBase DeclaringMethod { get { return default(System.Reflection.MethodBase); } }
+        public override System.Type DeclaringType { get { return default(System.Type); } }
+        public override string FullName { get { return default(string); } }
+        public override System.Reflection.GenericParameterAttributes GenericParameterAttributes { get { return default(System.Reflection.GenericParameterAttributes); } }
+        public override int GenericParameterPosition { get { return default(int); } }
+        public override System.Guid GUID { get { return default(System.Guid); } }
+        public override bool IsConstructedGenericType { get { return default(bool); } }
+        public override bool IsGenericParameter { get { return default(bool); } }
+        public override bool IsGenericType { get { return default(bool); } }
+        public override bool IsGenericTypeDefinition { get { return default(bool); } }
+        public override System.Reflection.Module Module { get { return default(System.Reflection.Module); } }
+        public override string Name { get { return default(string); } }
+        public override string Namespace { get { return default(string); } }
+        public override System.Type ReflectedType { get { return default(System.Type); } }
+        public override System.RuntimeTypeHandle TypeHandle { get { return default(System.RuntimeTypeHandle); } }
+        public override System.Type UnderlyingSystemType { get { return default(System.Type); } }
+        public override bool Equals(object o) { return default(bool); }
+        protected override System.Reflection.TypeAttributes GetAttributeFlagsImpl() { return default(System.Reflection.TypeAttributes); }
+        protected override System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.ConstructorInfo); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override System.Reflection.ConstructorInfo[] GetConstructors(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.ConstructorInfo[]); }
+        public override object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public override System.Type GetElementType() { return default(System.Type); }
+        public override System.Reflection.EventInfo GetEvent(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.EventInfo); }
+        public override System.Reflection.EventInfo[] GetEvents() { return default(System.Reflection.EventInfo[]); }
+        public override System.Reflection.EventInfo[] GetEvents(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.EventInfo[]); }
+        public override System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.FieldInfo); }
+        public override System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.FieldInfo[]); }
+        public override System.Type[] GetGenericArguments() { return default(System.Type[]); }
+        public override System.Type GetGenericTypeDefinition() { return default(System.Type); }
+        public override int GetHashCode() { return default(int); }
+        public override System.Type GetInterface(string name, bool ignoreCase) { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override System.Reflection.InterfaceMapping GetInterfaceMap(System.Type interfaceType) { return default(System.Reflection.InterfaceMapping); }
+        public override System.Type[] GetInterfaces() { return default(System.Type[]); }
+        public override System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.MemberTypes type, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MemberInfo[]); }
+        public override System.Reflection.MemberInfo[] GetMembers(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MemberInfo[]); }
+        protected override System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.MethodInfo); }
+        public override System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MethodInfo[]); }
+        public override System.Type GetNestedType(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Type); }
+        public override System.Type[] GetNestedTypes(System.Reflection.BindingFlags bindingAttr) { return default(System.Type[]); }
+        public override System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.PropertyInfo[]); }
+        protected override System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.PropertyInfo); }
+        protected override bool HasElementTypeImpl() { return default(bool); }
+        public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters) { return default(object); }
+        protected override bool IsArrayImpl() { return default(bool); }
+        public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo) { return default(bool); }
+        public override bool IsAssignableFrom(System.Type c) { return default(bool); }
+        protected override bool IsByRefImpl() { return default(bool); }
+        protected override bool IsCOMObjectImpl() { return default(bool); }
+        public override bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        protected override bool IsPointerImpl() { return default(bool); }
+        protected override bool IsPrimitiveImpl() { return default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override bool IsSubclassOf(System.Type c) { return default(bool); }
+        protected override bool IsValueTypeImpl() { return default(bool); }
+        public override System.Type MakeArrayType() { return default(System.Type); }
+        public override System.Type MakeArrayType(int rank) { return default(System.Type); }
+        public override System.Type MakeByRefType() { return default(System.Type); }
+        public override System.Type MakeGenericType(params System.Type[] typeArguments) { return default(System.Type); }
+        public override System.Type MakePointerType() { return default(System.Type); }
+        public void SetBaseTypeConstraint(System.Type baseTypeConstraint) { }
+        [System.Security.SecurityCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) { }
+        public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) { }
+        public void SetGenericParameterAttributes(System.Reflection.GenericParameterAttributes genericParameterAttributes) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public void SetInterfaceConstraints(params System.Type[] interfaceConstraints) { }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ILGenerator
+    {
+        internal ILGenerator() { }
+        public virtual int ILOffset { get { return default(int); } }
+        public virtual void BeginCatchBlock(System.Type exceptionType) { }
+        public virtual void BeginExceptFilterBlock() { }
+        public virtual System.Reflection.Emit.Label BeginExceptionBlock() { return default(System.Reflection.Emit.Label); }
+        public virtual void BeginFaultBlock() { }
+        public virtual void BeginFinallyBlock() { }
+        public virtual void BeginScope() { }
+        public virtual System.Reflection.Emit.LocalBuilder DeclareLocal(System.Type localType) { return default(System.Reflection.Emit.LocalBuilder); }
+        public virtual System.Reflection.Emit.LocalBuilder DeclareLocal(System.Type localType, bool pinned) { return default(System.Reflection.Emit.LocalBuilder); }
+        public virtual System.Reflection.Emit.Label DefineLabel() { return default(System.Reflection.Emit.Label); }
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode) { }
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, byte arg) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, double arg) { }
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, short arg) { }
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, int arg) { }
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, long arg) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.ConstructorInfo con) { }
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.Emit.Label label) { }
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.Emit.Label[] labels) { }
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.Emit.LocalBuilder local) { }
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.Emit.SignatureHelper signature) { }
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.FieldInfo field) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.MethodInfo meth) { }
+        [System.CLSCompliantAttribute(false)]
+        public void Emit(System.Reflection.Emit.OpCode opcode, sbyte arg) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, float arg) { }
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, string str) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void Emit(System.Reflection.Emit.OpCode opcode, System.Type cls) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void EmitCall(System.Reflection.Emit.OpCode opcode, System.Reflection.MethodInfo methodInfo, System.Type[] optionalParameterTypes) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void EmitCalli(System.Reflection.Emit.OpCode opcode, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Type[] optionalParameterTypes) { }
+        public virtual void EmitWriteLine(System.Reflection.Emit.LocalBuilder localBuilder) { }
+        public virtual void EmitWriteLine(System.Reflection.FieldInfo fld) { }
+        public virtual void EmitWriteLine(string value) { }
+        public virtual void EndExceptionBlock() { }
+        public virtual void EndScope() { }
+        public virtual void MarkLabel(System.Reflection.Emit.Label loc) { }
+        public virtual void MarkSequencePoint(System.Diagnostics.SymbolStore.ISymbolDocumentWriter document, int startLine, int startColumn, int endLine, int endColumn) { }
+        public virtual void ThrowException(System.Type excType) { }
+        public virtual void UsingNamespace(string usingNamespace) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct Label
+    {
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Reflection.Emit.Label obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.Emit.Label a, System.Reflection.Emit.Label b) { return default(bool); }
+        public static bool operator !=(System.Reflection.Emit.Label a, System.Reflection.Emit.Label b) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class LocalBuilder : System.Reflection.LocalVariableInfo
+    {
+        internal LocalBuilder() { }
+        public override bool IsPinned { get { return default(bool); } }
+        public override int LocalIndex { get { return default(int); } }
+        public override System.Type LocalType { get { return default(System.Type); } }
+        public void SetLocalSymInfo(string name) { }
+        public void SetLocalSymInfo(string name, int startOffset, int endOffset) { }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class MethodBuilder : System.Reflection.MethodInfo
+    {
+        internal MethodBuilder() { }
+        public override System.Reflection.MethodAttributes Attributes { get { return default(System.Reflection.MethodAttributes); } }
+        public override System.Reflection.CallingConventions CallingConvention { get { return default(System.Reflection.CallingConventions); } }
+        public override bool ContainsGenericParameters { get { return default(bool); } }
+        public override System.Type DeclaringType { get { return default(System.Type); } }
+        public bool InitLocals { get { return default(bool); } set { } }
+        public override bool IsGenericMethod { get { return default(bool); } }
+        public override bool IsGenericMethodDefinition { get { return default(bool); } }
+        public override System.RuntimeMethodHandle MethodHandle { get { return default(System.RuntimeMethodHandle); } }
+        public override System.Reflection.Module Module { get { return default(System.Reflection.Module); } }
+        public override string Name { get { return default(string); } }
+        public override System.Type ReflectedType { get { return default(System.Type); } }
+        public override System.Reflection.ParameterInfo ReturnParameter { get { return default(System.Reflection.ParameterInfo); } }
+        public override System.Type ReturnType { get { return default(System.Type); } }
+        public override System.Reflection.ICustomAttributeProvider ReturnTypeCustomAttributes { get { return default(System.Reflection.ICustomAttributeProvider); } }
+        public string Signature { [System.Security.SecuritySafeCriticalAttribute]get { return default(string); } }
+        public System.Reflection.Emit.GenericTypeParameterBuilder[] DefineGenericParameters(params string[] names) { return default(System.Reflection.Emit.GenericTypeParameterBuilder[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.ParameterBuilder DefineParameter(int position, System.Reflection.ParameterAttributes attributes, string strParamName) { return default(System.Reflection.Emit.ParameterBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override bool Equals(object obj) { return default(bool); }
+        public override System.Reflection.MethodInfo GetBaseDefinition() { return default(System.Reflection.MethodInfo); }
+        public override object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public override System.Type[] GetGenericArguments() { return default(System.Type[]); }
+        public override System.Reflection.MethodInfo GetGenericMethodDefinition() { return default(System.Reflection.MethodInfo); }
+        public override int GetHashCode() { return default(int); }
+        public System.Reflection.Emit.ILGenerator GetILGenerator() { return default(System.Reflection.Emit.ILGenerator); }
+        public System.Reflection.Emit.ILGenerator GetILGenerator(int size) { return default(System.Reflection.Emit.ILGenerator); }
+        public override System.Reflection.MethodImplAttributes GetMethodImplementationFlags() { return default(System.Reflection.MethodImplAttributes); }
+        public System.Reflection.Module GetModule() { return default(System.Reflection.Module); }
+        public override System.Reflection.ParameterInfo[] GetParameters() { return default(System.Reflection.ParameterInfo[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.MethodToken GetToken() { return default(System.Reflection.Emit.MethodToken); }
+        public override object Invoke(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture) { return default(object); }
+        public override bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        public override System.Reflection.MethodInfo MakeGenericMethod(params System.Type[] typeArguments) { return default(System.Reflection.MethodInfo); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetImplementationFlags(System.Reflection.MethodImplAttributes attributes) { }
+        public void SetParameters(params System.Type[] parameterTypes) { }
+        public void SetReturnType(System.Type returnType) { }
+        public void SetSignature(System.Type returnType, System.Type[] returnTypeRequiredCustomModifiers, System.Type[] returnTypeOptionalCustomModifiers, System.Type[] parameterTypes, System.Type[][] parameterTypeRequiredCustomModifiers, System.Type[][] parameterTypeOptionalCustomModifiers) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct MethodToken
+    {
+        public static readonly System.Reflection.Emit.MethodToken Empty;
+        public int Token { get { return default(int); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Reflection.Emit.MethodToken obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.Emit.MethodToken a, System.Reflection.Emit.MethodToken b) { return default(bool); }
+        public static bool operator !=(System.Reflection.Emit.MethodToken a, System.Reflection.Emit.MethodToken b) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public partial class ModuleBuilder : System.Reflection.Module
+    {
+        internal ModuleBuilder() { }
+        public override System.Reflection.Assembly Assembly { get { return default(System.Reflection.Assembly); } }
+        public override string FullyQualifiedName { [System.Security.SecurityCriticalAttribute]get { return default(string); } }
+        public override int MetadataToken { get { return default(int); } }
+        public override System.Guid ModuleVersionId { get { return default(System.Guid); } }
+        public override string Name { get { return default(string); } }
+        public override string ScopeName { get { return default(string); } }
+        public void CreateGlobalFunctions() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Diagnostics.SymbolStore.ISymbolDocumentWriter DefineDocument(string url, System.Guid language, System.Guid languageVendor, System.Guid documentType) { return default(System.Diagnostics.SymbolStore.ISymbolDocumentWriter); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.EnumBuilder DefineEnum(string name, System.Reflection.TypeAttributes visibility, System.Type underlyingType) { return default(System.Reflection.Emit.EnumBuilder); }
+        public System.Reflection.Emit.MethodBuilder DefineGlobalMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes) { return default(System.Reflection.Emit.MethodBuilder); }
+        public System.Reflection.Emit.MethodBuilder DefineGlobalMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] requiredReturnTypeCustomModifiers, System.Type[] optionalReturnTypeCustomModifiers, System.Type[] parameterTypes, System.Type[][] requiredParameterTypeCustomModifiers, System.Type[][] optionalParameterTypeCustomModifiers) { return default(System.Reflection.Emit.MethodBuilder); }
+        public System.Reflection.Emit.MethodBuilder DefineGlobalMethod(string name, System.Reflection.MethodAttributes attributes, System.Type returnType, System.Type[] parameterTypes) { return default(System.Reflection.Emit.MethodBuilder); }
+        [System.Security.SecurityCriticalAttribute]
+        public System.Reflection.Emit.FieldBuilder DefineInitializedData(string name, byte[] data, System.Reflection.FieldAttributes attributes) { return default(System.Reflection.Emit.FieldBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineType(string name) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, System.Type parent) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Security.SecurityCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, System.Type parent, int typesize) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Security.SecurityCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Reflection.Emit.PackingSize packsize) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Security.SecurityCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Reflection.Emit.PackingSize packingSize, int typesize) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Type[] interfaces) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Security.SecurityCriticalAttribute]
+        public System.Reflection.Emit.FieldBuilder DefineUninitializedData(string name, int size, System.Reflection.FieldAttributes attributes) { return default(System.Reflection.Emit.FieldBuilder); }
+        public override bool Equals(object obj) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.MethodInfo GetArrayMethod(System.Type arrayClass, string methodName, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes) { return default(System.Reflection.MethodInfo); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.MethodToken GetArrayMethodToken(System.Type arrayClass, string methodName, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes) { return default(System.Reflection.Emit.MethodToken); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.MethodToken GetConstructorToken(System.Reflection.ConstructorInfo con) { return default(System.Reflection.Emit.MethodToken); }
+        public override object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public override System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.FieldInfo); }
+        public override System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingFlags) { return default(System.Reflection.FieldInfo[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.FieldToken GetFieldToken(System.Reflection.FieldInfo field) { return default(System.Reflection.Emit.FieldToken); }
+        public override int GetHashCode() { return default(int); }
+        protected override System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.MethodInfo); }
+        public override System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingFlags) { return default(System.Reflection.MethodInfo[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.MethodToken GetMethodToken(System.Reflection.MethodInfo method) { return default(System.Reflection.Emit.MethodToken); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.SignatureToken GetSignatureToken(byte[] sigBytes, int sigLength) { return default(System.Reflection.Emit.SignatureToken); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.SignatureToken GetSignatureToken(System.Reflection.Emit.SignatureHelper sigHelper) { return default(System.Reflection.Emit.SignatureToken); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.StringToken GetStringConstant(string str) { return default(System.Reflection.Emit.StringToken); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override System.Type GetType(string className) { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override System.Type GetType(string className, bool ignoreCase) { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override System.Type GetType(string className, bool throwOnError, bool ignoreCase) { return default(System.Type); }
+        public override System.Type[] GetTypes() { return default(System.Type[]); }
+        public System.Reflection.Emit.TypeToken GetTypeToken(string name) { return default(System.Reflection.Emit.TypeToken); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.TypeToken GetTypeToken(System.Type type) { return default(System.Reflection.Emit.TypeToken); }
+        public override bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        public bool IsTransient() { return default(bool); }
+        public override System.Reflection.FieldInfo ResolveField(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) { return default(System.Reflection.FieldInfo); }
+        public override System.Reflection.MethodBase ResolveMethod(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) { return default(System.Reflection.MethodBase); }
+        public override string ResolveString(int metadataToken) { return default(string); }
+        public override System.Type ResolveType(int metadataToken, System.Type[] genericTypeArguments, System.Type[] genericMethodArguments) { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct OpCode
+    {
+        public System.Reflection.Emit.FlowControl FlowControl { get { return default(System.Reflection.Emit.FlowControl); } }
+        public string Name { get { return default(string); } }
+        public System.Reflection.Emit.OpCodeType OpCodeType { get { return default(System.Reflection.Emit.OpCodeType); } }
+        public System.Reflection.Emit.OperandType OperandType { get { return default(System.Reflection.Emit.OperandType); } }
+        public int Size { get { return default(int); } }
+        public System.Reflection.Emit.StackBehaviour StackBehaviourPop { get { return default(System.Reflection.Emit.StackBehaviour); } }
+        public System.Reflection.Emit.StackBehaviour StackBehaviourPush { get { return default(System.Reflection.Emit.StackBehaviour); } }
+        public short Value { get { return default(short); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Reflection.Emit.OpCode obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.Emit.OpCode a, System.Reflection.Emit.OpCode b) { return default(bool); }
+        public static bool operator !=(System.Reflection.Emit.OpCode a, System.Reflection.Emit.OpCode b) { return default(bool); }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class OpCodes
+    {
+        internal OpCodes() { }
+        public static readonly System.Reflection.Emit.OpCode Add;
+        public static readonly System.Reflection.Emit.OpCode Add_Ovf;
+        public static readonly System.Reflection.Emit.OpCode Add_Ovf_Un;
+        public static readonly System.Reflection.Emit.OpCode And;
+        public static readonly System.Reflection.Emit.OpCode Arglist;
+        public static readonly System.Reflection.Emit.OpCode Beq;
+        public static readonly System.Reflection.Emit.OpCode Beq_S;
+        public static readonly System.Reflection.Emit.OpCode Bge;
+        public static readonly System.Reflection.Emit.OpCode Bge_S;
+        public static readonly System.Reflection.Emit.OpCode Bge_Un;
+        public static readonly System.Reflection.Emit.OpCode Bge_Un_S;
+        public static readonly System.Reflection.Emit.OpCode Bgt;
+        public static readonly System.Reflection.Emit.OpCode Bgt_S;
+        public static readonly System.Reflection.Emit.OpCode Bgt_Un;
+        public static readonly System.Reflection.Emit.OpCode Bgt_Un_S;
+        public static readonly System.Reflection.Emit.OpCode Ble;
+        public static readonly System.Reflection.Emit.OpCode Ble_S;
+        public static readonly System.Reflection.Emit.OpCode Ble_Un;
+        public static readonly System.Reflection.Emit.OpCode Ble_Un_S;
+        public static readonly System.Reflection.Emit.OpCode Blt;
+        public static readonly System.Reflection.Emit.OpCode Blt_S;
+        public static readonly System.Reflection.Emit.OpCode Blt_Un;
+        public static readonly System.Reflection.Emit.OpCode Blt_Un_S;
+        public static readonly System.Reflection.Emit.OpCode Bne_Un;
+        public static readonly System.Reflection.Emit.OpCode Bne_Un_S;
+        public static readonly System.Reflection.Emit.OpCode Box;
+        public static readonly System.Reflection.Emit.OpCode Br;
+        public static readonly System.Reflection.Emit.OpCode Br_S;
+        public static readonly System.Reflection.Emit.OpCode Break;
+        public static readonly System.Reflection.Emit.OpCode Brfalse;
+        public static readonly System.Reflection.Emit.OpCode Brfalse_S;
+        public static readonly System.Reflection.Emit.OpCode Brtrue;
+        public static readonly System.Reflection.Emit.OpCode Brtrue_S;
+        public static readonly System.Reflection.Emit.OpCode Call;
+        public static readonly System.Reflection.Emit.OpCode Calli;
+        public static readonly System.Reflection.Emit.OpCode Callvirt;
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static readonly System.Reflection.Emit.OpCode Castclass;
+        public static readonly System.Reflection.Emit.OpCode Ceq;
+        public static readonly System.Reflection.Emit.OpCode Cgt;
+        public static readonly System.Reflection.Emit.OpCode Cgt_Un;
+        public static readonly System.Reflection.Emit.OpCode Ckfinite;
+        public static readonly System.Reflection.Emit.OpCode Clt;
+        public static readonly System.Reflection.Emit.OpCode Clt_Un;
+        public static readonly System.Reflection.Emit.OpCode Constrained;
+        public static readonly System.Reflection.Emit.OpCode Conv_I;
+        public static readonly System.Reflection.Emit.OpCode Conv_I1;
+        public static readonly System.Reflection.Emit.OpCode Conv_I2;
+        public static readonly System.Reflection.Emit.OpCode Conv_I4;
+        public static readonly System.Reflection.Emit.OpCode Conv_I8;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I_Un;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I1;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I1_Un;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I2;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I2_Un;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I4;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I4_Un;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I8;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_I8_Un;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U_Un;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U1;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U1_Un;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U2;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U2_Un;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U4;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U4_Un;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U8;
+        public static readonly System.Reflection.Emit.OpCode Conv_Ovf_U8_Un;
+        public static readonly System.Reflection.Emit.OpCode Conv_R_Un;
+        public static readonly System.Reflection.Emit.OpCode Conv_R4;
+        public static readonly System.Reflection.Emit.OpCode Conv_R8;
+        public static readonly System.Reflection.Emit.OpCode Conv_U;
+        public static readonly System.Reflection.Emit.OpCode Conv_U1;
+        public static readonly System.Reflection.Emit.OpCode Conv_U2;
+        public static readonly System.Reflection.Emit.OpCode Conv_U4;
+        public static readonly System.Reflection.Emit.OpCode Conv_U8;
+        public static readonly System.Reflection.Emit.OpCode Cpblk;
+        public static readonly System.Reflection.Emit.OpCode Cpobj;
+        public static readonly System.Reflection.Emit.OpCode Div;
+        public static readonly System.Reflection.Emit.OpCode Div_Un;
+        public static readonly System.Reflection.Emit.OpCode Dup;
+        public static readonly System.Reflection.Emit.OpCode Endfilter;
+        public static readonly System.Reflection.Emit.OpCode Endfinally;
+        public static readonly System.Reflection.Emit.OpCode Initblk;
+        public static readonly System.Reflection.Emit.OpCode Initobj;
+        public static readonly System.Reflection.Emit.OpCode Isinst;
+        public static readonly System.Reflection.Emit.OpCode Jmp;
+        public static readonly System.Reflection.Emit.OpCode Ldarg;
+        public static readonly System.Reflection.Emit.OpCode Ldarg_0;
+        public static readonly System.Reflection.Emit.OpCode Ldarg_1;
+        public static readonly System.Reflection.Emit.OpCode Ldarg_2;
+        public static readonly System.Reflection.Emit.OpCode Ldarg_3;
+        public static readonly System.Reflection.Emit.OpCode Ldarg_S;
+        public static readonly System.Reflection.Emit.OpCode Ldarga;
+        public static readonly System.Reflection.Emit.OpCode Ldarga_S;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4_0;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4_1;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4_2;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4_3;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4_4;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4_5;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4_6;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4_7;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4_8;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4_M1;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I4_S;
+        public static readonly System.Reflection.Emit.OpCode Ldc_I8;
+        public static readonly System.Reflection.Emit.OpCode Ldc_R4;
+        public static readonly System.Reflection.Emit.OpCode Ldc_R8;
+        public static readonly System.Reflection.Emit.OpCode Ldelem;
+        public static readonly System.Reflection.Emit.OpCode Ldelem_I;
+        public static readonly System.Reflection.Emit.OpCode Ldelem_I1;
+        public static readonly System.Reflection.Emit.OpCode Ldelem_I2;
+        public static readonly System.Reflection.Emit.OpCode Ldelem_I4;
+        public static readonly System.Reflection.Emit.OpCode Ldelem_I8;
+        public static readonly System.Reflection.Emit.OpCode Ldelem_R4;
+        public static readonly System.Reflection.Emit.OpCode Ldelem_R8;
+        public static readonly System.Reflection.Emit.OpCode Ldelem_Ref;
+        public static readonly System.Reflection.Emit.OpCode Ldelem_U1;
+        public static readonly System.Reflection.Emit.OpCode Ldelem_U2;
+        public static readonly System.Reflection.Emit.OpCode Ldelem_U4;
+        public static readonly System.Reflection.Emit.OpCode Ldelema;
+        public static readonly System.Reflection.Emit.OpCode Ldfld;
+        public static readonly System.Reflection.Emit.OpCode Ldflda;
+        public static readonly System.Reflection.Emit.OpCode Ldftn;
+        public static readonly System.Reflection.Emit.OpCode Ldind_I;
+        public static readonly System.Reflection.Emit.OpCode Ldind_I1;
+        public static readonly System.Reflection.Emit.OpCode Ldind_I2;
+        public static readonly System.Reflection.Emit.OpCode Ldind_I4;
+        public static readonly System.Reflection.Emit.OpCode Ldind_I8;
+        public static readonly System.Reflection.Emit.OpCode Ldind_R4;
+        public static readonly System.Reflection.Emit.OpCode Ldind_R8;
+        public static readonly System.Reflection.Emit.OpCode Ldind_Ref;
+        public static readonly System.Reflection.Emit.OpCode Ldind_U1;
+        public static readonly System.Reflection.Emit.OpCode Ldind_U2;
+        public static readonly System.Reflection.Emit.OpCode Ldind_U4;
+        public static readonly System.Reflection.Emit.OpCode Ldlen;
+        public static readonly System.Reflection.Emit.OpCode Ldloc;
+        public static readonly System.Reflection.Emit.OpCode Ldloc_0;
+        public static readonly System.Reflection.Emit.OpCode Ldloc_1;
+        public static readonly System.Reflection.Emit.OpCode Ldloc_2;
+        public static readonly System.Reflection.Emit.OpCode Ldloc_3;
+        public static readonly System.Reflection.Emit.OpCode Ldloc_S;
+        public static readonly System.Reflection.Emit.OpCode Ldloca;
+        public static readonly System.Reflection.Emit.OpCode Ldloca_S;
+        public static readonly System.Reflection.Emit.OpCode Ldnull;
+        public static readonly System.Reflection.Emit.OpCode Ldobj;
+        public static readonly System.Reflection.Emit.OpCode Ldsfld;
+        public static readonly System.Reflection.Emit.OpCode Ldsflda;
+        public static readonly System.Reflection.Emit.OpCode Ldstr;
+        public static readonly System.Reflection.Emit.OpCode Ldtoken;
+        public static readonly System.Reflection.Emit.OpCode Ldvirtftn;
+        public static readonly System.Reflection.Emit.OpCode Leave;
+        public static readonly System.Reflection.Emit.OpCode Leave_S;
+        public static readonly System.Reflection.Emit.OpCode Localloc;
+        public static readonly System.Reflection.Emit.OpCode Mkrefany;
+        public static readonly System.Reflection.Emit.OpCode Mul;
+        public static readonly System.Reflection.Emit.OpCode Mul_Ovf;
+        public static readonly System.Reflection.Emit.OpCode Mul_Ovf_Un;
+        public static readonly System.Reflection.Emit.OpCode Neg;
+        public static readonly System.Reflection.Emit.OpCode Newarr;
+        public static readonly System.Reflection.Emit.OpCode Newobj;
+        public static readonly System.Reflection.Emit.OpCode Nop;
+        public static readonly System.Reflection.Emit.OpCode Not;
+        public static readonly System.Reflection.Emit.OpCode Or;
+        public static readonly System.Reflection.Emit.OpCode Pop;
+        public static readonly System.Reflection.Emit.OpCode Prefix1;
+        public static readonly System.Reflection.Emit.OpCode Prefix2;
+        public static readonly System.Reflection.Emit.OpCode Prefix3;
+        public static readonly System.Reflection.Emit.OpCode Prefix4;
+        public static readonly System.Reflection.Emit.OpCode Prefix5;
+        public static readonly System.Reflection.Emit.OpCode Prefix6;
+        public static readonly System.Reflection.Emit.OpCode Prefix7;
+        public static readonly System.Reflection.Emit.OpCode Prefixref;
+        public static readonly System.Reflection.Emit.OpCode Readonly;
+        public static readonly System.Reflection.Emit.OpCode Refanytype;
+        public static readonly System.Reflection.Emit.OpCode Refanyval;
+        public static readonly System.Reflection.Emit.OpCode Rem;
+        public static readonly System.Reflection.Emit.OpCode Rem_Un;
+        public static readonly System.Reflection.Emit.OpCode Ret;
+        public static readonly System.Reflection.Emit.OpCode Rethrow;
+        public static readonly System.Reflection.Emit.OpCode Shl;
+        public static readonly System.Reflection.Emit.OpCode Shr;
+        public static readonly System.Reflection.Emit.OpCode Shr_Un;
+        public static readonly System.Reflection.Emit.OpCode Sizeof;
+        public static readonly System.Reflection.Emit.OpCode Starg;
+        public static readonly System.Reflection.Emit.OpCode Starg_S;
+        public static readonly System.Reflection.Emit.OpCode Stelem;
+        public static readonly System.Reflection.Emit.OpCode Stelem_I;
+        public static readonly System.Reflection.Emit.OpCode Stelem_I1;
+        public static readonly System.Reflection.Emit.OpCode Stelem_I2;
+        public static readonly System.Reflection.Emit.OpCode Stelem_I4;
+        public static readonly System.Reflection.Emit.OpCode Stelem_I8;
+        public static readonly System.Reflection.Emit.OpCode Stelem_R4;
+        public static readonly System.Reflection.Emit.OpCode Stelem_R8;
+        public static readonly System.Reflection.Emit.OpCode Stelem_Ref;
+        public static readonly System.Reflection.Emit.OpCode Stfld;
+        public static readonly System.Reflection.Emit.OpCode Stind_I;
+        public static readonly System.Reflection.Emit.OpCode Stind_I1;
+        public static readonly System.Reflection.Emit.OpCode Stind_I2;
+        public static readonly System.Reflection.Emit.OpCode Stind_I4;
+        public static readonly System.Reflection.Emit.OpCode Stind_I8;
+        public static readonly System.Reflection.Emit.OpCode Stind_R4;
+        public static readonly System.Reflection.Emit.OpCode Stind_R8;
+        public static readonly System.Reflection.Emit.OpCode Stind_Ref;
+        public static readonly System.Reflection.Emit.OpCode Stloc;
+        public static readonly System.Reflection.Emit.OpCode Stloc_0;
+        public static readonly System.Reflection.Emit.OpCode Stloc_1;
+        public static readonly System.Reflection.Emit.OpCode Stloc_2;
+        public static readonly System.Reflection.Emit.OpCode Stloc_3;
+        public static readonly System.Reflection.Emit.OpCode Stloc_S;
+        public static readonly System.Reflection.Emit.OpCode Stobj;
+        public static readonly System.Reflection.Emit.OpCode Stsfld;
+        public static readonly System.Reflection.Emit.OpCode Sub;
+        public static readonly System.Reflection.Emit.OpCode Sub_Ovf;
+        public static readonly System.Reflection.Emit.OpCode Sub_Ovf_Un;
+        public static readonly System.Reflection.Emit.OpCode Switch;
+        public static readonly System.Reflection.Emit.OpCode Tailcall;
+        public static readonly System.Reflection.Emit.OpCode Throw;
+        public static readonly System.Reflection.Emit.OpCode Unaligned;
+        public static readonly System.Reflection.Emit.OpCode Unbox;
+        public static readonly System.Reflection.Emit.OpCode Unbox_Any;
+        public static readonly System.Reflection.Emit.OpCode Volatile;
+        public static readonly System.Reflection.Emit.OpCode Xor;
+        public static bool TakesSingleByteArgument(System.Reflection.Emit.OpCode inst) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum OpCodeType
+    {
+        Macro = 1,
+        Nternal = 2,
+        Objmodel = 3,
+        Prefix = 4,
+        Primitive = 5,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum OperandType
+    {
+        InlineBrTarget = 0,
+        InlineField = 1,
+        InlineI = 2,
+        InlineI8 = 3,
+        InlineMethod = 4,
+        InlineNone = 5,
+        InlineR = 7,
+        InlineSig = 9,
+        InlineString = 10,
+        InlineSwitch = 11,
+        InlineTok = 12,
+        InlineType = 13,
+        InlineVar = 14,
+        ShortInlineBrTarget = 15,
+        ShortInlineI = 16,
+        ShortInlineR = 17,
+        ShortInlineVar = 18,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum PackingSize
+    {
+        Size1 = 1,
+        Size128 = 128,
+        Size16 = 16,
+        Size2 = 2,
+        Size32 = 32,
+        Size4 = 4,
+        Size64 = 64,
+        Size8 = 8,
+        Unspecified = 0,
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ParameterBuilder
+    {
+        internal ParameterBuilder() { }
+        public virtual int Attributes { get { return default(int); } }
+        public bool IsIn { get { return default(bool); } }
+        public bool IsOptional { get { return default(bool); } }
+        public bool IsOut { get { return default(bool); } }
+        public virtual string Name { get { return default(string); } }
+        public virtual int Position { get { return default(int); } }
+        public virtual System.Reflection.Emit.ParameterToken GetToken() { return default(System.Reflection.Emit.ParameterToken); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public virtual void SetConstant(object defaultValue) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct ParameterToken
+    {
+        public static readonly System.Reflection.Emit.ParameterToken Empty;
+        public int Token { get { return default(int); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Reflection.Emit.ParameterToken obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.Emit.ParameterToken a, System.Reflection.Emit.ParameterToken b) { return default(bool); }
+        public static bool operator !=(System.Reflection.Emit.ParameterToken a, System.Reflection.Emit.ParameterToken b) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum PEFileKinds
+    {
+        ConsoleApplication = 2,
+        Dll = 1,
+        WindowApplication = 3,
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class PropertyBuilder : System.Reflection.PropertyInfo
+    {
+        internal PropertyBuilder() { }
+        public override System.Reflection.PropertyAttributes Attributes { get { return default(System.Reflection.PropertyAttributes); } }
+        public override bool CanRead { get { return default(bool); } }
+        public override bool CanWrite { get { return default(bool); } }
+        public override System.Type DeclaringType { get { return default(System.Type); } }
+        public override System.Reflection.Module Module { get { return default(System.Reflection.Module); } }
+        public override string Name { get { return default(string); } }
+        public System.Reflection.Emit.PropertyToken PropertyToken { get { return default(System.Reflection.Emit.PropertyToken); } }
+        public override System.Type PropertyType { get { return default(System.Type); } }
+        public override System.Type ReflectedType { get { return default(System.Type); } }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void AddOtherMethod(System.Reflection.Emit.MethodBuilder mdBuilder) { }
+        public override System.Reflection.MethodInfo[] GetAccessors(bool nonPublic) { return default(System.Reflection.MethodInfo[]); }
+        public override object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public override System.Reflection.MethodInfo GetGetMethod(bool nonPublic) { return default(System.Reflection.MethodInfo); }
+        public override System.Reflection.ParameterInfo[] GetIndexParameters() { return default(System.Reflection.ParameterInfo[]); }
+        public override System.Reflection.MethodInfo GetSetMethod(bool nonPublic) { return default(System.Reflection.MethodInfo); }
+        public override object GetValue(object obj, object[] index) { return default(object); }
+        public override object GetValue(object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture) { return default(object); }
+        public override bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetConstant(object defaultValue) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetGetMethod(System.Reflection.Emit.MethodBuilder mdBuilder) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetSetMethod(System.Reflection.Emit.MethodBuilder mdBuilder) { }
+        public override void SetValue(object obj, object value, object[] index) { }
+        public override void SetValue(object obj, object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] index, System.Globalization.CultureInfo culture) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct PropertyToken
+    {
+        public static readonly System.Reflection.Emit.PropertyToken Empty;
+        public int Token { get { return default(int); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Reflection.Emit.PropertyToken obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.Emit.PropertyToken a, System.Reflection.Emit.PropertyToken b) { return default(bool); }
+        public static bool operator !=(System.Reflection.Emit.PropertyToken a, System.Reflection.Emit.PropertyToken b) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class SignatureHelper
+    {
+        internal SignatureHelper() { }
+        public void AddArgument(System.Type clsArgument) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void AddArgument(System.Type argument, bool pinned) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void AddArgument(System.Type argument, System.Type[] requiredCustomModifiers, System.Type[] optionalCustomModifiers) { }
+        public void AddArguments(System.Type[] arguments, System.Type[][] requiredCustomModifiers, System.Type[][] optionalCustomModifiers) { }
+        public void AddSentinel() { }
+        public override bool Equals(object obj) { return default(bool); }
+        public static System.Reflection.Emit.SignatureHelper GetFieldSigHelper(System.Reflection.Module mod) { return default(System.Reflection.Emit.SignatureHelper); }
+        public override int GetHashCode() { return default(int); }
+        public static System.Reflection.Emit.SignatureHelper GetLocalVarSigHelper() { return default(System.Reflection.Emit.SignatureHelper); }
+        public static System.Reflection.Emit.SignatureHelper GetLocalVarSigHelper(System.Reflection.Module mod) { return default(System.Reflection.Emit.SignatureHelper); }
+        public static System.Reflection.Emit.SignatureHelper GetMethodSigHelper(System.Reflection.CallingConventions callingConvention, System.Type returnType) { return default(System.Reflection.Emit.SignatureHelper); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Reflection.Emit.SignatureHelper GetMethodSigHelper(System.Reflection.Module mod, System.Reflection.CallingConventions callingConvention, System.Type returnType) { return default(System.Reflection.Emit.SignatureHelper); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Reflection.Emit.SignatureHelper GetMethodSigHelper(System.Reflection.Module mod, System.Runtime.InteropServices.CallingConvention unmanagedCallConv, System.Type returnType) { return default(System.Reflection.Emit.SignatureHelper); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Reflection.Emit.SignatureHelper GetMethodSigHelper(System.Reflection.Module mod, System.Type returnType, System.Type[] parameterTypes) { return default(System.Reflection.Emit.SignatureHelper); }
+        public static System.Reflection.Emit.SignatureHelper GetMethodSigHelper(System.Runtime.InteropServices.CallingConvention unmanagedCallingConvention, System.Type returnType) { return default(System.Reflection.Emit.SignatureHelper); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Reflection.Emit.SignatureHelper GetPropertySigHelper(System.Reflection.Module mod, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] requiredReturnTypeCustomModifiers, System.Type[] optionalReturnTypeCustomModifiers, System.Type[] parameterTypes, System.Type[][] requiredParameterTypeCustomModifiers, System.Type[][] optionalParameterTypeCustomModifiers) { return default(System.Reflection.Emit.SignatureHelper); }
+        public static System.Reflection.Emit.SignatureHelper GetPropertySigHelper(System.Reflection.Module mod, System.Type returnType, System.Type[] parameterTypes) { return default(System.Reflection.Emit.SignatureHelper); }
+        public static System.Reflection.Emit.SignatureHelper GetPropertySigHelper(System.Reflection.Module mod, System.Type returnType, System.Type[] requiredReturnTypeCustomModifiers, System.Type[] optionalReturnTypeCustomModifiers, System.Type[] parameterTypes, System.Type[][] requiredParameterTypeCustomModifiers, System.Type[][] optionalParameterTypeCustomModifiers) { return default(System.Reflection.Emit.SignatureHelper); }
+        public byte[] GetSignature() { return default(byte[]); }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct SignatureToken
+    {
+        public static readonly System.Reflection.Emit.SignatureToken Empty;
+        public int Token { get { return default(int); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Reflection.Emit.SignatureToken obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.Emit.SignatureToken a, System.Reflection.Emit.SignatureToken b) { return default(bool); }
+        public static bool operator !=(System.Reflection.Emit.SignatureToken a, System.Reflection.Emit.SignatureToken b) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum StackBehaviour
+    {
+        Pop0 = 0,
+        Pop1 = 1,
+        Pop1_pop1 = 2,
+        Popi = 3,
+        Popi_pop1 = 4,
+        Popi_popi = 5,
+        Popi_popi_popi = 7,
+        Popi_popi8 = 6,
+        Popi_popr4 = 8,
+        Popi_popr8 = 9,
+        Popref = 10,
+        Popref_pop1 = 11,
+        Popref_popi = 12,
+        Popref_popi_pop1 = 28,
+        Popref_popi_popi = 13,
+        Popref_popi_popi8 = 14,
+        Popref_popi_popr4 = 15,
+        Popref_popi_popr8 = 16,
+        Popref_popi_popref = 17,
+        Push0 = 18,
+        Push1 = 19,
+        Push1_push1 = 20,
+        Pushi = 21,
+        Pushi8 = 22,
+        Pushr4 = 23,
+        Pushr8 = 24,
+        Pushref = 25,
+        Varpop = 26,
+        Varpush = 27,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct StringToken
+    {
+        public int Token { get { return default(int); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Reflection.Emit.StringToken obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.Emit.StringToken a, System.Reflection.Emit.StringToken b) { return default(bool); }
+        public static bool operator !=(System.Reflection.Emit.StringToken a, System.Reflection.Emit.StringToken b) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class TypeBuilder : System.Reflection.TypeInfo
+    {
+        internal TypeBuilder() { }
+        public const int UnspecifiedTypeSize = 0;
+        public override System.Reflection.Assembly Assembly { get { return default(System.Reflection.Assembly); } }
+        public override string AssemblyQualifiedName { get { return default(string); } }
+        public override System.Type BaseType { get { return default(System.Type); } }
+        public override System.Reflection.MethodBase DeclaringMethod { get { return default(System.Reflection.MethodBase); } }
+        public override System.Type DeclaringType { get { return default(System.Type); } }
+        public override string FullName { get { return default(string); } }
+        public override System.Reflection.GenericParameterAttributes GenericParameterAttributes { get { return default(System.Reflection.GenericParameterAttributes); } }
+        public override int GenericParameterPosition { get { return default(int); } }
+        public override System.Guid GUID { get { return default(System.Guid); } }
+        public override bool IsConstructedGenericType { get { return default(bool); } }
+        public override bool IsGenericParameter { get { return default(bool); } }
+        public override bool IsGenericType { get { return default(bool); } }
+        public override bool IsGenericTypeDefinition { get { return default(bool); } }
+        public override System.Reflection.Module Module { get { return default(System.Reflection.Module); } }
+        public override string Name { get { return default(string); } }
+        public override string Namespace { get { return default(string); } }
+        public System.Reflection.Emit.PackingSize PackingSize { get { return default(System.Reflection.Emit.PackingSize); } }
+        public override System.Type ReflectedType { get { return default(System.Type); } }
+        public int Size { get { return default(int); } }
+        public override System.RuntimeTypeHandle TypeHandle { get { return default(System.RuntimeTypeHandle); } }
+        public System.Reflection.Emit.TypeToken TypeToken { get { return default(System.Reflection.Emit.TypeToken); } }
+        public override System.Type UnderlyingSystemType { get { return default(System.Type); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void AddInterfaceImplementation(System.Type interfaceType) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Type CreateType() { return default(System.Type); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.TypeInfo CreateTypeInfo() { return default(System.Reflection.TypeInfo); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public System.Reflection.Emit.ConstructorBuilder DefineConstructor(System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type[] parameterTypes) { return default(System.Reflection.Emit.ConstructorBuilder); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.ConstructorBuilder DefineConstructor(System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type[] parameterTypes, System.Type[][] requiredCustomModifiers, System.Type[][] optionalCustomModifiers) { return default(System.Reflection.Emit.ConstructorBuilder); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public System.Reflection.Emit.ConstructorBuilder DefineDefaultConstructor(System.Reflection.MethodAttributes attributes) { return default(System.Reflection.Emit.ConstructorBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.EventBuilder DefineEvent(string name, System.Reflection.EventAttributes attributes, System.Type eventtype) { return default(System.Reflection.Emit.EventBuilder); }
+        public System.Reflection.Emit.FieldBuilder DefineField(string fieldName, System.Type type, System.Reflection.FieldAttributes attributes) { return default(System.Reflection.Emit.FieldBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.FieldBuilder DefineField(string fieldName, System.Type type, System.Type[] requiredCustomModifiers, System.Type[] optionalCustomModifiers, System.Reflection.FieldAttributes attributes) { return default(System.Reflection.Emit.FieldBuilder); }
+        public System.Reflection.Emit.GenericTypeParameterBuilder[] DefineGenericParameters(params string[] names) { return default(System.Reflection.Emit.GenericTypeParameterBuilder[]); }
+        [System.Security.SecurityCriticalAttribute]
+        public System.Reflection.Emit.FieldBuilder DefineInitializedData(string name, byte[] data, System.Reflection.FieldAttributes attributes) { return default(System.Reflection.Emit.FieldBuilder); }
+        public System.Reflection.Emit.MethodBuilder DefineMethod(string name, System.Reflection.MethodAttributes attributes) { return default(System.Reflection.Emit.MethodBuilder); }
+        public System.Reflection.Emit.MethodBuilder DefineMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention) { return default(System.Reflection.Emit.MethodBuilder); }
+        public System.Reflection.Emit.MethodBuilder DefineMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes) { return default(System.Reflection.Emit.MethodBuilder); }
+        public System.Reflection.Emit.MethodBuilder DefineMethod(string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] returnTypeRequiredCustomModifiers, System.Type[] returnTypeOptionalCustomModifiers, System.Type[] parameterTypes, System.Type[][] parameterTypeRequiredCustomModifiers, System.Type[][] parameterTypeOptionalCustomModifiers) { return default(System.Reflection.Emit.MethodBuilder); }
+        public System.Reflection.Emit.MethodBuilder DefineMethod(string name, System.Reflection.MethodAttributes attributes, System.Type returnType, System.Type[] parameterTypes) { return default(System.Reflection.Emit.MethodBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void DefineMethodOverride(System.Reflection.MethodInfo methodInfoBody, System.Reflection.MethodInfo methodInfoDeclaration) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineNestedType(string name) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, System.Type parent) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Security.SecurityCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, System.Type parent, int typeSize) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Security.SecurityCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Reflection.Emit.PackingSize packSize) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Security.SecurityCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Reflection.Emit.PackingSize packSize, int typeSize) { return default(System.Reflection.Emit.TypeBuilder); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.TypeBuilder DefineNestedType(string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Type[] interfaces) { return default(System.Reflection.Emit.TypeBuilder); }
+        public System.Reflection.Emit.PropertyBuilder DefineProperty(string name, System.Reflection.PropertyAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes) { return default(System.Reflection.Emit.PropertyBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.PropertyBuilder DefineProperty(string name, System.Reflection.PropertyAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] returnTypeRequiredCustomModifiers, System.Type[] returnTypeOptionalCustomModifiers, System.Type[] parameterTypes, System.Type[][] parameterTypeRequiredCustomModifiers, System.Type[][] parameterTypeOptionalCustomModifiers) { return default(System.Reflection.Emit.PropertyBuilder); }
+        public System.Reflection.Emit.PropertyBuilder DefineProperty(string name, System.Reflection.PropertyAttributes attributes, System.Type returnType, System.Type[] parameterTypes) { return default(System.Reflection.Emit.PropertyBuilder); }
+        public System.Reflection.Emit.PropertyBuilder DefineProperty(string name, System.Reflection.PropertyAttributes attributes, System.Type returnType, System.Type[] returnTypeRequiredCustomModifiers, System.Type[] returnTypeOptionalCustomModifiers, System.Type[] parameterTypes, System.Type[][] parameterTypeRequiredCustomModifiers, System.Type[][] parameterTypeOptionalCustomModifiers) { return default(System.Reflection.Emit.PropertyBuilder); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Reflection.Emit.ConstructorBuilder DefineTypeInitializer() { return default(System.Reflection.Emit.ConstructorBuilder); }
+        [System.Security.SecurityCriticalAttribute]
+        public System.Reflection.Emit.FieldBuilder DefineUninitializedData(string name, int size, System.Reflection.FieldAttributes attributes) { return default(System.Reflection.Emit.FieldBuilder); }
+        protected override System.Reflection.TypeAttributes GetAttributeFlagsImpl() { return default(System.Reflection.TypeAttributes); }
+        public static System.Reflection.ConstructorInfo GetConstructor(System.Type type, System.Reflection.ConstructorInfo constructor) { return default(System.Reflection.ConstructorInfo); }
+        protected override System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.ConstructorInfo); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override System.Reflection.ConstructorInfo[] GetConstructors(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.ConstructorInfo[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override object[] GetCustomAttributes(bool inherit) { return default(object[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override object[] GetCustomAttributes(System.Type attributeType, bool inherit) { return default(object[]); }
+        public override System.Type GetElementType() { return default(System.Type); }
+        public override System.Reflection.EventInfo GetEvent(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.EventInfo); }
+        public override System.Reflection.EventInfo[] GetEvents() { return default(System.Reflection.EventInfo[]); }
+        public override System.Reflection.EventInfo[] GetEvents(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.EventInfo[]); }
+        public override System.Reflection.FieldInfo GetField(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.FieldInfo); }
+        public static System.Reflection.FieldInfo GetField(System.Type type, System.Reflection.FieldInfo field) { return default(System.Reflection.FieldInfo); }
+        public override System.Reflection.FieldInfo[] GetFields(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.FieldInfo[]); }
+        public override System.Type[] GetGenericArguments() { return default(System.Type[]); }
+        public override System.Type GetGenericTypeDefinition() { return default(System.Type); }
+        public override System.Type GetInterface(string name, bool ignoreCase) { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override System.Reflection.InterfaceMapping GetInterfaceMap(System.Type interfaceType) { return default(System.Reflection.InterfaceMapping); }
+        public override System.Type[] GetInterfaces() { return default(System.Type[]); }
+        public override System.Reflection.MemberInfo[] GetMember(string name, System.Reflection.MemberTypes type, System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MemberInfo[]); }
+        public override System.Reflection.MemberInfo[] GetMembers(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MemberInfo[]); }
+        public static System.Reflection.MethodInfo GetMethod(System.Type type, System.Reflection.MethodInfo method) { return default(System.Reflection.MethodInfo); }
+        protected override System.Reflection.MethodInfo GetMethodImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.MethodInfo); }
+        public override System.Reflection.MethodInfo[] GetMethods(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.MethodInfo[]); }
+        public override System.Type GetNestedType(string name, System.Reflection.BindingFlags bindingAttr) { return default(System.Type); }
+        public override System.Type[] GetNestedTypes(System.Reflection.BindingFlags bindingAttr) { return default(System.Type[]); }
+        public override System.Reflection.PropertyInfo[] GetProperties(System.Reflection.BindingFlags bindingAttr) { return default(System.Reflection.PropertyInfo[]); }
+        protected override System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Type returnType, System.Type[] types, System.Reflection.ParameterModifier[] modifiers) { return default(System.Reflection.PropertyInfo); }
+        protected override bool HasElementTypeImpl() { return default(bool); }
+        public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters) { return default(object); }
+        protected override bool IsArrayImpl() { return default(bool); }
+        public override bool IsAssignableFrom(System.Reflection.TypeInfo typeInfo) { return default(bool); }
+        public override bool IsAssignableFrom(System.Type c) { return default(bool); }
+        protected override bool IsByRefImpl() { return default(bool); }
+        protected override bool IsCOMObjectImpl() { return default(bool); }
+        public bool IsCreated() { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override bool IsDefined(System.Type attributeType, bool inherit) { return default(bool); }
+        protected override bool IsPointerImpl() { return default(bool); }
+        protected override bool IsPrimitiveImpl() { return default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public override bool IsSubclassOf(System.Type c) { return default(bool); }
+        public override System.Type MakeArrayType() { return default(System.Type); }
+        public override System.Type MakeArrayType(int rank) { return default(System.Type); }
+        public override System.Type MakeByRefType() { return default(System.Type); }
+        public override System.Type MakeGenericType(params System.Type[] typeArguments) { return default(System.Type); }
+        public override System.Type MakePointerType() { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.ConstructorInfo con, byte[] binaryAttribute) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder customBuilder) { }
+        public void SetParent(System.Type parent) { }
+        public override string ToString() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct TypeToken
+    {
+        public static readonly System.Reflection.Emit.TypeToken Empty;
+        public int Token { get { return default(int); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Reflection.Emit.TypeToken obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Reflection.Emit.TypeToken a, System.Reflection.Emit.TypeToken b) { return default(bool); }
+        public static bool operator !=(System.Reflection.Emit.TypeToken a, System.Reflection.Emit.TypeToken b) { return default(bool); }
+    }
+}
+namespace System.Reflection.Metadata
+{
+    public static partial class AssemblyExtensions
+    {
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe static bool TryGetRawMetadata(this System.Reflection.Assembly assembly, out byte* blob, out int length) { blob = default(byte*); length = default(int); return default(bool); }
+    }
+}
+namespace System.Resources
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IResourceReader : System.Collections.IEnumerable, System.IDisposable
+    {
+        new System.Collections.IDictionaryEnumerator GetEnumerator();
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class MissingManifestResourceException : System.SystemException
+    {
+        public MissingManifestResourceException() { }
+        public MissingManifestResourceException(string message) { }
+        public MissingManifestResourceException(string message, System.Exception inner) { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), AllowMultiple=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class NeutralResourcesLanguageAttribute : System.Attribute
+    {
+        public NeutralResourcesLanguageAttribute(string cultureName) { }
+        public NeutralResourcesLanguageAttribute(string cultureName, System.Resources.UltimateResourceFallbackLocation location) { }
+        public string CultureName { get { return default(string); } }
+        public System.Resources.UltimateResourceFallbackLocation Location { get { return default(System.Resources.UltimateResourceFallbackLocation); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ResourceManager
+    {
+        protected string BaseNameField;
+        public static readonly int HeaderVersionNumber;
+        public static readonly int MagicNumber;
+        protected System.Reflection.Assembly MainAssembly;
+        protected ResourceManager() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public ResourceManager(string baseName, System.Reflection.Assembly assembly) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public ResourceManager(string baseName, System.Reflection.Assembly assembly, System.Type usingResourceSet) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public ResourceManager(System.Type resourceSource) { }
+        public virtual string BaseName { get { return default(string); } }
+        public virtual bool IgnoreCase { get { return default(bool); } set { } }
+        public virtual System.Type ResourceSetType { get { return default(System.Type); } }
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected static System.Globalization.CultureInfo GetNeutralResourcesLanguage(System.Reflection.Assembly a) { return default(System.Globalization.CultureInfo); }
+        public virtual object GetObject(string name) { return default(object); }
+        public virtual object GetObject(string name, System.Globalization.CultureInfo culture) { return default(object); }
+        protected virtual string GetResourceFileName(System.Globalization.CultureInfo culture) { return default(string); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public virtual System.Resources.ResourceSet GetResourceSet(System.Globalization.CultureInfo culture, bool createIfNotExists, bool tryParents) { return default(System.Resources.ResourceSet); }
+        protected static System.Version GetSatelliteContractVersion(System.Reflection.Assembly a) { return default(System.Version); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public System.IO.UnmanagedMemoryStream GetStream(string name) { return default(System.IO.UnmanagedMemoryStream); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public System.IO.UnmanagedMemoryStream GetStream(string name, System.Globalization.CultureInfo culture) { return default(System.IO.UnmanagedMemoryStream); }
+        public virtual string GetString(string name) { return default(string); }
+        public virtual string GetString(string name, System.Globalization.CultureInfo culture) { return default(string); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        protected virtual System.Resources.ResourceSet InternalGetResourceSet(System.Globalization.CultureInfo culture, bool createIfNotExists, bool tryParents) { return default(System.Resources.ResourceSet); }
+        public virtual void ReleaseAllResources() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ResourceSet : System.Collections.IEnumerable, System.IDisposable
+    {
+        protected System.Resources.IResourceReader Reader;
+        protected ResourceSet() { }
+        [System.Security.SecurityCriticalAttribute]
+        public ResourceSet(System.IO.Stream stream) { }
+        [System.Security.SecurityCriticalAttribute]
+        public ResourceSet(string fileName) { }
+        public virtual void Close() { }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        public virtual System.Type GetDefaultReader() { return default(System.Type); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual System.Collections.IDictionaryEnumerator GetEnumerator() { return default(System.Collections.IDictionaryEnumerator); }
+        public virtual object GetObject(string name) { return default(object); }
+        public virtual object GetObject(string name, bool ignoreCase) { return default(object); }
+        public virtual string GetString(string name) { return default(string); }
+        public virtual string GetString(string name, bool ignoreCase) { return default(string); }
+        protected virtual void ReadResources() { }
+        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return default(System.Collections.IEnumerator); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), AllowMultiple=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class SatelliteContractVersionAttribute : System.Attribute
+    {
+        public SatelliteContractVersionAttribute(string version) { }
+        public string Version { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum UltimateResourceFallbackLocation
+    {
+        MainAssembly = 0,
+        Satellite = 1,
+    }
+}
+namespace System.Runtime
+{
+    public enum GCLargeObjectHeapCompactionMode
+    {
+        CompactOnce = 2,
+        Default = 1,
+    }
+    public enum GCLatencyMode
+    {
+        Batch = 0,
+        Interactive = 1,
+        LowLatency = 2,
+        NoGCRegion = 4,
+        SustainedLowLatency = 3,
+    }
+    public static partial class GCSettings
+    {
+        public static bool IsServerGC { [System.Security.SecuritySafeCriticalAttribute]get { return default(bool); } }
+        public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get { return default(System.Runtime.GCLargeObjectHeapCompactionMode); } set { } }
+        public static System.Runtime.GCLatencyMode LatencyMode { get { return default(System.Runtime.GCLatencyMode); } set { } }
+    }
+}
+namespace System.Runtime.CompilerServices
+{
+    [System.AttributeUsageAttribute((System.AttributeTargets)(256))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AccessedThroughPropertyAttribute : System.Attribute
+    {
+        public AccessedThroughPropertyAttribute(string propertyName) { }
+        public string PropertyName { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), Inherited=false, AllowMultiple=false)]
+    public sealed partial class AsyncStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute
+    {
+        public AsyncStateMachineAttribute(System.Type stateMachineType) : base (default(System.Type)) { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct AsyncTaskMethodBuilder
+    {
+        public System.Threading.Tasks.Task Task { get { return default(System.Threading.Tasks.Task); } }
+        public void AwaitOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine { }
+        public void AwaitUnsafeOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine { }
+        public static System.Runtime.CompilerServices.AsyncTaskMethodBuilder Create() { return default(System.Runtime.CompilerServices.AsyncTaskMethodBuilder); }
+        public void SetException(System.Exception exception) { }
+        public void SetResult() { }
+        public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Start<TStateMachine>(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine { }
+    }
+    
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct AsyncTaskMethodBuilder<TResult>
+    {
+        public System.Threading.Tasks.Task<TResult> Task { get { return default(System.Threading.Tasks.Task<TResult>); } }
+        public void AwaitOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void AwaitUnsafeOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine { }
+        public static System.Runtime.CompilerServices.AsyncTaskMethodBuilder<TResult> Create() { return default(System.Runtime.CompilerServices.AsyncTaskMethodBuilder<TResult>); }
+        public void SetException(System.Exception exception) { }
+        public void SetResult(TResult result) { }
+        public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Start<TStateMachine>(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine { }
+    }
+    
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct AsyncVoidMethodBuilder
+    {
+        public void AwaitOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.INotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void AwaitUnsafeOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine { }
+        public static System.Runtime.CompilerServices.AsyncVoidMethodBuilder Create() { return default(System.Runtime.CompilerServices.AsyncVoidMethodBuilder); }
+        public void SetException(System.Exception exception) { }
+        public void SetResult() { }
+        public void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine) { }
+        [System.Diagnostics.DebuggerStepThroughAttribute]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Start<TStateMachine>(ref TStateMachine stateMachine) where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class CallConvCdecl
+    {
+        internal CallConvCdecl() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class CallConvFastcall
+    {
+        internal CallConvFastcall() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class CallConvStdcall
+    {
+        internal CallConvStdcall() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class CallConvThiscall
+    {
+        internal CallConvThiscall() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2048), Inherited=false)]
+    public sealed partial class CallerFilePathAttribute : System.Attribute
+    {
+        public CallerFilePathAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2048), Inherited=false)]
+    public sealed partial class CallerLineNumberAttribute : System.Attribute
+    {
+        public CallerLineNumberAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2048), Inherited=false)]
+    public sealed partial class CallerMemberNameAttribute : System.Attribute
+    {
+        public CallerMemberNameAttribute() { }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum CompilationRelaxations
+    {
+        NoStringInterning = 8,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(71))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class CompilationRelaxationsAttribute : System.Attribute
+    {
+        public CompilationRelaxationsAttribute(int relaxations) { }
+        public CompilationRelaxationsAttribute(System.Runtime.CompilerServices.CompilationRelaxations relaxations) { }
+        public int CompilationRelaxations { get { return default(int); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(32767), Inherited=true)]
+    public sealed partial class CompilerGeneratedAttribute : System.Attribute
+    {
+        public CompilerGeneratedAttribute() { }
+    }
+    public static partial class CompilerMarshalOverride
+    {
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public sealed partial class ConditionalWeakTable<TKey, TValue> where TKey : class where TValue : class
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        public ConditionalWeakTable() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Add(TKey key, TValue value) { }
+        ~ConditionalWeakTable() { }
+        public TValue GetOrCreateValue(TKey key) { return default(TValue); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public TValue GetValue(TKey key, System.Runtime.CompilerServices.ConditionalWeakTable<TKey, TValue>.CreateValueCallback createValueCallback) { return default(TValue); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool Remove(TKey key) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool TryGetValue(TKey key, out TValue value) { value = default(TValue); return default(bool); }
+        public delegate TValue CreateValueCallback(TKey key);
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct ConfiguredTaskAwaitable
+    {
+        public System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter GetAwaiter() { return default(System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter); }
+        
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        public partial struct ConfiguredTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion
+        {
+            public bool IsCompleted { get { return default(bool); } }
+            public void GetResult() { }
+            [System.Security.SecuritySafeCriticalAttribute]
+            public void OnCompleted(System.Action continuation) { }
+            [System.Security.SecurityCriticalAttribute]
+            public void UnsafeOnCompleted(System.Action continuation) { }
+        }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct ConfiguredTaskAwaitable<TResult>
+    {
+        public System.Runtime.CompilerServices.ConfiguredTaskAwaitable<TResult>.ConfiguredTaskAwaiter GetAwaiter() { return default(System.Runtime.CompilerServices.ConfiguredTaskAwaitable<TResult>.ConfiguredTaskAwaiter); }
+        
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+        public partial struct ConfiguredTaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion
+        {
+            public bool IsCompleted { get { return default(bool); } }
+            public TResult GetResult() { return default(TResult); }
+            [System.Security.SecuritySafeCriticalAttribute]
+            public void OnCompleted(System.Action continuation) { }
+            [System.Security.SecurityCriticalAttribute]
+            public void UnsafeOnCompleted(System.Action continuation) { }
+        }
+    }
+    public static partial class ContractHelper
+    {
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1030:UseEventsWhereAppropriate")]
+        [System.Diagnostics.DebuggerNonUserCodeAttribute]
+        
+        public static string RaiseContractFailedEvent(System.Diagnostics.Contracts.ContractFailureKind failureKind, string userMessage, string conditionText, System.Exception innerException) { return default(string); }
+        [System.Diagnostics.DebuggerNonUserCodeAttribute]
+        
+        public static void TriggerFailure(System.Diagnostics.Contracts.ContractFailureKind kind, string displayMessage, string userMessage, string conditionText, System.Exception innerException) { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2304), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class CustomConstantAttribute : System.Attribute
+    {
+        protected CustomConstantAttribute() { }
+        public abstract object Value { get; }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2304), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DateTimeConstantAttribute : System.Runtime.CompilerServices.CustomConstantAttribute
+    {
+        public DateTimeConstantAttribute(long ticks) { }
+        public override object Value { get { return default(object); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2304), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DecimalConstantAttribute : System.Attribute
+    {
+        public DecimalConstantAttribute(byte scale, byte sign, int hi, int mid, int low) { }
+        [System.CLSCompliantAttribute(false)]
+        public DecimalConstantAttribute(byte scale, byte sign, uint hi, uint mid, uint low) { }
+        public decimal Value { get { return default(decimal); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), AllowMultiple=false, Inherited=false)]
+    public sealed partial class DisablePrivateReflectionAttribute : System.Attribute
+    {
+        public DisablePrivateReflectionAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(69))]
+    public sealed partial class ExtensionAttribute : System.Attribute
+    {
+        public ExtensionAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(256))]
+    public sealed partial class FixedAddressValueTypeAttribute : System.Attribute
+    {
+        public FixedAddressValueTypeAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(256), Inherited=false)]
+    public sealed partial class FixedBufferAttribute : System.Attribute
+    {
+        public FixedBufferAttribute(System.Type elementType, int length) { }
+        public System.Type ElementType { get { return default(System.Type); } }
+        public int Length { get { return default(int); } }
+    }
+    public static partial class FormattableStringFactory
+    {
+        public static System.FormattableString Create(string format, params object[] arguments) { return default(System.FormattableString); }
+    }
+    public partial interface IAsyncStateMachine
+    {
+        void MoveNext();
+        void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine stateMachine);
+    }
+    public partial interface ICastable
+    {
+        System.RuntimeTypeHandle GetImplType(System.RuntimeTypeHandle interfaceType);
+        bool IsInstanceOfInterface(System.RuntimeTypeHandle interfaceType, out System.Exception castError);
+    }
+    public partial interface ICriticalNotifyCompletion : System.Runtime.CompilerServices.INotifyCompletion
+    {
+        [System.Security.SecurityCriticalAttribute]
+        void UnsafeOnCompleted(System.Action continuation);
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(128), Inherited=true)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class IndexerNameAttribute : System.Attribute
+    {
+        public IndexerNameAttribute(string indexerName) { }
+    }
+    public partial interface INotifyCompletion
+    {
+        void OnCompleted(System.Action continuation);
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), AllowMultiple=true, Inherited=false)]
+    public sealed partial class InternalsVisibleToAttribute : System.Attribute
+    {
+        public InternalsVisibleToAttribute(string assemblyName) { }
+        public bool AllInternalsVisible { get { return default(bool); } set { } }
+        public string AssemblyName { get { return default(string); } }
+    }
+    public static partial class IsBoxed
+    {
+    }
+    public static partial class IsByValue
+    {
+    }
+    public static partial class IsConst
+    {
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public static partial class IsCopyConstructed
+    {
+    }
+    public static partial class IsExplicitlyDereferenced
+    {
+    }
+    public static partial class IsImplicitlyDereferenced
+    {
+    }
+    public static partial class IsJitIntrinsic
+    {
+    }
+    public static partial class IsLong
+    {
+    }
+    public static partial class IsSignUnspecifiedByte
+    {
+    }
+    public static partial class IsUdtReturn
+    {
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public static partial class IsVolatile
+    {
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), Inherited=false, AllowMultiple=false)]
+    public sealed partial class IteratorStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute
+    {
+        public IteratorStateMachineAttribute(System.Type stateMachineType) : base (default(System.Type)) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum MethodCodeType
+    {
+        IL = 0,
+        Native = 1,
+        OPTIL = 2,
+        Runtime = 3,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(96), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class MethodImplAttribute : System.Attribute
+    {
+        public System.Runtime.CompilerServices.MethodCodeType MethodCodeType;
+        public MethodImplAttribute() { }
+        public MethodImplAttribute(short value) { }
+        public MethodImplAttribute(System.Runtime.CompilerServices.MethodImplOptions methodImplOptions) { }
+        public System.Runtime.CompilerServices.MethodImplOptions Value { get { return default(System.Runtime.CompilerServices.MethodImplOptions); } }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum MethodImplOptions
+    {
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        AggressiveInlining = 256,
+        ForwardRef = 16,
+        InternalCall = 4096,
+        NoInlining = 8,
+        NoOptimization = 64,
+        PreserveSig = 128,
+        Synchronized = 32,
+        Unmanaged = 4,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(8), Inherited=true)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class NativeCppClassAttribute : System.Attribute
+    {
+        public NativeCppClassAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), AllowMultiple=false)]
+    public sealed partial class ReferenceAssemblyAttribute : System.Attribute
+    {
+        public ReferenceAssemblyAttribute() { }
+        public ReferenceAssemblyAttribute(string description) { }
+        public string Description { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1052), AllowMultiple=true, Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class RequiredAttributeAttribute : System.Attribute
+    {
+        public RequiredAttributeAttribute(System.Type requiredContract) { }
+        public System.Type RequiredContract { get { return default(System.Type); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), Inherited=false, AllowMultiple=false)]
+    public sealed partial class RuntimeCompatibilityAttribute : System.Attribute
+    {
+        public RuntimeCompatibilityAttribute() { }
+        public bool WrapNonExceptionThrows { get { return default(bool); } set { } }
+    }
+    public static partial class RuntimeHelpers
+    {
+        public static int OffsetToStringData { get { return default(int); } }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void EnsureSufficientExecutionStack() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static int GetHashCode(object o) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static object GetObjectValue(object obj) { return default(object); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static void InitializeArray(System.Array array, System.RuntimeFieldHandle fldHandle) { }
+        public static void RunClassConstructor(System.RuntimeTypeHandle type) { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(972))]
+    public sealed partial class SpecialNameAttribute : System.Attribute
+    {
+        public SpecialNameAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), Inherited=false, AllowMultiple=false)]
+    public partial class StateMachineAttribute : System.Attribute
+    {
+        public StateMachineAttribute(System.Type stateMachineType) { }
+        public System.Type StateMachineType { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(System.Type); } }
+    }
+    
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct TaskAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion
+    {
+        public bool IsCompleted { get { return default(bool); } }
+        public void GetResult() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void OnCompleted(System.Action continuation) { }
+        [System.Security.SecurityCriticalAttribute]
+        public void UnsafeOnCompleted(System.Action continuation) { }
+    }
+    
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct TaskAwaiter<TResult> : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion
+    {
+        public bool IsCompleted { get { return default(bool); } }
+        public TResult GetResult() { return default(TResult); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void OnCompleted(System.Action continuation) { }
+        [System.Security.SecurityCriticalAttribute]
+        public void UnsafeOnCompleted(System.Action continuation) { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(5148), Inherited=false, AllowMultiple=false)]
+    public sealed partial class TypeForwardedFromAttribute : System.Attribute
+    {
+        public TypeForwardedFromAttribute(string assemblyFullName) { }
+        public string AssemblyFullName { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), AllowMultiple=true, Inherited=false)]
+    public sealed partial class TypeForwardedToAttribute : System.Attribute
+    {
+        public TypeForwardedToAttribute(System.Type destination) { }
+        public System.Type Destination { get { return default(System.Type); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(8))]
+    public sealed partial class UnsafeValueTypeAttribute : System.Attribute
+    {
+        public UnsafeValueTypeAttribute() { }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, Size=1)]
+    public partial struct YieldAwaitable
+    {
+        public System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter GetAwaiter() { return default(System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter); }
+        
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, Size=1)]
+        public partial struct YieldAwaiter : System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion
+        {
+            public bool IsCompleted { get { return default(bool); } }
+            public void GetResult() { }
+            [System.Security.SecuritySafeCriticalAttribute]
+            public void OnCompleted(System.Action continuation) { }
+            [System.Security.SecurityCriticalAttribute]
+            public void UnsafeOnCompleted(System.Action continuation) { }
+        }
+    }
+}
+namespace System.Runtime.ConstrainedExecution
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class CriticalFinalizerObject
+    {
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected CriticalFinalizerObject() { }
+        ~CriticalFinalizerObject() { }
+    }
+}
+namespace System.Runtime.ExceptionServices
+{
+    public sealed partial class ExceptionDispatchInfo
+    {
+        internal ExceptionDispatchInfo() { }
+        public System.Exception SourceException { get { return default(System.Exception); } }
+        public static System.Runtime.ExceptionServices.ExceptionDispatchInfo Capture(System.Exception source) { return default(System.Runtime.ExceptionServices.ExceptionDispatchInfo); }
+        public void Throw() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), AllowMultiple=false, Inherited=false)]
+    public sealed partial class HandleProcessCorruptedStateExceptionsAttribute : System.Attribute
+    {
+        public HandleProcessCorruptedStateExceptionsAttribute() { }
+    }
+}
+namespace System.Runtime.InteropServices
+{
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), AllowMultiple=false, Inherited=false)]
+    public sealed partial class AllowReversePInvokeCallsAttribute : System.Attribute
+    {
+        public AllowReversePInvokeCallsAttribute() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct ArrayWithOffset
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        public ArrayWithOffset(object array, int offset) { throw new System.NotImplementedException(); }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Runtime.InteropServices.ArrayWithOffset obj) { return default(bool); }
+        public object GetArray() { return default(object); }
+        public override int GetHashCode() { return default(int); }
+        public int GetOffset() { return default(int); }
+        public static bool operator ==(System.Runtime.InteropServices.ArrayWithOffset a, System.Runtime.InteropServices.ArrayWithOffset b) { return default(bool); }
+        public static bool operator !=(System.Runtime.InteropServices.ArrayWithOffset a, System.Runtime.InteropServices.ArrayWithOffset b) { return default(bool); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1037), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class BestFitMappingAttribute : System.Attribute
+    {
+        public bool ThrowOnUnmappableChar;
+        public BestFitMappingAttribute(bool BestFitMapping) { }
+        public bool BestFitMapping { get { return default(bool); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class BStrWrapper
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        [System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, Flags=(System.Security.Permissions.SecurityPermissionFlag)(2))]
+        public BStrWrapper(object value) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        [System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, Flags=(System.Security.Permissions.SecurityPermissionFlag)(2))]
+        public BStrWrapper(string value) { }
+        public string WrappedObject { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum CallingConvention
+    {
+        Cdecl = 2,
+        FastCall = 5,
+        StdCall = 3,
+        ThisCall = 4,
+        Winapi = 1,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum CharSet
+    {
+        Ansi = 2,
+        Auto = 4,
+        None = 1,
+        Unicode = 3,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(5), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ClassInterfaceAttribute : System.Attribute
+    {
+        public ClassInterfaceAttribute(short classInterfaceType) { }
+        public ClassInterfaceAttribute(System.Runtime.InteropServices.ClassInterfaceType classInterfaceType) { }
+        public System.Runtime.InteropServices.ClassInterfaceType Value { get { return default(System.Runtime.InteropServices.ClassInterfaceType); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum ClassInterfaceType
+    {
+        AutoDispatch = 1,
+        AutoDual = 2,
+        None = 0,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1024), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class CoClassAttribute : System.Attribute
+    {
+        public CoClassAttribute(System.Type coClass) { }
+        public System.Type CoClass { get { return default(System.Type); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(4), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ComDefaultInterfaceAttribute : System.Attribute
+    {
+        public ComDefaultInterfaceAttribute(System.Type defaultInterface) { }
+        public System.Type Value { get { return default(System.Type); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1024), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ComEventInterfaceAttribute : System.Attribute
+    {
+        public ComEventInterfaceAttribute(System.Type SourceInterface, System.Type EventProvider) { }
+        public System.Type EventProvider { get { return default(System.Type); } }
+        public System.Type SourceInterface { get { return default(System.Type); } }
+    }
+    public static partial class ComEventsHelper
+    {
+        [System.Security.SecurityCriticalAttribute]
+        public static void Combine(object rcw, System.Guid iid, int dispid, System.Delegate d) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.Delegate Remove(object rcw, System.Guid iid, int dispid, System.Delegate d) { return default(System.Delegate); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class COMException : System.Runtime.InteropServices.ExternalException
+    {
+        public COMException() { }
+        public COMException(string message) { }
+        public COMException(string message, System.Exception inner) { }
+        public COMException(string message, int errorCode) { }
+        public override string ToString() { return default(string); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1028), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ComImportAttribute : System.Attribute
+    {
+        public ComImportAttribute() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum ComInterfaceType
+    {
+        InterfaceIsDual = 0,
+        InterfaceIsIDispatch = 2,
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        InterfaceIsIInspectable = 3,
+        InterfaceIsIUnknown = 1,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum ComMemberType
+    {
+        Method = 0,
+        PropGet = 1,
+        PropSet = 2,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(4), Inherited=true)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ComSourceInterfacesAttribute : System.Attribute
+    {
+        public ComSourceInterfacesAttribute(string sourceInterfaces) { }
+        public ComSourceInterfacesAttribute(System.Type sourceInterface) { }
+        public ComSourceInterfacesAttribute(System.Type sourceInterface1, System.Type sourceInterface2) { }
+        public ComSourceInterfacesAttribute(System.Type sourceInterface1, System.Type sourceInterface2, System.Type sourceInterface3) { }
+        public ComSourceInterfacesAttribute(System.Type sourceInterface1, System.Type sourceInterface2, System.Type sourceInterface3, System.Type sourceInterface4) { }
+        public string Value { get { return default(string); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(5597), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ComVisibleAttribute : System.Attribute
+    {
+        public ComVisibleAttribute(bool visibility) { }
+        public bool Value { get { return default(bool); } }
+    }
+    [System.Security.SecurityCriticalAttribute]
+    public abstract partial class CriticalHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable
+    {
+        protected System.IntPtr handle;
+        
+        protected CriticalHandle(System.IntPtr invalidHandleValue) { }
+        public bool IsClosed { get { return default(bool); } }
+        public abstract bool IsInvalid { get; }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public void Close() { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Dispose() { }
+        
+        [System.Security.SecurityCriticalAttribute]
+        protected virtual void Dispose(bool disposing) { }
+        ~CriticalHandle() { }
+        
+        protected abstract bool ReleaseHandle();
+        
+        protected void SetHandle(System.IntPtr handle) { }
+        
+        public void SetHandleAsInvalid() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class CurrencyWrapper
+    {
+        public CurrencyWrapper(decimal obj) { }
+        public CurrencyWrapper(object obj) { }
+        public decimal WrappedObject { get { return default(decimal); } }
+    }
+    public enum CustomQueryInterfaceMode
+    {
+        Allow = 1,
+        Ignore = 0,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public enum CustomQueryInterfaceResult
+    {
+        Failed = 2,
+        Handled = 0,
+        NotHandled = 1,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DefaultCharSetAttribute : System.Attribute
+    {
+        public DefaultCharSetAttribute(System.Runtime.InteropServices.CharSet charSet) { }
+        public System.Runtime.InteropServices.CharSet CharSet { get { return default(System.Runtime.InteropServices.CharSet); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(65), AllowMultiple=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public sealed partial class DefaultDllImportSearchPathsAttribute : System.Attribute
+    {
+        public DefaultDllImportSearchPathsAttribute(System.Runtime.InteropServices.DllImportSearchPath paths) { }
+        public System.Runtime.InteropServices.DllImportSearchPath Paths { get { return default(System.Runtime.InteropServices.DllImportSearchPath); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DispatchWrapper
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        [System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, Flags=(System.Security.Permissions.SecurityPermissionFlag)(2))]
+        public DispatchWrapper(object obj) { }
+        public object WrappedObject { get { return default(object); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(960), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DispIdAttribute : System.Attribute
+    {
+        public DispIdAttribute(int dispId) { }
+        public int Value { get { return default(int); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class DllImportAttribute : System.Attribute
+    {
+        public bool BestFitMapping;
+        public System.Runtime.InteropServices.CallingConvention CallingConvention;
+        public System.Runtime.InteropServices.CharSet CharSet;
+        public string EntryPoint;
+        public bool ExactSpelling;
+        public bool PreserveSig;
+        public bool SetLastError;
+        public bool ThrowOnUnmappableChar;
+        public DllImportAttribute(string dllName) { }
+        public string Value { get { return default(string); } }
+    }
+    [System.FlagsAttribute]
+    public enum DllImportSearchPath
+    {
+        ApplicationDirectory = 512,
+        AssemblyDirectory = 2,
+        LegacyBehavior = 0,
+        SafeDirectories = 4096,
+        System32 = 2048,
+        UseDllDirectoryForDependencies = 256,
+        UserDirectories = 1024,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ErrorWrapper
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        [System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, Flags=(System.Security.Permissions.SecurityPermissionFlag)(2))]
+        public ErrorWrapper(System.Exception e) { }
+        public ErrorWrapper(int errorCode) { }
+        public ErrorWrapper(object errorCode) { }
+        public int ErrorCode { get { return default(int); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ExternalException : System.SystemException
+    {
+        public ExternalException() { }
+        public ExternalException(string message) { }
+        public ExternalException(string message, System.Exception inner) { }
+        public virtual int ErrorCode { get { return default(int); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(256), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class FieldOffsetAttribute : System.Attribute
+    {
+        public FieldOffsetAttribute(int offset) { }
+        public int Value { get { return default(int); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct GCHandle
+    {
+        public bool IsAllocated { get { return default(bool); } }
+        public object Target { [System.Security.SecurityCriticalAttribute]get { return default(object); } [System.Security.SecurityCriticalAttribute]set { } }
+        [System.Security.SecurityCriticalAttribute]
+        public System.IntPtr AddrOfPinnedObject() { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.Runtime.InteropServices.GCHandle Alloc(object value) { return default(System.Runtime.InteropServices.GCHandle); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.Runtime.InteropServices.GCHandle Alloc(object value, System.Runtime.InteropServices.GCHandleType type) { return default(System.Runtime.InteropServices.GCHandle); }
+        public override bool Equals(object o) { return default(bool); }
+        [System.Security.SecurityCriticalAttribute]
+        public void Free() { }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.Runtime.InteropServices.GCHandle FromIntPtr(System.IntPtr value) { return default(System.Runtime.InteropServices.GCHandle); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Runtime.InteropServices.GCHandle a, System.Runtime.InteropServices.GCHandle b) { return default(bool); }
+        [System.Security.SecurityCriticalAttribute]
+        public static explicit operator System.Runtime.InteropServices.GCHandle (System.IntPtr value) { return default(System.Runtime.InteropServices.GCHandle); }
+        public static explicit operator System.IntPtr (System.Runtime.InteropServices.GCHandle value) { return default(System.IntPtr); }
+        public static bool operator !=(System.Runtime.InteropServices.GCHandle a, System.Runtime.InteropServices.GCHandle b) { return default(bool); }
+        public static System.IntPtr ToIntPtr(System.Runtime.InteropServices.GCHandle value) { return default(System.IntPtr); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum GCHandleType
+    {
+        Normal = 2,
+        Pinned = 3,
+        Weak = 0,
+        WeakTrackResurrection = 1,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(5149), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class GuidAttribute : System.Attribute
+    {
+        public GuidAttribute(string guid) { }
+        public string Value { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface ICustomAdapter
+    {
+        object GetUnderlyingObject();
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public partial interface ICustomQueryInterface
+    {
+        [System.Security.SecurityCriticalAttribute]
+        System.Runtime.InteropServices.CustomQueryInterfaceResult GetInterface(ref System.Guid iid, out System.IntPtr ppv);
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2048), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class InAttribute : System.Attribute
+    {
+        public InAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1024), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class InterfaceTypeAttribute : System.Attribute
+    {
+        public InterfaceTypeAttribute(short interfaceType) { }
+        public InterfaceTypeAttribute(System.Runtime.InteropServices.ComInterfaceType interfaceType) { }
+        public System.Runtime.InteropServices.ComInterfaceType Value { get { return default(System.Runtime.InteropServices.ComInterfaceType); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class InvalidComObjectException : System.SystemException
+    {
+        public InvalidComObjectException() { }
+        public InvalidComObjectException(string message) { }
+        public InvalidComObjectException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class InvalidOleVariantTypeException : System.SystemException
+    {
+        public InvalidOleVariantTypeException() { }
+        public InvalidOleVariantTypeException(string message) { }
+        public InvalidOleVariantTypeException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum LayoutKind
+    {
+        Auto = 3,
+        Explicit = 2,
+        Sequential = 0,
+    }
+    [System.Security.SecurityCriticalAttribute]
+    public static partial class Marshal
+    {
+        public static readonly int SystemDefaultCharSize;
+        public static readonly int SystemMaxDBCSCharSize;
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static int AddRef(System.IntPtr pUnk) { return default(int); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr AllocCoTaskMem(int cb) { return default(System.IntPtr); }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr AllocHGlobal(int cb) { return default(System.IntPtr); }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr AllocHGlobal(System.IntPtr cb) { return default(System.IntPtr); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static bool AreComObjectsAvailableForCleanup() { return default(bool); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(byte[] source, int startIndex, System.IntPtr destination, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(char[] source, int startIndex, System.IntPtr destination, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(double[] source, int startIndex, System.IntPtr destination, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(short[] source, int startIndex, System.IntPtr destination, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(int[] source, int startIndex, System.IntPtr destination, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(long[] source, int startIndex, System.IntPtr destination, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(System.IntPtr source, byte[] destination, int startIndex, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(System.IntPtr source, char[] destination, int startIndex, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(System.IntPtr source, double[] destination, int startIndex, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(System.IntPtr source, short[] destination, int startIndex, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(System.IntPtr source, int[] destination, int startIndex, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(System.IntPtr source, long[] destination, int startIndex, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(System.IntPtr source, System.IntPtr[] destination, int startIndex, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(System.IntPtr source, float[] destination, int startIndex, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(System.IntPtr[] source, int startIndex, System.IntPtr destination, int length) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Copy(float[] source, int startIndex, System.IntPtr destination, int length) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr CreateAggregatedObject(System.IntPtr pOuter, object o) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr CreateAggregatedObject<T>(System.IntPtr pOuter, T o) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static object CreateWrapperOfType(object o, System.Type t) { return default(object); }
+        [System.Security.SecurityCriticalAttribute]
+        public static TWrapper CreateWrapperOfType<T, TWrapper>(T o) { return default(TWrapper); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public static void DestroyStructure(System.IntPtr ptr, System.Type structuretype) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void DestroyStructure<T>(System.IntPtr ptr) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static int FinalReleaseComObject(object o) { return default(int); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void FreeBSTR(System.IntPtr ptr) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void FreeCoTaskMem(System.IntPtr ptr) { }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public static void FreeHGlobal(System.IntPtr hglobal) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr GetComInterfaceForObject(object o, System.Type T) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr GetComInterfaceForObject(object o, System.Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr GetComInterfaceForObject<T, TInterface>(T o) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.Delegate GetDelegateForFunctionPointer(System.IntPtr ptr, System.Type t) { return default(System.Delegate); }
+        [System.Security.SecurityCriticalAttribute]
+        public static TDelegate GetDelegateForFunctionPointer<TDelegate>(System.IntPtr ptr) { return default(TDelegate); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static int GetExceptionCode() { return default(int); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.Exception GetExceptionForHR(int errorCode) { return default(System.Exception); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.Exception GetExceptionForHR(int errorCode, System.IntPtr errorInfo) { return default(System.Exception); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr GetFunctionPointerForDelegate(System.Delegate d) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr GetFunctionPointerForDelegate<TDelegate>(TDelegate d) { return default(System.IntPtr); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static int GetHRForException(System.Exception e) { return default(int); }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public static int GetHRForLastWin32Error() { return default(int); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr GetIUnknownForObject(object o) { return default(System.IntPtr); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecurityCriticalAttribute]
+        public static int GetLastWin32Error() { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static void GetNativeVariantForObject(object obj, System.IntPtr pDstNativeVariant) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void GetNativeVariantForObject<T>(T obj, System.IntPtr pDstNativeVariant) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static object GetObjectForIUnknown(System.IntPtr pUnk) { return default(object); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static object GetObjectForNativeVariant(System.IntPtr pSrcNativeVariant) { return default(object); }
+        [System.Security.SecurityCriticalAttribute]
+        public static T GetObjectForNativeVariant<T>(System.IntPtr pSrcNativeVariant) { return default(T); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static object[] GetObjectsForNativeVariants(System.IntPtr aSrcNativeVariant, int cVars) { return default(object[]); }
+        [System.Security.SecurityCriticalAttribute]
+        public static T[] GetObjectsForNativeVariants<T>(System.IntPtr aSrcNativeVariant, int cVars) { return default(T[]); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static int GetStartComSlot(System.Type t) { return default(int); }
+        public static System.Type GetTypeFromCLSID(System.Guid clsid) { return default(System.Type); }
+        [System.Security.SecurityCriticalAttribute]
+        public static string GetTypeInfoName(System.Runtime.InteropServices.ComTypes.ITypeInfo typeInfo) { return default(string); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static object GetUniqueObjectForIUnknown(System.IntPtr unknown) { return default(object); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]public static bool IsComObject(object o) { return default(bool); }
+        public static System.IntPtr OffsetOf(System.Type t, string fieldName) { return default(System.IntPtr); }
+        public static System.IntPtr OffsetOf<T>(string fieldName) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void Prelink(System.Reflection.MethodInfo m) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void PrelinkAll(System.Type c) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static string PtrToStringAnsi(System.IntPtr ptr) { return default(string); }
+        [System.Security.SecurityCriticalAttribute]
+        public static string PtrToStringAnsi(System.IntPtr ptr, int len) { return default(string); }
+        [System.Security.SecurityCriticalAttribute]
+        public static string PtrToStringBSTR(System.IntPtr ptr) { return default(string); }
+        [System.Security.SecurityCriticalAttribute]
+        public static string PtrToStringUni(System.IntPtr ptr) { return default(string); }
+        [System.Security.SecurityCriticalAttribute]
+        public static string PtrToStringUni(System.IntPtr ptr, int len) { return default(string); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public static void PtrToStructure(System.IntPtr ptr, object structure) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public static object PtrToStructure(System.IntPtr ptr, System.Type structureType) { return default(object); }
+        [System.Security.SecurityCriticalAttribute]
+        public static T PtrToStructure<T>(System.IntPtr ptr) { return default(T); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void PtrToStructure<T>(System.IntPtr ptr, T structure) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static int QueryInterface(System.IntPtr pUnk, ref System.Guid iid, out System.IntPtr ppv) { ppv = default(System.IntPtr); return default(int); }
+        [System.Security.SecurityCriticalAttribute]
+        public static byte ReadByte(System.IntPtr ptr) { return default(byte); }
+        [System.Security.SecurityCriticalAttribute]
+        public static byte ReadByte(System.IntPtr ptr, int ofs) { return default(byte); }
+        [System.Security.SecurityCriticalAttribute]
+        public static byte ReadByte(object ptr, int ofs) { return default(byte); }
+        [System.Security.SecurityCriticalAttribute]
+        public static short ReadInt16(System.IntPtr ptr) { return default(short); }
+        [System.Security.SecurityCriticalAttribute]
+        public static short ReadInt16(System.IntPtr ptr, int ofs) { return default(short); }
+        [System.Security.SecurityCriticalAttribute]
+        public static short ReadInt16(object ptr, int ofs) { return default(short); }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public static int ReadInt32(System.IntPtr ptr) { return default(int); }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public static int ReadInt32(System.IntPtr ptr, int ofs) { return default(int); }
+        [System.Security.SecurityCriticalAttribute]
+        public static int ReadInt32(object ptr, int ofs) { return default(int); }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public static long ReadInt64(System.IntPtr ptr) { return default(long); }
+        [System.Security.SecurityCriticalAttribute]
+        public static long ReadInt64(System.IntPtr ptr, int ofs) { return default(long); }
+        [System.Security.SecurityCriticalAttribute]
+        public static long ReadInt64(object ptr, int ofs) { return default(long); }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr ReadIntPtr(System.IntPtr ptr) { return default(System.IntPtr); }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr ReadIntPtr(System.IntPtr ptr, int ofs) { return default(System.IntPtr); }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr ReadIntPtr(object ptr, int ofs) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr ReAllocCoTaskMem(System.IntPtr pv, int cb) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr ReAllocHGlobal(System.IntPtr pv, System.IntPtr cb) { return default(System.IntPtr); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecurityCriticalAttribute]
+        public static int Release(System.IntPtr pUnk) { return default(int); }
+        [System.Security.SecurityCriticalAttribute]
+        public static int ReleaseComObject(object o) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public static int SizeOf(object structure) { return default(int); }
+        public static int SizeOf(System.Type t) { return default(int); }
+        public static int SizeOf<T>() { return default(int); }
+        public static int SizeOf<T>(T structure) { return default(int); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr StringToBSTR(string s) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr StringToCoTaskMemAnsi(string s) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr StringToCoTaskMemUni(string s) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr StringToHGlobalAnsi(string s) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr StringToHGlobalUni(string s) { return default(System.IntPtr); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecurityCriticalAttribute]
+        public static void StructureToPtr(object structure, System.IntPtr ptr, bool fDeleteOld) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void StructureToPtr<T>(T structure, System.IntPtr ptr, bool fDeleteOld) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void ThrowExceptionForHR(int errorCode) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void ThrowExceptionForHR(int errorCode, System.IntPtr errorInfo) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr UnsafeAddrOfPinnedArrayElement(System.Array arr, int index) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr UnsafeAddrOfPinnedArrayElement<T>(T[] arr, int index) { return default(System.IntPtr); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteByte(System.IntPtr ptr, byte val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteByte(System.IntPtr ptr, int ofs, byte val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteByte(object ptr, int ofs, byte val) { ptr = default(object); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt16(System.IntPtr ptr, char val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt16(System.IntPtr ptr, short val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt16(System.IntPtr ptr, int ofs, char val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt16(System.IntPtr ptr, int ofs, short val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt16(object ptr, int ofs, char val) { ptr = default(object); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt16(object ptr, int ofs, short val) { ptr = default(object); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt32(System.IntPtr ptr, int val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt32(System.IntPtr ptr, int ofs, int val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt32(object ptr, int ofs, int val) { ptr = default(object); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt64(System.IntPtr ptr, int ofs, long val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt64(System.IntPtr ptr, long val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteInt64(object ptr, int ofs, long val) { ptr = default(object); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteIntPtr(System.IntPtr ptr, int ofs, System.IntPtr val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteIntPtr(System.IntPtr ptr, System.IntPtr val) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void WriteIntPtr(object ptr, int ofs, System.IntPtr val) { ptr = default(object); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void ZeroFreeBSTR(System.IntPtr s) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void ZeroFreeCoTaskMemAnsi(System.IntPtr s) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void ZeroFreeCoTaskMemUnicode(System.IntPtr s) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void ZeroFreeGlobalAllocAnsi(System.IntPtr s) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void ZeroFreeGlobalAllocUnicode(System.IntPtr s) { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(10496), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class MarshalAsAttribute : System.Attribute
+    {
+        public System.Runtime.InteropServices.UnmanagedType ArraySubType;
+        public int IidParameterIndex;
+        public string MarshalCookie;
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public string MarshalType;
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        public System.Type MarshalTypeRef;
+        public System.Runtime.InteropServices.VarEnum SafeArraySubType;
+        public System.Type SafeArrayUserDefinedSubType;
+        public int SizeConst;
+        public short SizeParamIndex;
+        public MarshalAsAttribute(short unmanagedType) { }
+        public MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType unmanagedType) { }
+        public System.Runtime.InteropServices.UnmanagedType Value { get { return default(System.Runtime.InteropServices.UnmanagedType); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class MarshalDirectiveException : System.SystemException
+    {
+        public MarshalDirectiveException() { }
+        public MarshalDirectiveException(string message) { }
+        public MarshalDirectiveException(string message, System.Exception inner) { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64))]
+    public sealed partial class NativeCallableAttribute : System.Attribute
+    {
+        public System.Runtime.InteropServices.CallingConvention CallingConvention;
+        public string EntryPoint;
+        public NativeCallableAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2048), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class OptionalAttribute : System.Attribute
+    {
+        public OptionalAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2048), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class OutAttribute : System.Attribute
+    {
+        public OutAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class PreserveSigAttribute : System.Attribute
+    {
+        public PreserveSigAttribute() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public static partial class RuntimeEnvironment
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string GetRuntimeDirectory() { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class SafeArrayRankMismatchException : System.SystemException
+    {
+        public SafeArrayRankMismatchException() { }
+        public SafeArrayRankMismatchException(string message) { }
+        public SafeArrayRankMismatchException(string message, System.Exception inner) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class SafeArrayTypeMismatchException : System.SystemException
+    {
+        public SafeArrayTypeMismatchException() { }
+        public SafeArrayTypeMismatchException(string message) { }
+        public SafeArrayTypeMismatchException(string message, System.Exception inner) { }
+    }
+    [System.Security.SecurityCriticalAttribute]
+    public abstract partial class SafeBuffer : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+    {
+        protected SafeBuffer(bool ownsHandle) { }
+        [System.CLSCompliantAttribute(false)]
+        public ulong ByteLength { get { return default(ulong); } }
+        [System.CLSCompliantAttribute(false)]
+        
+        public unsafe void AcquirePointer(ref byte* pointer) { }
+        [System.CLSCompliantAttribute(false)]
+        public void Initialize(uint numElements, uint sizeOfEachElement) { }
+        [System.CLSCompliantAttribute(false)]
+        public void Initialize(ulong numBytes) { }
+        [System.CLSCompliantAttribute(false)]
+        public void Initialize<T>(uint numElements) where T : struct { }
+        [System.CLSCompliantAttribute(false)]
+        
+        public T Read<T>(ulong byteOffset) where T : struct { return default(T); }
+        [System.CLSCompliantAttribute(false)]
+        
+        public void ReadArray<T>(ulong byteOffset, T[] array, int index, int count) where T : struct { }
+        
+        public void ReleasePointer() { }
+        [System.CLSCompliantAttribute(false)]
+        
+        public void Write<T>(ulong byteOffset, T value) where T : struct { }
+        [System.CLSCompliantAttribute(false)]
+        
+        public void WriteArray<T>(ulong byteOffset, T[] array, int index, int count) where T : struct { }
+    }
+    [System.Security.SecurityCriticalAttribute]
+    public abstract partial class SafeHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.IDisposable
+    {
+        protected System.IntPtr handle;
+        protected SafeHandle() { }
+        
+        protected SafeHandle(System.IntPtr invalidHandleValue, bool ownsHandle) { }
+        public bool IsClosed { get { return default(bool); } }
+        public abstract bool IsInvalid { get; }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public void Close() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecurityCriticalAttribute]
+        public void DangerousAddRef(ref bool success) { }
+        
+        public System.IntPtr DangerousGetHandle() { return default(System.IntPtr); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecurityCriticalAttribute]
+        public void DangerousRelease() { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void Dispose() { }
+        
+        [System.Security.SecurityCriticalAttribute]
+        protected virtual void Dispose(bool disposing) { }
+        ~SafeHandle() { }
+        
+        protected abstract bool ReleaseHandle();
+        
+        protected void SetHandle(System.IntPtr handle) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecurityCriticalAttribute]
+        public void SetHandleAsInvalid() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class SEHException : System.Runtime.InteropServices.ExternalException
+    {
+        public SEHException() { }
+        public SEHException(string message) { }
+        public SEHException(string message, System.Exception inner) { }
+        public virtual bool CanResume() { return default(bool); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(12), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class StructLayoutAttribute : System.Attribute
+    {
+        public System.Runtime.InteropServices.CharSet CharSet;
+        public int Pack;
+        public int Size;
+        public StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind layoutKind) { }
+        public System.Runtime.InteropServices.LayoutKind Value { get { return default(System.Runtime.InteropServices.LayoutKind); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(5144), AllowMultiple=false, Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public sealed partial class TypeIdentifierAttribute : System.Attribute
+    {
+        public TypeIdentifierAttribute() { }
+        public TypeIdentifierAttribute(string scope, string identifier) { }
+        public string Identifier { get { return default(string); } }
+        public string Scope { get { return default(string); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class UnknownWrapper
+    {
+        public UnknownWrapper(object obj) { }
+        public object WrappedObject { get { return default(object); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(4096), AllowMultiple=false, Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class UnmanagedFunctionPointerAttribute : System.Attribute
+    {
+        public bool BestFitMapping;
+        public System.Runtime.InteropServices.CharSet CharSet;
+        public bool SetLastError;
+        public bool ThrowOnUnmappableChar;
+        public UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention callingConvention) { }
+        public System.Runtime.InteropServices.CallingConvention CallingConvention { get { return default(System.Runtime.InteropServices.CallingConvention); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum UnmanagedType
+    {
+        AnsiBStr = 35,
+        AsAny = 40,
+        Bool = 2,
+        BStr = 19,
+        ByValArray = 30,
+        ByValTStr = 23,
+        Currency = 15,
+        CustomMarshaler = 44,
+        Error = 45,
+        FunctionPtr = 38,
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        HString = 47,
+        I1 = 3,
+        I2 = 5,
+        I4 = 7,
+        I8 = 9,
+        IDispatch = 26,
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        IInspectable = 46,
+        Interface = 28,
+        IUnknown = 25,
+        LPArray = 42,
+        LPStr = 20,
+        LPStruct = 43,
+        LPTStr = 22,
+        LPWStr = 21,
+        R4 = 11,
+        R8 = 12,
+        SafeArray = 29,
+        Struct = 27,
+        SysInt = 31,
+        SysUInt = 32,
+        TBStr = 36,
+        U1 = 4,
+        U2 = 6,
+        U4 = 8,
+        U8 = 10,
+        VariantBool = 37,
+        VBByRefStr = 34,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum VarEnum
+    {
+        VT_ARRAY = 8192,
+        VT_BLOB = 65,
+        VT_BLOB_OBJECT = 70,
+        VT_BOOL = 11,
+        VT_BSTR = 8,
+        VT_BYREF = 16384,
+        VT_CARRAY = 28,
+        VT_CF = 71,
+        VT_CLSID = 72,
+        VT_CY = 6,
+        VT_DATE = 7,
+        VT_DECIMAL = 14,
+        VT_DISPATCH = 9,
+        VT_EMPTY = 0,
+        VT_ERROR = 10,
+        VT_FILETIME = 64,
+        VT_HRESULT = 25,
+        VT_I1 = 16,
+        VT_I2 = 2,
+        VT_I4 = 3,
+        VT_I8 = 20,
+        VT_INT = 22,
+        VT_LPSTR = 30,
+        VT_LPWSTR = 31,
+        VT_NULL = 1,
+        VT_PTR = 26,
+        VT_R4 = 4,
+        VT_R8 = 5,
+        VT_RECORD = 36,
+        VT_SAFEARRAY = 27,
+        VT_STORAGE = 67,
+        VT_STORED_OBJECT = 69,
+        VT_STREAM = 66,
+        VT_STREAMED_OBJECT = 68,
+        VT_UI1 = 17,
+        VT_UI2 = 18,
+        VT_UI4 = 19,
+        VT_UI8 = 21,
+        VT_UINT = 23,
+        VT_UNKNOWN = 13,
+        VT_USERDEFINED = 29,
+        VT_VARIANT = 12,
+        VT_VECTOR = 4096,
+        VT_VOID = 24,
+    }
+    public sealed partial class VariantWrapper
+    {
+        public VariantWrapper(object obj) { }
+        public object WrappedObject { get { return default(object); } }
+    }
+}
+namespace System.Runtime.InteropServices.ComTypes
+{
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct BIND_OPTS
+    {
+        public int cbStruct;
+        public int dwTickCountDeadline;
+        public int grfFlags;
+        public int grfMode;
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Explicit)]
+    public partial struct BINDPTR
+    {
+        [System.Runtime.InteropServices.FieldOffsetAttribute(0)]
+        public System.IntPtr lpfuncdesc;
+        [System.Runtime.InteropServices.FieldOffsetAttribute(0)]
+        public System.IntPtr lptcomp;
+        [System.Runtime.InteropServices.FieldOffsetAttribute(0)]
+        public System.IntPtr lpvardesc;
+    }
+    public enum CALLCONV
+    {
+        CC_CDECL = 1,
+        CC_MACPASCAL = 3,
+        CC_MAX = 9,
+        CC_MPWCDECL = 7,
+        CC_MPWPASCAL = 8,
+        CC_MSCPASCAL = 2,
+        CC_PASCAL = 2,
+        CC_RESERVED = 5,
+        CC_STDCALL = 4,
+        CC_SYSCALL = 6,
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct CONNECTDATA
+    {
+        public int dwCookie;
+        public object pUnk;
+    }
+    public enum DESCKIND
+    {
+        DESCKIND_FUNCDESC = 1,
+        DESCKIND_IMPLICITAPPOBJ = 4,
+        DESCKIND_MAX = 5,
+        DESCKIND_NONE = 0,
+        DESCKIND_TYPECOMP = 3,
+        DESCKIND_VARDESC = 2,
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct DISPPARAMS
+    {
+        public int cArgs;
+        public int cNamedArgs;
+        public System.IntPtr rgdispidNamedArgs;
+        public System.IntPtr rgvarg;
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct ELEMDESC
+    {
+        public System.Runtime.InteropServices.ComTypes.ELEMDESC.DESCUNION desc;
+        public System.Runtime.InteropServices.ComTypes.TYPEDESC tdesc;
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Explicit)]
+        public partial struct DESCUNION
+        {
+            [System.Runtime.InteropServices.FieldOffsetAttribute(0)]
+            public System.Runtime.InteropServices.ComTypes.IDLDESC idldesc;
+            [System.Runtime.InteropServices.FieldOffsetAttribute(0)]
+            public System.Runtime.InteropServices.ComTypes.PARAMDESC paramdesc;
+        }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct EXCEPINFO
+    {
+        public string bstrDescription;
+        public string bstrHelpFile;
+        public string bstrSource;
+        public int dwHelpContext;
+        public System.IntPtr pfnDeferredFillIn;
+        public System.IntPtr pvReserved;
+        public int scode;
+        public short wCode;
+        public short wReserved;
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct FILETIME
+    {
+        public int dwHighDateTime;
+        public int dwLowDateTime;
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct FUNCDESC
+    {
+        public System.Runtime.InteropServices.ComTypes.CALLCONV callconv;
+        public short cParams;
+        public short cParamsOpt;
+        public short cScodes;
+        public System.Runtime.InteropServices.ComTypes.ELEMDESC elemdescFunc;
+        public System.Runtime.InteropServices.ComTypes.FUNCKIND funckind;
+        public System.Runtime.InteropServices.ComTypes.INVOKEKIND invkind;
+        public System.IntPtr lprgelemdescParam;
+        public System.IntPtr lprgscode;
+        public int memid;
+        public short oVft;
+        public short wFuncFlags;
+    }
+    [System.FlagsAttribute]
+    public enum FUNCFLAGS : short
+    {
+        FUNCFLAG_FBINDABLE = (short)4,
+        FUNCFLAG_FDEFAULTBIND = (short)32,
+        FUNCFLAG_FDEFAULTCOLLELEM = (short)256,
+        FUNCFLAG_FDISPLAYBIND = (short)16,
+        FUNCFLAG_FHIDDEN = (short)64,
+        FUNCFLAG_FIMMEDIATEBIND = (short)4096,
+        FUNCFLAG_FNONBROWSABLE = (short)1024,
+        FUNCFLAG_FREPLACEABLE = (short)2048,
+        FUNCFLAG_FREQUESTEDIT = (short)8,
+        FUNCFLAG_FRESTRICTED = (short)1,
+        FUNCFLAG_FSOURCE = (short)2,
+        FUNCFLAG_FUIDEFAULT = (short)512,
+        FUNCFLAG_FUSESGETLASTERROR = (short)128,
+    }
+    public enum FUNCKIND
+    {
+        FUNC_DISPATCH = 4,
+        FUNC_NONVIRTUAL = 2,
+        FUNC_PUREVIRTUAL = 1,
+        FUNC_STATIC = 3,
+        FUNC_VIRTUAL = 0,
+    }
+    [System.Runtime.InteropServices.GuidAttribute("0000000e-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IBindCtx
+    {
+        void EnumObjectParam(out System.Runtime.InteropServices.ComTypes.IEnumString ppenum);
+        void GetBindOptions(ref System.Runtime.InteropServices.ComTypes.BIND_OPTS pbindopts);
+        void GetObjectParam(string pszKey, out object ppunk);
+        void GetRunningObjectTable(out System.Runtime.InteropServices.ComTypes.IRunningObjectTable pprot);
+        void RegisterObjectBound(object punk);
+        void RegisterObjectParam(string pszKey, object punk);
+        void ReleaseBoundObjects();
+        void RevokeObjectBound(object punk);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int RevokeObjectParam(string pszKey);
+        void SetBindOptions(ref System.Runtime.InteropServices.ComTypes.BIND_OPTS pbindopts);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("B196B286-BAB4-101A-B69C-00AA00341D07")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IConnectionPoint
+    {
+        void Advise(object pUnkSink, out int pdwCookie);
+        void EnumConnections(out System.Runtime.InteropServices.ComTypes.IEnumConnections ppEnum);
+        void GetConnectionInterface(out System.Guid pIID);
+        void GetConnectionPointContainer(out System.Runtime.InteropServices.ComTypes.IConnectionPointContainer ppCPC);
+        void Unadvise(int dwCookie);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("B196B284-BAB4-101A-B69C-00AA00341D07")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IConnectionPointContainer
+    {
+        void EnumConnectionPoints(out System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints ppEnum);
+        void FindConnectionPoint(ref System.Guid riid, out System.Runtime.InteropServices.ComTypes.IConnectionPoint ppCP);
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct IDLDESC
+    {
+        public System.IntPtr dwReserved;
+        public System.Runtime.InteropServices.ComTypes.IDLFLAG wIDLFlags;
+    }
+    [System.FlagsAttribute]
+    public enum IDLFLAG : short
+    {
+        IDLFLAG_FIN = (short)1,
+        IDLFLAG_FLCID = (short)4,
+        IDLFLAG_FOUT = (short)2,
+        IDLFLAG_FRETVAL = (short)8,
+        IDLFLAG_NONE = (short)0,
+    }
+    [System.Runtime.InteropServices.GuidAttribute("B196B285-BAB4-101A-B69C-00AA00341D07")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IEnumConnectionPoints
+    {
+        void Clone(out System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints ppenum);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int Next(int celt, System.Runtime.InteropServices.ComTypes.IConnectionPoint[] rgelt, System.IntPtr pceltFetched);
+        void Reset();
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int Skip(int celt);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("B196B287-BAB4-101A-B69C-00AA00341D07")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IEnumConnections
+    {
+        void Clone(out System.Runtime.InteropServices.ComTypes.IEnumConnections ppenum);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int Next(int celt, System.Runtime.InteropServices.ComTypes.CONNECTDATA[] rgelt, System.IntPtr pceltFetched);
+        void Reset();
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int Skip(int celt);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("00000102-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IEnumMoniker
+    {
+        void Clone(out System.Runtime.InteropServices.ComTypes.IEnumMoniker ppenum);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int Next(int celt, System.Runtime.InteropServices.ComTypes.IMoniker[] rgelt, System.IntPtr pceltFetched);
+        void Reset();
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int Skip(int celt);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("00000101-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IEnumString
+    {
+        void Clone(out System.Runtime.InteropServices.ComTypes.IEnumString ppenum);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int Next(int celt, string[] rgelt, System.IntPtr pceltFetched);
+        void Reset();
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int Skip(int celt);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("00020404-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IEnumVARIANT
+    {
+        System.Runtime.InteropServices.ComTypes.IEnumVARIANT Clone();
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int Next(int celt, object[] rgVar, System.IntPtr pceltFetched);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int Reset();
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int Skip(int celt);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("0000000f-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IMoniker
+    {
+        void BindToObject(System.Runtime.InteropServices.ComTypes.IBindCtx pbc, System.Runtime.InteropServices.ComTypes.IMoniker pmkToLeft, ref System.Guid riidResult, out object ppvResult);
+        void BindToStorage(System.Runtime.InteropServices.ComTypes.IBindCtx pbc, System.Runtime.InteropServices.ComTypes.IMoniker pmkToLeft, ref System.Guid riid, out object ppvObj);
+        void CommonPrefixWith(System.Runtime.InteropServices.ComTypes.IMoniker pmkOther, out System.Runtime.InteropServices.ComTypes.IMoniker ppmkPrefix);
+        void ComposeWith(System.Runtime.InteropServices.ComTypes.IMoniker pmkRight, bool fOnlyIfNotGeneric, out System.Runtime.InteropServices.ComTypes.IMoniker ppmkComposite);
+        void Enum(bool fForward, out System.Runtime.InteropServices.ComTypes.IEnumMoniker ppenumMoniker);
+        void GetClassID(out System.Guid pClassID);
+        void GetDisplayName(System.Runtime.InteropServices.ComTypes.IBindCtx pbc, System.Runtime.InteropServices.ComTypes.IMoniker pmkToLeft, out string ppszDisplayName);
+        void GetSizeMax(out long pcbSize);
+        void GetTimeOfLastChange(System.Runtime.InteropServices.ComTypes.IBindCtx pbc, System.Runtime.InteropServices.ComTypes.IMoniker pmkToLeft, out System.Runtime.InteropServices.ComTypes.FILETIME pFileTime);
+        void Hash(out int pdwHash);
+        void Inverse(out System.Runtime.InteropServices.ComTypes.IMoniker ppmk);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int IsDirty();
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int IsEqual(System.Runtime.InteropServices.ComTypes.IMoniker pmkOtherMoniker);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int IsRunning(System.Runtime.InteropServices.ComTypes.IBindCtx pbc, System.Runtime.InteropServices.ComTypes.IMoniker pmkToLeft, System.Runtime.InteropServices.ComTypes.IMoniker pmkNewlyRunning);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int IsSystemMoniker(out int pdwMksys);
+        void Load(System.Runtime.InteropServices.ComTypes.IStream pStm);
+        void ParseDisplayName(System.Runtime.InteropServices.ComTypes.IBindCtx pbc, System.Runtime.InteropServices.ComTypes.IMoniker pmkToLeft, string pszDisplayName, out int pchEaten, out System.Runtime.InteropServices.ComTypes.IMoniker ppmkOut);
+        void Reduce(System.Runtime.InteropServices.ComTypes.IBindCtx pbc, int dwReduceHowFar, ref System.Runtime.InteropServices.ComTypes.IMoniker ppmkToLeft, out System.Runtime.InteropServices.ComTypes.IMoniker ppmkReduced);
+        void RelativePathTo(System.Runtime.InteropServices.ComTypes.IMoniker pmkOther, out System.Runtime.InteropServices.ComTypes.IMoniker ppmkRelPath);
+        void Save(System.Runtime.InteropServices.ComTypes.IStream pStm, bool fClearDirty);
+    }
+    [System.FlagsAttribute]
+    public enum IMPLTYPEFLAGS
+    {
+        IMPLTYPEFLAG_FDEFAULT = 1,
+        IMPLTYPEFLAG_FDEFAULTVTABLE = 8,
+        IMPLTYPEFLAG_FRESTRICTED = 4,
+        IMPLTYPEFLAG_FSOURCE = 2,
+    }
+    [System.FlagsAttribute]
+    public enum INVOKEKIND
+    {
+        INVOKE_FUNC = 1,
+        INVOKE_PROPERTYGET = 2,
+        INVOKE_PROPERTYPUT = 4,
+        INVOKE_PROPERTYPUTREF = 8,
+    }
+    [System.Runtime.InteropServices.GuidAttribute("0000010b-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IPersistFile
+    {
+        void GetClassID(out System.Guid pClassID);
+        void GetCurFile(out string ppszFileName);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int IsDirty();
+        void Load(string pszFileName, int dwMode);
+        void Save(string pszFileName, bool fRemember);
+        void SaveCompleted(string pszFileName);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("00000010-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IRunningObjectTable
+    {
+        void EnumRunning(out System.Runtime.InteropServices.ComTypes.IEnumMoniker ppenumMoniker);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int GetObject(System.Runtime.InteropServices.ComTypes.IMoniker pmkObjectName, out object ppunkObject);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int GetTimeOfLastChange(System.Runtime.InteropServices.ComTypes.IMoniker pmkObjectName, out System.Runtime.InteropServices.ComTypes.FILETIME pfiletime);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int IsRunning(System.Runtime.InteropServices.ComTypes.IMoniker pmkObjectName);
+        void NoteChangeTime(int dwRegister, ref System.Runtime.InteropServices.ComTypes.FILETIME pfiletime);
+        int Register(int grfFlags, object punkObject, System.Runtime.InteropServices.ComTypes.IMoniker pmkObjectName);
+        void Revoke(int dwRegister);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("0000000c-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface IStream
+    {
+        void Clone(out System.Runtime.InteropServices.ComTypes.IStream ppstm);
+        void Commit(int grfCommitFlags);
+        void CopyTo(System.Runtime.InteropServices.ComTypes.IStream pstm, long cb, System.IntPtr pcbRead, System.IntPtr pcbWritten);
+        void LockRegion(long libOffset, long cb, int dwLockType);
+        void Read(byte[] pv, int cb, System.IntPtr pcbRead);
+        void Revert();
+        void Seek(long dlibMove, int dwOrigin, System.IntPtr plibNewPosition);
+        void SetSize(long libNewSize);
+        void Stat(out System.Runtime.InteropServices.ComTypes.STATSTG pstatstg, int grfStatFlag);
+        void UnlockRegion(long libOffset, long cb, int dwLockType);
+        void Write(byte[] pv, int cb, System.IntPtr pcbWritten);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("00020403-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface ITypeComp
+    {
+        void Bind(string szName, int lHashVal, short wFlags, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTInfo, out System.Runtime.InteropServices.ComTypes.DESCKIND pDescKind, out System.Runtime.InteropServices.ComTypes.BINDPTR pBindPtr);
+        void BindType(string szName, int lHashVal, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTInfo, out System.Runtime.InteropServices.ComTypes.ITypeComp ppTComp);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("00020401-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface ITypeInfo
+    {
+        void AddressOfMember(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, out System.IntPtr ppv);
+        void CreateInstance(object pUnkOuter, ref System.Guid riid, out object ppvObj);
+        void GetContainingTypeLib(out System.Runtime.InteropServices.ComTypes.ITypeLib ppTLB, out int pIndex);
+        void GetDllEntry(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, System.IntPtr pBstrDllName, System.IntPtr pBstrName, System.IntPtr pwOrdinal);
+        void GetDocumentation(int index, out string strName, out string strDocString, out int dwHelpContext, out string strHelpFile);
+        void GetFuncDesc(int index, out System.IntPtr ppFuncDesc);
+        void GetIDsOfNames(string[] rgszNames, int cNames, int[] pMemId);
+        void GetImplTypeFlags(int index, out System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS pImplTypeFlags);
+        void GetMops(int memid, out string pBstrMops);
+        void GetNames(int memid, string[] rgBstrNames, int cMaxNames, out int pcNames);
+        void GetRefTypeInfo(int hRef, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTI);
+        void GetRefTypeOfImplType(int index, out int href);
+        void GetTypeAttr(out System.IntPtr ppTypeAttr);
+        void GetTypeComp(out System.Runtime.InteropServices.ComTypes.ITypeComp ppTComp);
+        void GetVarDesc(int index, out System.IntPtr ppVarDesc);
+        void Invoke(object pvInstance, int memid, short wFlags, ref System.Runtime.InteropServices.ComTypes.DISPPARAMS pDispParams, System.IntPtr pVarResult, System.IntPtr pExcepInfo, out int puArgErr);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]void ReleaseFuncDesc(System.IntPtr pFuncDesc);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]void ReleaseTypeAttr(System.IntPtr pTypeAttr);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]void ReleaseVarDesc(System.IntPtr pVarDesc);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("00020412-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface ITypeInfo2 : System.Runtime.InteropServices.ComTypes.ITypeInfo
+    {
+        new void AddressOfMember(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, out System.IntPtr ppv);
+        new void CreateInstance(object pUnkOuter, ref System.Guid riid, out object ppvObj);
+        void GetAllCustData(System.IntPtr pCustData);
+        void GetAllFuncCustData(int index, System.IntPtr pCustData);
+        void GetAllImplTypeCustData(int index, System.IntPtr pCustData);
+        void GetAllParamCustData(int indexFunc, int indexParam, System.IntPtr pCustData);
+        void GetAllVarCustData(int index, System.IntPtr pCustData);
+        new void GetContainingTypeLib(out System.Runtime.InteropServices.ComTypes.ITypeLib ppTLB, out int pIndex);
+        void GetCustData(ref System.Guid guid, out object pVarVal);
+        new void GetDllEntry(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, System.IntPtr pBstrDllName, System.IntPtr pBstrName, System.IntPtr pwOrdinal);
+        new void GetDocumentation(int index, out string strName, out string strDocString, out int dwHelpContext, out string strHelpFile);
+        void GetDocumentation2(int memid, out string pbstrHelpString, out int pdwHelpStringContext, out string pbstrHelpStringDll);
+        void GetFuncCustData(int index, ref System.Guid guid, out object pVarVal);
+        new void GetFuncDesc(int index, out System.IntPtr ppFuncDesc);
+        void GetFuncIndexOfMemId(int memid, System.Runtime.InteropServices.ComTypes.INVOKEKIND invKind, out int pFuncIndex);
+        new void GetIDsOfNames(string[] rgszNames, int cNames, int[] pMemId);
+        void GetImplTypeCustData(int index, ref System.Guid guid, out object pVarVal);
+        new void GetImplTypeFlags(int index, out System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS pImplTypeFlags);
+        new void GetMops(int memid, out string pBstrMops);
+        new void GetNames(int memid, string[] rgBstrNames, int cMaxNames, out int pcNames);
+        void GetParamCustData(int indexFunc, int indexParam, ref System.Guid guid, out object pVarVal);
+        new void GetRefTypeInfo(int hRef, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTI);
+        new void GetRefTypeOfImplType(int index, out int href);
+        new void GetTypeAttr(out System.IntPtr ppTypeAttr);
+        new void GetTypeComp(out System.Runtime.InteropServices.ComTypes.ITypeComp ppTComp);
+        void GetTypeFlags(out int pTypeFlags);
+        void GetTypeKind(out System.Runtime.InteropServices.ComTypes.TYPEKIND pTypeKind);
+        void GetVarCustData(int index, ref System.Guid guid, out object pVarVal);
+        new void GetVarDesc(int index, out System.IntPtr ppVarDesc);
+        void GetVarIndexOfMemId(int memid, out int pVarIndex);
+        new void Invoke(object pvInstance, int memid, short wFlags, ref System.Runtime.InteropServices.ComTypes.DISPPARAMS pDispParams, System.IntPtr pVarResult, System.IntPtr pExcepInfo, out int puArgErr);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]new void ReleaseFuncDesc(System.IntPtr pFuncDesc);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]new void ReleaseTypeAttr(System.IntPtr pTypeAttr);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]new void ReleaseVarDesc(System.IntPtr pVarDesc);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("00020402-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface ITypeLib
+    {
+        void FindName(string szNameBuf, int lHashVal, System.Runtime.InteropServices.ComTypes.ITypeInfo[] ppTInfo, int[] rgMemId, ref short pcFound);
+        void GetDocumentation(int index, out string strName, out string strDocString, out int dwHelpContext, out string strHelpFile);
+        void GetLibAttr(out System.IntPtr ppTLibAttr);
+        void GetTypeComp(out System.Runtime.InteropServices.ComTypes.ITypeComp ppTComp);
+        void GetTypeInfo(int index, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTI);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]int GetTypeInfoCount();
+        void GetTypeInfoOfGuid(ref System.Guid guid, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTInfo);
+        void GetTypeInfoType(int index, out System.Runtime.InteropServices.ComTypes.TYPEKIND pTKind);
+        bool IsName(string szNameBuf, int lHashVal);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]void ReleaseTLibAttr(System.IntPtr pTLibAttr);
+    }
+    [System.Runtime.InteropServices.GuidAttribute("00020411-0000-0000-C000-000000000046")]
+    [System.Runtime.InteropServices.InterfaceTypeAttribute((System.Runtime.InteropServices.ComInterfaceType)(1))]
+    public partial interface ITypeLib2 : System.Runtime.InteropServices.ComTypes.ITypeLib
+    {
+        new void FindName(string szNameBuf, int lHashVal, System.Runtime.InteropServices.ComTypes.ITypeInfo[] ppTInfo, int[] rgMemId, ref short pcFound);
+        void GetAllCustData(System.IntPtr pCustData);
+        void GetCustData(ref System.Guid guid, out object pVarVal);
+        new void GetDocumentation(int index, out string strName, out string strDocString, out int dwHelpContext, out string strHelpFile);
+        
+        void GetDocumentation2(int index, out string pbstrHelpString, out int pdwHelpStringContext, out string pbstrHelpStringDll);
+        new void GetLibAttr(out System.IntPtr ppTLibAttr);
+        void GetLibStatistics(System.IntPtr pcUniqueNames, out int pcchUniqueNames);
+        new void GetTypeComp(out System.Runtime.InteropServices.ComTypes.ITypeComp ppTComp);
+        new void GetTypeInfo(int index, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTI);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]new int GetTypeInfoCount();
+        new void GetTypeInfoOfGuid(ref System.Guid guid, out System.Runtime.InteropServices.ComTypes.ITypeInfo ppTInfo);
+        new void GetTypeInfoType(int index, out System.Runtime.InteropServices.ComTypes.TYPEKIND pTKind);
+        new bool IsName(string szNameBuf, int lHashVal);
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]new void ReleaseTLibAttr(System.IntPtr pTLibAttr);
+    }
+    [System.FlagsAttribute]
+    public enum LIBFLAGS : short
+    {
+        LIBFLAG_FCONTROL = (short)2,
+        LIBFLAG_FHASDISKIMAGE = (short)8,
+        LIBFLAG_FHIDDEN = (short)4,
+        LIBFLAG_FRESTRICTED = (short)1,
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct PARAMDESC
+    {
+        public System.IntPtr lpVarValue;
+        public System.Runtime.InteropServices.ComTypes.PARAMFLAG wParamFlags;
+    }
+    [System.FlagsAttribute]
+    public enum PARAMFLAG : short
+    {
+        PARAMFLAG_FHASCUSTDATA = (short)64,
+        PARAMFLAG_FHASDEFAULT = (short)32,
+        PARAMFLAG_FIN = (short)1,
+        PARAMFLAG_FLCID = (short)4,
+        PARAMFLAG_FOPT = (short)16,
+        PARAMFLAG_FOUT = (short)2,
+        PARAMFLAG_FRETVAL = (short)8,
+        PARAMFLAG_NONE = (short)0,
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct STATSTG
+    {
+        public System.Runtime.InteropServices.ComTypes.FILETIME atime;
+        public long cbSize;
+        public System.Guid clsid;
+        public System.Runtime.InteropServices.ComTypes.FILETIME ctime;
+        public int grfLocksSupported;
+        public int grfMode;
+        public int grfStateBits;
+        public System.Runtime.InteropServices.ComTypes.FILETIME mtime;
+        public string pwcsName;
+        public int reserved;
+        public int type;
+    }
+    public enum SYSKIND
+    {
+        SYS_MAC = 2,
+        SYS_WIN16 = 0,
+        SYS_WIN32 = 1,
+        SYS_WIN64 = 3,
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct TYPEATTR
+    {
+        public short cbAlignment;
+        public int cbSizeInstance;
+        public short cbSizeVft;
+        public short cFuncs;
+        public short cImplTypes;
+        public short cVars;
+        public int dwReserved;
+        public System.Guid guid;
+        public System.Runtime.InteropServices.ComTypes.IDLDESC idldescType;
+        public int lcid;
+        public System.IntPtr lpstrSchema;
+        public const int MEMBER_ID_NIL = -1;
+        public int memidConstructor;
+        public int memidDestructor;
+        public System.Runtime.InteropServices.ComTypes.TYPEDESC tdescAlias;
+        public System.Runtime.InteropServices.ComTypes.TYPEKIND typekind;
+        public short wMajorVerNum;
+        public short wMinorVerNum;
+        public System.Runtime.InteropServices.ComTypes.TYPEFLAGS wTypeFlags;
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct TYPEDESC
+    {
+        public System.IntPtr lpValue;
+        public short vt;
+    }
+    [System.FlagsAttribute]
+    public enum TYPEFLAGS : short
+    {
+        TYPEFLAG_FAGGREGATABLE = (short)1024,
+        TYPEFLAG_FAPPOBJECT = (short)1,
+        TYPEFLAG_FCANCREATE = (short)2,
+        TYPEFLAG_FCONTROL = (short)32,
+        TYPEFLAG_FDISPATCHABLE = (short)4096,
+        TYPEFLAG_FDUAL = (short)64,
+        TYPEFLAG_FHIDDEN = (short)16,
+        TYPEFLAG_FLICENSED = (short)4,
+        TYPEFLAG_FNONEXTENSIBLE = (short)128,
+        TYPEFLAG_FOLEAUTOMATION = (short)256,
+        TYPEFLAG_FPREDECLID = (short)8,
+        TYPEFLAG_FPROXY = (short)16384,
+        TYPEFLAG_FREPLACEABLE = (short)2048,
+        TYPEFLAG_FRESTRICTED = (short)512,
+        TYPEFLAG_FREVERSEBIND = (short)8192,
+    }
+    public enum TYPEKIND
+    {
+        TKIND_ALIAS = 6,
+        TKIND_COCLASS = 5,
+        TKIND_DISPATCH = 4,
+        TKIND_ENUM = 0,
+        TKIND_INTERFACE = 3,
+        TKIND_MAX = 8,
+        TKIND_MODULE = 2,
+        TKIND_RECORD = 1,
+        TKIND_UNION = 7,
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct TYPELIBATTR
+    {
+        public System.Guid guid;
+        public int lcid;
+        public System.Runtime.InteropServices.ComTypes.SYSKIND syskind;
+        public System.Runtime.InteropServices.ComTypes.LIBFLAGS wLibFlags;
+        public short wMajorVerNum;
+        public short wMinorVerNum;
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct VARDESC
+    {
+        public System.Runtime.InteropServices.ComTypes.VARDESC.DESCUNION desc;
+        public System.Runtime.InteropServices.ComTypes.ELEMDESC elemdescVar;
+        public string lpstrSchema;
+        public int memid;
+        public System.Runtime.InteropServices.ComTypes.VARKIND varkind;
+        public short wVarFlags;
+        [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Explicit)]
+        public partial struct DESCUNION
+        {
+            [System.Runtime.InteropServices.FieldOffsetAttribute(0)]
+            public System.IntPtr lpvarValue;
+            [System.Runtime.InteropServices.FieldOffsetAttribute(0)]
+            public int oInst;
+        }
+    }
+    [System.FlagsAttribute]
+    public enum VARFLAGS : short
+    {
+        VARFLAG_FBINDABLE = (short)4,
+        VARFLAG_FDEFAULTBIND = (short)32,
+        VARFLAG_FDEFAULTCOLLELEM = (short)256,
+        VARFLAG_FDISPLAYBIND = (short)16,
+        VARFLAG_FHIDDEN = (short)64,
+        VARFLAG_FIMMEDIATEBIND = (short)4096,
+        VARFLAG_FNONBROWSABLE = (short)1024,
+        VARFLAG_FREADONLY = (short)1,
+        VARFLAG_FREPLACEABLE = (short)2048,
+        VARFLAG_FREQUESTEDIT = (short)8,
+        VARFLAG_FRESTRICTED = (short)128,
+        VARFLAG_FSOURCE = (short)2,
+        VARFLAG_FUIDEFAULT = (short)512,
+    }
+    public enum VARKIND
+    {
+        VAR_CONST = 2,
+        VAR_DISPATCH = 3,
+        VAR_PERINSTANCE = 0,
+        VAR_STATIC = 1,
+    }
+}
+namespace System.Runtime.InteropServices.WindowsRuntime
+{
+#if FEATURE_COMINTEROP    
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1028), AllowMultiple=false, Inherited=false)]
+    public sealed partial class DefaultInterfaceAttribute : System.Attribute
+    {
+        public DefaultInterfaceAttribute(System.Type defaultInterface) { }
+        public System.Type DefaultInterface { get { return default(System.Type); } }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct EventRegistrationToken
+    {
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken left, System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken right) { return default(bool); }
+        public static bool operator !=(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken left, System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken right) { return default(bool); }
+    }
+    public sealed partial class EventRegistrationTokenTable<T> where T : class
+    {
+        public EventRegistrationTokenTable() { }
+        public T InvocationList { get { return default(T); } set { } }
+        public System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken AddEventHandler(T handler) { return default(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken); }
+        public static System.Runtime.InteropServices.WindowsRuntime.EventRegistrationTokenTable<T> GetOrCreateEventRegistrationTokenTable(ref System.Runtime.InteropServices.WindowsRuntime.EventRegistrationTokenTable<T> refEventTable) { return default(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationTokenTable<T>); }
+        public void RemoveEventHandler(T handler) { }
+        public void RemoveEventHandler(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken token) { }
+    }
+    [System.Runtime.InteropServices.GuidAttribute("00000035-0000-0000-C000-000000000046")]
+    public partial interface IActivationFactory
+    {
+        object ActivateInstance();
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1028), Inherited=false, AllowMultiple=true)]
+    public sealed partial class InterfaceImplementedInVersionAttribute : System.Attribute
+    {
+        public InterfaceImplementedInVersionAttribute(System.Type interfaceType, byte majorVersion, byte minorVersion, byte buildVersion, byte revisionVersion) { }
+        public byte BuildVersion { get { return default(byte); } }
+        public System.Type InterfaceType { get { return default(System.Type); } }
+        public byte MajorVersion { get { return default(byte); } }
+        public byte MinorVersion { get { return default(byte); } }
+        public byte RevisionVersion { get { return default(byte); } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2048), Inherited=false, AllowMultiple=false)]
+    public sealed partial class ReadOnlyArrayAttribute : System.Attribute
+    {
+        public ReadOnlyArrayAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(12288), AllowMultiple=false, Inherited=false)]
+    public sealed partial class ReturnValueNameAttribute : System.Attribute
+    {
+        public ReturnValueNameAttribute(string name) { }
+        public string Name { get { return default(string); } }
+    }
+    public static partial class WindowsRuntimeMarshal
+    {
+        [System.Security.SecurityCriticalAttribute]
+        public static void AddEventHandler<T>(System.Func<T, System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken> addMethod, System.Action<System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken> removeMethod, T handler) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void FreeHString(System.IntPtr ptr) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.Runtime.InteropServices.WindowsRuntime.IActivationFactory GetActivationFactory(System.Type type) { return default(System.Runtime.InteropServices.WindowsRuntime.IActivationFactory); }
+        [System.Security.SecurityCriticalAttribute]
+        public static string PtrToStringHString(System.IntPtr ptr) { return default(string); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void RemoveAllEventHandlers(System.Action<System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken> removeMethod) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void RemoveEventHandler<T>(System.Action<System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken> removeMethod, T handler) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.IntPtr StringToHString(string s) { return default(System.IntPtr); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2048), Inherited=false, AllowMultiple=false)]
+    public sealed partial class WriteOnlyArrayAttribute : System.Attribute
+    {
+        public WriteOnlyArrayAttribute() { }
+    }
+#endif //FEATURE_COMINTEROP
+}
+namespace System.Runtime.Loader
+{
+    [System.Security.SecuritySafeCriticalAttribute]
+    public abstract partial class AssemblyLoadContext
+    {
+        protected AssemblyLoadContext() { }
+        public static System.Runtime.Loader.AssemblyLoadContext Default { get { return default(System.Runtime.Loader.AssemblyLoadContext); } }
+        public event System.Func<System.Runtime.Loader.AssemblyLoadContext, System.Reflection.AssemblyName, System.Reflection.Assembly> Resolving { add { } remove { } }
+        public event System.Action<System.Runtime.Loader.AssemblyLoadContext> Unloading { add { } remove { } }
+        public static System.Reflection.AssemblyName GetAssemblyName(string assemblyPath) { return default(System.Reflection.AssemblyName); }
+        public static System.Runtime.Loader.AssemblyLoadContext GetLoadContext(System.Reflection.Assembly assembly) { return default(System.Runtime.Loader.AssemblyLoadContext); }
+        public static void InitializeDefaultContext(System.Runtime.Loader.AssemblyLoadContext context) { }
+        protected abstract System.Reflection.Assembly Load(System.Reflection.AssemblyName assemblyName);
+        public System.Reflection.Assembly LoadFromAssemblyName(System.Reflection.AssemblyName assemblyName) { return default(System.Reflection.Assembly); }
+        public System.Reflection.Assembly LoadFromAssemblyPath(string assemblyPath) { return default(System.Reflection.Assembly); }
+        public System.Reflection.Assembly LoadFromNativeImagePath(string nativeImagePath, string assemblyPath) { return default(System.Reflection.Assembly); }
+        public System.Reflection.Assembly LoadFromStream(System.IO.Stream assembly) { return default(System.Reflection.Assembly); }
+        public System.Reflection.Assembly LoadFromStream(System.IO.Stream assembly, System.IO.Stream assemblySymbols) { return default(System.Reflection.Assembly); }
+        protected virtual System.IntPtr LoadUnmanagedDll(string unmanagedDllName) { return default(System.IntPtr); }
+        protected System.IntPtr LoadUnmanagedDllFromPath(string unmanagedDllPath) { return default(System.IntPtr); }
+        public void SetProfileOptimizationRoot(string directoryPath) { }
+        public void StartProfileOptimization(string profile) { }
+    }
+}
+namespace System.Runtime.Serialization
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public static partial class FormatterServices
+    {
+        [System.Security.SecurityCriticalAttribute]
+        public static object GetUninitializedObject(System.Type type) { return default(object); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class OnDeserializedAttribute : System.Attribute
+    {
+        public OnDeserializedAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class OnDeserializingAttribute : System.Attribute
+    {
+        public OnDeserializingAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class OnSerializedAttribute : System.Attribute
+    {
+        public OnSerializedAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(64), Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class OnSerializingAttribute : System.Attribute
+    {
+        public OnSerializingAttribute() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class SerializationException : System.SystemException
+    {
+        public SerializationException() { }
+        public SerializationException(string message) { }
+        public SerializationException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct StreamingContext
+    {
+        public StreamingContext(System.Runtime.Serialization.StreamingContextStates state) { throw new System.NotImplementedException(); }
+        public StreamingContext(System.Runtime.Serialization.StreamingContextStates state, object additional) { throw new System.NotImplementedException(); }
+        public object Context { get { return default(object); } }
+        public System.Runtime.Serialization.StreamingContextStates State { get { return default(System.Runtime.Serialization.StreamingContextStates); } }
+        public override bool Equals(object obj) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum StreamingContextStates
+    {
+        All = 255,
+        Clone = 64,
+        CrossAppDomain = 128,
+        CrossMachine = 2,
+        CrossProcess = 1,
+        File = 4,
+        Other = 32,
+        Persistence = 8,
+        Remoting = 16,
+    }
+}
+namespace System.Runtime.Versioning
+{
+    [System.AttributeUsageAttribute((System.AttributeTargets)(5887), AllowMultiple=false, Inherited=false)]
+    public sealed partial class ComponentGuaranteesAttribute : System.Attribute
+    {
+        public ComponentGuaranteesAttribute(System.Runtime.Versioning.ComponentGuaranteesOptions guarantees) { }
+        public System.Runtime.Versioning.ComponentGuaranteesOptions Guarantees { get { return default(System.Runtime.Versioning.ComponentGuaranteesOptions); } }
+    }
+    [System.FlagsAttribute]
+    public enum ComponentGuaranteesOptions
+    {
+        Exchange = 1,
+        None = 0,
+        SideBySide = 4,
+        Stable = 2,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(480), Inherited=false)]
+    [System.Diagnostics.ConditionalAttribute("RESOURCE_ANNOTATION_WORK")]
+    public sealed partial class ResourceExposureAttribute : System.Attribute
+    {
+        public ResourceExposureAttribute(System.Runtime.Versioning.ResourceScope exposureLevel) { }
+        public System.Runtime.Versioning.ResourceScope ResourceExposureLevel { get { return default(System.Runtime.Versioning.ResourceScope); } }
+    }
+    [System.FlagsAttribute]
+    public enum ResourceScope
+    {
+        AppDomain = 4,
+        Assembly = 32,
+        Library = 8,
+        Machine = 1,
+        None = 0,
+        Private = 16,
+        Process = 2,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), AllowMultiple=false, Inherited=false)]
+    public sealed partial class TargetFrameworkAttribute : System.Attribute
+    {
+        public TargetFrameworkAttribute(string frameworkName) { }
+        public string FrameworkDisplayName { get { return default(string); } set { } }
+        public string FrameworkName { get { return default(string); } }
+    }
+    public static partial class VersioningHelper
+    {
+        public static string MakeVersionSafeName(string name, System.Runtime.Versioning.ResourceScope from, System.Runtime.Versioning.ResourceScope to) { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static string MakeVersionSafeName(string name, System.Runtime.Versioning.ResourceScope from, System.Runtime.Versioning.ResourceScope to, System.Type type) { return default(string); }
+    }
+}
+namespace System.Security
+{
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), AllowMultiple=false, Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class AllowPartiallyTrustedCallersAttribute : System.Attribute
+    {
+        public AllowPartiallyTrustedCallersAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(5501), AllowMultiple=false, Inherited=false)]
+    public sealed partial class SecurityCriticalAttribute : System.Attribute
+    {
+        public SecurityCriticalAttribute() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class SecurityException : System.SystemException
+    {
+        public SecurityException() { }
+        public SecurityException(string message) { }
+        public SecurityException(string message, System.Exception inner) { }
+        public override string ToString() { return default(string); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(5500), AllowMultiple=false, Inherited=false)]
+    public sealed partial class SecuritySafeCriticalAttribute : System.Attribute
+    {
+        public SecuritySafeCriticalAttribute() { }
+    }
+    [System.Security.SecurityCriticalAttribute]
+    public abstract partial class SecurityState
+    {
+        protected SecurityState() { }
+        public abstract void EnsureState();
+        [System.Security.SecurityCriticalAttribute]
+        public bool IsStateAvailable() { return default(bool); }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(1), AllowMultiple=false, Inherited=false)]
+    public sealed partial class SecurityTransparentAttribute : System.Attribute
+    {
+        public SecurityTransparentAttribute() { }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(2), AllowMultiple=true, Inherited=false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class UnverifiableCodeAttribute : System.Attribute
+    {
+        public UnverifiableCodeAttribute() { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class VerificationException : System.SystemException
+    {
+        public VerificationException() { }
+        public VerificationException(string message) { }
+        public VerificationException(string message, System.Exception innerException) { }
+    }
+}
+namespace System.Security.Permissions
+{
+    [System.AttributeUsageAttribute((System.AttributeTargets)(109), AllowMultiple=true, Inherited=false)]
+    [System.ObsoleteAttribute("CodeAccessSecurityAttribute is no longer accessible to application code.")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class CodeAccessSecurityAttribute : System.Security.Permissions.SecurityAttribute
+    {
+        protected CodeAccessSecurityAttribute(System.Security.Permissions.SecurityAction action) : base (default(System.Security.Permissions.SecurityAction)) { }
+    }
+    [System.ObsoleteAttribute("SecurityAction is no longer accessible to application code.")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum SecurityAction
+    {
+        Assert = 3,
+        Demand = 2,
+        [System.ObsoleteAttribute("Deny is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
+        Deny = 4,
+        InheritanceDemand = 7,
+        LinkDemand = 6,
+        PermitOnly = 5,
+        [System.ObsoleteAttribute("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
+        RequestMinimum = 8,
+        [System.ObsoleteAttribute("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
+        RequestOptional = 9,
+        [System.ObsoleteAttribute("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
+        RequestRefuse = 10,
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(109), AllowMultiple=true, Inherited=false)]
+    [System.ObsoleteAttribute("SecurityAttribute is no longer accessible to application code.")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class SecurityAttribute : System.Attribute
+    {
+        protected SecurityAttribute(System.Security.Permissions.SecurityAction action) { }
+        public System.Security.Permissions.SecurityAction Action { get { return default(System.Security.Permissions.SecurityAction); } set { } }
+        public bool Unrestricted { get { return default(bool); } set { } }
+    }
+    [System.AttributeUsageAttribute((System.AttributeTargets)(109), AllowMultiple=true, Inherited=false)]
+    [System.ObsoleteAttribute("SecurityPermissionAttribute is no longer accessible to application code.")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class SecurityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
+    {
+        public SecurityPermissionAttribute(System.Security.Permissions.SecurityAction action) : base (default(System.Security.Permissions.SecurityAction)) { }
+        public bool ControlAppDomain { get { return default(bool); } set { } }
+        public bool ControlDomainPolicy { get { return default(bool); } set { } }
+        public bool ControlEvidence { get { return default(bool); } set { } }
+        public bool ControlPolicy { get { return default(bool); } set { } }
+        public bool ControlThread { get { return default(bool); } set { } }
+        public System.Security.Permissions.SecurityPermissionFlag Flags { get { return default(System.Security.Permissions.SecurityPermissionFlag); } set { } }
+        public bool SkipVerification { get { return default(bool); } set { } }
+        public bool UnmanagedCode { get { return default(bool); } set { } }
+    }
+    [System.FlagsAttribute]
+    [System.ObsoleteAttribute("SecurityPermissionFlag is no longer accessible to application code.")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum SecurityPermissionFlag
+    {
+        AllFlags = 16383,
+        Assertion = 1,
+        BindingRedirects = 8192,
+        ControlAppDomain = 1024,
+        ControlDomainPolicy = 256,
+        ControlEvidence = 32,
+        ControlPolicy = 64,
+        ControlPrincipal = 512,
+        ControlThread = 16,
+        Execution = 8,
+        Infrastructure = 4096,
+        NoFlags = 0,
+        RemotingConfiguration = 2048,
+        SerializationFormatter = 128,
+        SkipVerification = 4,
+        UnmanagedCode = 2,
+    }
+}
+namespace System.Security.Principal
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IIdentity
+    {
+        string AuthenticationType { get; }
+        bool IsAuthenticated { get; }
+        string Name { get; }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial interface IPrincipal
+    {
+        System.Security.Principal.IIdentity Identity { get; }
+        bool IsInRole(string role);
+    }
+    public enum TokenImpersonationLevel
+    {
+        Anonymous = 1,
+        Delegation = 4,
+        Identification = 2,
+        Impersonation = 3,
+        None = 0,
+    }
+}
+namespace System.Text
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ASCIIEncoding : System.Text.Encoding
+    {
+        public ASCIIEncoding() { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override bool IsSingleByte { get { return default(bool); } }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetByteCount(char* chars, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetByteCount(char[] chars, int index, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetByteCount(string chars) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetBytes(string chars, int charIndex, int charCount, byte[] bytes, int byteIndex) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetCharCount(byte* bytes, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetCharCount(byte[] bytes, int index, int count) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int charCount) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Text.Decoder GetDecoder() { return default(System.Text.Decoder); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Text.Encoder GetEncoder() { return default(System.Text.Encoder); }
+        public override int GetMaxByteCount(int charCount) { return default(int); }
+        public override int GetMaxCharCount(int byteCount) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string GetString(byte[] bytes, int byteIndex, int byteCount) { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Decoder
+    {
+        protected Decoder() { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public System.Text.DecoderFallback Fallback { get { return default(System.Text.DecoderFallback); } set { } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public System.Text.DecoderFallbackBuffer FallbackBuffer { get { return default(System.Text.DecoderFallbackBuffer); } }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe virtual void Convert(byte* bytes, int byteCount, char* chars, int charCount, bool flush, out int bytesUsed, out int charsUsed, out bool completed) { bytesUsed = default(int); charsUsed = default(int); completed = default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual void Convert(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, int charCount, bool flush, out int bytesUsed, out int charsUsed, out bool completed) { bytesUsed = default(int); charsUsed = default(int); completed = default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe virtual int GetCharCount(byte* bytes, int count, bool flush) { return default(int); }
+        public abstract int GetCharCount(byte[] bytes, int index, int count);
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual int GetCharCount(byte[] bytes, int index, int count, bool flush) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush) { return default(int); }
+        public abstract int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex);
+        public virtual int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, bool flush) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual void Reset() { }
+    }
+    public sealed partial class DecoderExceptionFallback : System.Text.DecoderFallback
+    {
+        public DecoderExceptionFallback() { }
+        public override int MaxCharCount { get { return default(int); } }
+        public override System.Text.DecoderFallbackBuffer CreateFallbackBuffer() { return default(System.Text.DecoderFallbackBuffer); }
+        public override bool Equals(object value) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+    }
+    public abstract partial class DecoderFallback
+    {
+        protected DecoderFallback() { }
+        public static System.Text.DecoderFallback ExceptionFallback { get { return default(System.Text.DecoderFallback); } }
+        public abstract int MaxCharCount { get; }
+        public static System.Text.DecoderFallback ReplacementFallback { get { return default(System.Text.DecoderFallback); } }
+        public abstract System.Text.DecoderFallbackBuffer CreateFallbackBuffer();
+    }
+    public abstract partial class DecoderFallbackBuffer
+    {
+        protected DecoderFallbackBuffer() { }
+        public abstract int Remaining { get; }
+        public abstract bool Fallback(byte[] bytesUnknown, int index);
+        public abstract char GetNextChar();
+        public abstract bool MovePrevious();
+        public virtual void Reset() { }
+    }
+    public sealed partial class DecoderFallbackException : System.ArgumentException
+    {
+        public DecoderFallbackException() { }
+        public DecoderFallbackException(string message) { }
+        public DecoderFallbackException(string message, byte[] bytesUnknown, int index) { }
+        public DecoderFallbackException(string message, System.Exception innerException) { }
+        public byte[] BytesUnknown { get { return default(byte[]); } }
+        public int Index { get { return default(int); } }
+    }
+    public sealed partial class DecoderReplacementFallback : System.Text.DecoderFallback
+    {
+        public DecoderReplacementFallback() { }
+        public DecoderReplacementFallback(string replacement) { }
+        public string DefaultString { get { return default(string); } }
+        public override int MaxCharCount { get { return default(int); } }
+        public override System.Text.DecoderFallbackBuffer CreateFallbackBuffer() { return default(System.Text.DecoderFallbackBuffer); }
+        public override bool Equals(object value) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Encoder
+    {
+        protected Encoder() { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public System.Text.EncoderFallback Fallback { get { return default(System.Text.EncoderFallback); } set { } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public System.Text.EncoderFallbackBuffer FallbackBuffer { get { return default(System.Text.EncoderFallbackBuffer); } }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe virtual void Convert(char* chars, int charCount, byte* bytes, int byteCount, bool flush, out int charsUsed, out int bytesUsed, out bool completed) { charsUsed = default(int); bytesUsed = default(int); completed = default(bool); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual void Convert(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex, int byteCount, bool flush, out int charsUsed, out int bytesUsed, out bool completed) { charsUsed = default(int); bytesUsed = default(int); completed = default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe virtual int GetByteCount(char* chars, int count, bool flush) { return default(int); }
+        public abstract int GetByteCount(char[] chars, int index, int count, bool flush);
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe virtual int GetBytes(char* chars, int charCount, byte* bytes, int byteCount, bool flush) { return default(int); }
+        public abstract int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex, bool flush);
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual void Reset() { }
+    }
+    public sealed partial class EncoderExceptionFallback : System.Text.EncoderFallback
+    {
+        public EncoderExceptionFallback() { }
+        public override int MaxCharCount { get { return default(int); } }
+        public override System.Text.EncoderFallbackBuffer CreateFallbackBuffer() { return default(System.Text.EncoderFallbackBuffer); }
+        public override bool Equals(object value) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+    }
+    public abstract partial class EncoderFallback
+    {
+        protected EncoderFallback() { }
+        public static System.Text.EncoderFallback ExceptionFallback { get { return default(System.Text.EncoderFallback); } }
+        public abstract int MaxCharCount { get; }
+        public static System.Text.EncoderFallback ReplacementFallback { get { return default(System.Text.EncoderFallback); } }
+        public abstract System.Text.EncoderFallbackBuffer CreateFallbackBuffer();
+    }
+    public abstract partial class EncoderFallbackBuffer
+    {
+        protected EncoderFallbackBuffer() { }
+        public abstract int Remaining { get; }
+        public abstract bool Fallback(char charUnknownHigh, char charUnknownLow, int index);
+        public abstract bool Fallback(char charUnknown, int index);
+        public abstract char GetNextChar();
+        public abstract bool MovePrevious();
+        public virtual void Reset() { }
+    }
+    public sealed partial class EncoderFallbackException : System.ArgumentException
+    {
+        public EncoderFallbackException() { }
+        public EncoderFallbackException(string message) { }
+        public EncoderFallbackException(string message, System.Exception innerException) { }
+        public char CharUnknown { get { return default(char); } }
+        public char CharUnknownHigh { get { return default(char); } }
+        public char CharUnknownLow { get { return default(char); } }
+        public int Index { get { return default(int); } }
+        public bool IsUnknownSurrogate() { return default(bool); }
+    }
+    public sealed partial class EncoderReplacementFallback : System.Text.EncoderFallback
+    {
+        public EncoderReplacementFallback() { }
+        public EncoderReplacementFallback(string replacement) { }
+        public string DefaultString { get { return default(string); } }
+        public override int MaxCharCount { get { return default(int); } }
+        public override System.Text.EncoderFallbackBuffer CreateFallbackBuffer() { return default(System.Text.EncoderFallbackBuffer); }
+        public override bool Equals(object value) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class Encoding
+    {
+        protected Encoding() { }
+        protected Encoding(int codePage) { }
+        protected Encoding(int codePage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) { }
+        public static System.Text.Encoding ASCII { get { return default(System.Text.Encoding); } }
+        public static System.Text.Encoding BigEndianUnicode { get { return default(System.Text.Encoding); } }
+        public virtual int CodePage { get { return default(int); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public System.Text.DecoderFallback DecoderFallback { get { return default(System.Text.DecoderFallback); } set { } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public System.Text.EncoderFallback EncoderFallback { get { return default(System.Text.EncoderFallback); } set { } }
+        public virtual string EncodingName { get { return default(string); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual bool IsSingleByte { get { return default(bool); } }
+        public static System.Text.Encoding Unicode { get { return default(System.Text.Encoding); } }
+        public static System.Text.Encoding UTF32 { get { return default(System.Text.Encoding); } }
+        public static System.Text.Encoding UTF7 { get { return default(System.Text.Encoding); } }
+        public static System.Text.Encoding UTF8 { get { return default(System.Text.Encoding); } }
+        public virtual string WebName { get { return default(string); } }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public virtual object Clone() { return default(object); }
+        public static byte[] Convert(System.Text.Encoding srcEncoding, System.Text.Encoding dstEncoding, byte[] bytes) { return default(byte[]); }
+        public static byte[] Convert(System.Text.Encoding srcEncoding, System.Text.Encoding dstEncoding, byte[] bytes, int index, int count) { return default(byte[]); }
+        public override bool Equals(object value) { return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe virtual int GetByteCount(char* chars, int count) { return default(int); }
+        public virtual int GetByteCount(char[] chars) { return default(int); }
+        public abstract int GetByteCount(char[] chars, int index, int count);
+        public virtual int GetByteCount(string s) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe virtual int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) { return default(int); }
+        public virtual byte[] GetBytes(char[] chars) { return default(byte[]); }
+        public virtual byte[] GetBytes(char[] chars, int index, int count) { return default(byte[]); }
+        public abstract int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex);
+        public virtual byte[] GetBytes(string s) { return default(byte[]); }
+        public virtual int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe virtual int GetCharCount(byte* bytes, int count) { return default(int); }
+        public virtual int GetCharCount(byte[] bytes) { return default(int); }
+        public abstract int GetCharCount(byte[] bytes, int index, int count);
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount) { return default(int); }
+        public virtual char[] GetChars(byte[] bytes) { return default(char[]); }
+        public virtual char[] GetChars(byte[] bytes, int index, int count) { return default(char[]); }
+        public abstract int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex);
+        public virtual System.Text.Decoder GetDecoder() { return default(System.Text.Decoder); }
+        public virtual System.Text.Encoder GetEncoder() { return default(System.Text.Encoder); }
+        public static System.Text.Encoding GetEncoding(int codepage) { return default(System.Text.Encoding); }
+        public static System.Text.Encoding GetEncoding(int codepage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) { return default(System.Text.Encoding); }
+        public static System.Text.Encoding GetEncoding(string name) { return default(System.Text.Encoding); }
+        public static System.Text.Encoding GetEncoding(string name, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) { return default(System.Text.Encoding); }
+        public override int GetHashCode() { return default(int); }
+        public abstract int GetMaxByteCount(int charCount);
+        public abstract int GetMaxCharCount(int byteCount);
+        public virtual byte[] GetPreamble() { return default(byte[]); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe string GetString(byte* bytes, int byteCount) { return default(string); }
+        public virtual string GetString(byte[] bytes) { return default(string); }
+        public virtual string GetString(byte[] bytes, int index, int count) { return default(string); }
+        public static void RegisterProvider(System.Text.EncodingProvider provider) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class EncodingProvider
+    {
+        public EncodingProvider() { }
+        public abstract System.Text.Encoding GetEncoding(int codepage);
+        public virtual System.Text.Encoding GetEncoding(int codepage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) { return default(System.Text.Encoding); }
+        public abstract System.Text.Encoding GetEncoding(string name);
+        public virtual System.Text.Encoding GetEncoding(string name, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback) { return default(System.Text.Encoding); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class StringBuilder
+    {
+        public StringBuilder() { }
+        public StringBuilder(int capacity) { }
+        public StringBuilder(int capacity, int maxCapacity) { }
+        public StringBuilder(string value) { }
+        public StringBuilder(string value, int capacity) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public StringBuilder(string value, int startIndex, int length, int capacity) { }
+        public int Capacity { get { return default(int); } set { } }
+        [System.Runtime.CompilerServices.IndexerName("Chars")]
+        public char this[int index] { get { return default(char); } set { } }
+        public int Length { get { return default(int); } set { } }
+        public int MaxCapacity { get { return default(int); } }
+        public System.Text.StringBuilder Append(bool value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Append(byte value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Append(char value) { return default(System.Text.StringBuilder); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe System.Text.StringBuilder Append(char* value, int valueCount) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Append(char value, int repeatCount) { return default(System.Text.StringBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Text.StringBuilder Append(char[] value) { return default(System.Text.StringBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Text.StringBuilder Append(char[] value, int startIndex, int charCount) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Append(decimal value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Append(double value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Append(short value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Append(int value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Append(long value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Append(object value) { return default(System.Text.StringBuilder); }
+        [System.CLSCompliantAttribute(false)]
+        public System.Text.StringBuilder Append(sbyte value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Append(float value) { return default(System.Text.StringBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Text.StringBuilder Append(string value) { return default(System.Text.StringBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Text.StringBuilder Append(string value, int startIndex, int count) { return default(System.Text.StringBuilder); }
+        [System.CLSCompliantAttribute(false)]
+        public System.Text.StringBuilder Append(ushort value) { return default(System.Text.StringBuilder); }
+        [System.CLSCompliantAttribute(false)]
+        public System.Text.StringBuilder Append(uint value) { return default(System.Text.StringBuilder); }
+        [System.CLSCompliantAttribute(false)]
+        public System.Text.StringBuilder Append(ulong value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, object arg0) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, object arg0, object arg1) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, object arg0, object arg1, object arg2) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder AppendFormat(System.IFormatProvider provider, string format, params object[] args) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder AppendFormat(string format, object arg0) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder AppendFormat(string format, object arg0, object arg1) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder AppendFormat(string format, object arg0, object arg1, object arg2) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder AppendFormat(string format, params object[] args) { return default(System.Text.StringBuilder); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public System.Text.StringBuilder AppendLine() { return default(System.Text.StringBuilder); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public System.Text.StringBuilder AppendLine(string value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Clear() { return default(System.Text.StringBuilder); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count) { }
+        public int EnsureCapacity(int capacity) { return default(int); }
+        public bool Equals(System.Text.StringBuilder sb) { return default(bool); }
+        public System.Text.StringBuilder Insert(int index, bool value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Insert(int index, byte value) { return default(System.Text.StringBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Text.StringBuilder Insert(int index, char value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Insert(int index, char[] value) { return default(System.Text.StringBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Text.StringBuilder Insert(int index, char[] value, int startIndex, int charCount) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Insert(int index, decimal value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Insert(int index, double value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Insert(int index, short value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Insert(int index, int value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Insert(int index, long value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Insert(int index, object value) { return default(System.Text.StringBuilder); }
+        [System.CLSCompliantAttribute(false)]
+        public System.Text.StringBuilder Insert(int index, sbyte value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Insert(int index, float value) { return default(System.Text.StringBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Text.StringBuilder Insert(int index, string value) { return default(System.Text.StringBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public System.Text.StringBuilder Insert(int index, string value, int count) { return default(System.Text.StringBuilder); }
+        [System.CLSCompliantAttribute(false)]
+        public System.Text.StringBuilder Insert(int index, ushort value) { return default(System.Text.StringBuilder); }
+        [System.CLSCompliantAttribute(false)]
+        public System.Text.StringBuilder Insert(int index, uint value) { return default(System.Text.StringBuilder); }
+        [System.CLSCompliantAttribute(false)]
+        public System.Text.StringBuilder Insert(int index, ulong value) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Remove(int startIndex, int length) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Replace(char oldChar, char newChar) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Replace(char oldChar, char newChar, int startIndex, int count) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Replace(string oldValue, string newValue) { return default(System.Text.StringBuilder); }
+        public System.Text.StringBuilder Replace(string oldValue, string newValue, int startIndex, int count) { return default(System.Text.StringBuilder); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string ToString() { return default(string); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public string ToString(int startIndex, int length) { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class UnicodeEncoding : System.Text.Encoding
+    {
+        public UnicodeEncoding() { }
+        public UnicodeEncoding(bool bigEndian, bool byteOrderMark) { }
+        public UnicodeEncoding(bool bigEndian, bool byteOrderMark, bool throwOnInvalidBytes) { }
+        public override bool Equals(object value) { return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetByteCount(char* chars, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetByteCount(char[] chars, int index, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetByteCount(string s) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetCharCount(byte* bytes, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetCharCount(byte[] bytes, int index, int count) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int charCount) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) { return default(int); }
+        public override System.Text.Decoder GetDecoder() { return default(System.Text.Decoder); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override System.Text.Encoder GetEncoder() { return default(System.Text.Encoder); }
+        public override int GetHashCode() { return default(int); }
+        public override int GetMaxByteCount(int charCount) { return default(int); }
+        public override int GetMaxCharCount(int byteCount) { return default(int); }
+        public override byte[] GetPreamble() { return default(byte[]); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string GetString(byte[] bytes, int index, int count) { return default(string); }
+    }
+    public sealed partial class UTF32Encoding : System.Text.Encoding
+    {
+        public UTF32Encoding() { }
+        public UTF32Encoding(bool bigEndian, bool byteOrderMark) { }
+        public UTF32Encoding(bool bigEndian, bool byteOrderMark, bool throwOnInvalidCharacters) { }
+        public override bool Equals(object value) { return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetByteCount(char* chars, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetByteCount(char[] chars, int index, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetByteCount(string s) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetCharCount(byte* bytes, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetCharCount(byte[] bytes, int index, int count) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int charCount) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) { return default(int); }
+        public override System.Text.Decoder GetDecoder() { return default(System.Text.Decoder); }
+        public override System.Text.Encoder GetEncoder() { return default(System.Text.Encoder); }
+        public override int GetHashCode() { return default(int); }
+        public override int GetMaxByteCount(int charCount) { return default(int); }
+        public override int GetMaxCharCount(int byteCount) { return default(int); }
+        public override byte[] GetPreamble() { return default(byte[]); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string GetString(byte[] bytes, int index, int count) { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class UTF7Encoding : System.Text.Encoding
+    {
+        public UTF7Encoding() { }
+        public UTF7Encoding(bool allowOptionals) { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override bool Equals(object value) { return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetByteCount(char* chars, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetByteCount(char[] chars, int index, int count) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetByteCount(string s) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetCharCount(byte* bytes, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetCharCount(byte[] bytes, int index, int count) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int charCount) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) { return default(int); }
+        public override System.Text.Decoder GetDecoder() { return default(System.Text.Decoder); }
+        public override System.Text.Encoder GetEncoder() { return default(System.Text.Encoder); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetHashCode() { return default(int); }
+        public override int GetMaxByteCount(int charCount) { return default(int); }
+        public override int GetMaxCharCount(int byteCount) { return default(int); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string GetString(byte[] bytes, int index, int count) { return default(string); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class UTF8Encoding : System.Text.Encoding
+    {
+        public UTF8Encoding() { }
+        public UTF8Encoding(bool encoderShouldEmitUTF8Identifier) { }
+        public UTF8Encoding(bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes) { }
+        public override bool Equals(object value) { return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetByteCount(char* chars, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetByteCount(char[] chars, int index, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetByteCount(string chars) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetCharCount(byte* bytes, int count) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetCharCount(byte[] bytes, int index, int count) { return default(int); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int charCount) { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) { return default(int); }
+        public override System.Text.Decoder GetDecoder() { return default(System.Text.Decoder); }
+        public override System.Text.Encoder GetEncoder() { return default(System.Text.Encoder); }
+        public override int GetHashCode() { return default(int); }
+        public override int GetMaxByteCount(int charCount) { return default(int); }
+        public override int GetMaxCharCount(int byteCount) { return default(int); }
+        public override byte[] GetPreamble() { return default(byte[]); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public override string GetString(byte[] bytes, int index, int count) { return default(string); }
+    }
+}
+namespace System.Threading
+{
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public partial class AbandonedMutexException : System.SystemException
+    {
+        public AbandonedMutexException() { }
+        public AbandonedMutexException(int location, System.Threading.WaitHandle handle) { }
+        public AbandonedMutexException(string message) { }
+        public AbandonedMutexException(string message, System.Exception inner) { }
+        public AbandonedMutexException(string message, System.Exception inner, int location, System.Threading.WaitHandle handle) { }
+        public AbandonedMutexException(string message, int location, System.Threading.WaitHandle handle) { }
+        public System.Threading.Mutex Mutex { get { return default(System.Threading.Mutex); } }
+        public int MutexIndex { get { return default(int); } }
+    }
+    public sealed partial class AsyncLocal<T>
+    {
+        public AsyncLocal() { }
+        [System.Security.SecurityCriticalAttribute]
+        public AsyncLocal(System.Action<System.Threading.AsyncLocalValueChangedArgs<T>> valueChangedHandler) { }
+        public T Value { [System.Security.SecuritySafeCriticalAttribute]get { return default(T); } [System.Security.SecuritySafeCriticalAttribute]set { } }
+    }
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct AsyncLocalValueChangedArgs<T>
+    {
+        public T CurrentValue { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(T); } }
+        public T PreviousValue { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(T); } }
+        public bool ThreadContextChanged { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { return default(bool); } }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class AutoResetEvent : System.Threading.EventWaitHandle
+    {
+        public AutoResetEvent(bool initialState) : base (default(bool), default(System.Threading.EventResetMode)) { }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("IsCancellationRequested = {IsCancellationRequested}")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct CancellationToken
+    {
+        public CancellationToken(bool canceled) { throw new System.NotImplementedException(); }
+        public bool CanBeCanceled { get { return default(bool); } }
+        public bool IsCancellationRequested { get { return default(bool); } }
+        public static System.Threading.CancellationToken None { get { return default(System.Threading.CancellationToken); } }
+        public System.Threading.WaitHandle WaitHandle { get { return default(System.Threading.WaitHandle); } }
+        public override bool Equals(object other) { return default(bool); }
+        public bool Equals(System.Threading.CancellationToken other) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Threading.CancellationToken left, System.Threading.CancellationToken right) { return default(bool); }
+        public static bool operator !=(System.Threading.CancellationToken left, System.Threading.CancellationToken right) { return default(bool); }
+        public System.Threading.CancellationTokenRegistration Register(System.Action callback) { return default(System.Threading.CancellationTokenRegistration); }
+        public System.Threading.CancellationTokenRegistration Register(System.Action callback, bool useSynchronizationContext) { return default(System.Threading.CancellationTokenRegistration); }
+        public System.Threading.CancellationTokenRegistration Register(System.Action<object> callback, object state) { return default(System.Threading.CancellationTokenRegistration); }
+        public System.Threading.CancellationTokenRegistration Register(System.Action<object> callback, object state, bool useSynchronizationContext) { return default(System.Threading.CancellationTokenRegistration); }
+        public void ThrowIfCancellationRequested() { }
+    }
+    
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct CancellationTokenRegistration : System.IDisposable, System.IEquatable<System.Threading.CancellationTokenRegistration>
+    {
+        public void Dispose() { }
+        public override bool Equals(object obj) { return default(bool); }
+        public bool Equals(System.Threading.CancellationTokenRegistration other) { return default(bool); }
+        public override int GetHashCode() { return default(int); }
+        public static bool operator ==(System.Threading.CancellationTokenRegistration left, System.Threading.CancellationTokenRegistration right) { return default(bool); }
+        public static bool operator !=(System.Threading.CancellationTokenRegistration left, System.Threading.CancellationTokenRegistration right) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    
+    public partial class CancellationTokenSource : System.IDisposable
+    {
+        public CancellationTokenSource() { }
+        public CancellationTokenSource(int millisecondsDelay) { }
+        public CancellationTokenSource(System.TimeSpan delay) { }
+        public bool IsCancellationRequested { get { return default(bool); } }
+        public System.Threading.CancellationToken Token { get { return default(System.Threading.CancellationToken); } }
+        public void Cancel() { }
+        public void Cancel(bool throwOnFirstException) { }
+        public void CancelAfter(int millisecondsDelay) { }
+        public void CancelAfter(System.TimeSpan delay) { }
+        public static System.Threading.CancellationTokenSource CreateLinkedTokenSource(System.Threading.CancellationToken token1, System.Threading.CancellationToken token2) { return default(System.Threading.CancellationTokenSource); }
+        public static System.Threading.CancellationTokenSource CreateLinkedTokenSource(params System.Threading.CancellationToken[] tokens) { return default(System.Threading.CancellationTokenSource); }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Security.SecurityCriticalAttribute]
+    public delegate void ContextCallback(object state);
+    [System.Diagnostics.DebuggerDisplayAttribute("Initial Count={InitialCount}, Current Count={CurrentCount}")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    
+    public partial class CountdownEvent : System.IDisposable
+    {
+        public CountdownEvent(int initialCount) { }
+        public int CurrentCount { get { return default(int); } }
+        public int InitialCount { get { return default(int); } }
+        public bool IsSet { get { return default(bool); } }
+        public System.Threading.WaitHandle WaitHandle { get { return default(System.Threading.WaitHandle); } }
+        public void AddCount() { }
+        public void AddCount(int signalCount) { }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        public void Reset() { }
+        public void Reset(int count) { }
+        public bool Signal() { return default(bool); }
+        public bool Signal(int signalCount) { return default(bool); }
+        public bool TryAddCount() { return default(bool); }
+        public bool TryAddCount(int signalCount) { return default(bool); }
+        public void Wait() { }
+        public bool Wait(int millisecondsTimeout) { return default(bool); }
+        public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) { return default(bool); }
+        public void Wait(System.Threading.CancellationToken cancellationToken) { }
+        public bool Wait(System.TimeSpan timeout) { return default(bool); }
+        public bool Wait(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public enum EventResetMode
+    {
+        AutoReset = 0,
+        ManualReset = 1,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public partial class EventWaitHandle : System.Threading.WaitHandle
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        public EventWaitHandle(bool initialState, System.Threading.EventResetMode mode) { }
+        [System.Security.SecurityCriticalAttribute]
+        public EventWaitHandle(bool initialState, System.Threading.EventResetMode mode, string name) { }
+        [System.Security.SecurityCriticalAttribute]
+        public EventWaitHandle(bool initialState, System.Threading.EventResetMode mode, string name, out bool createdNew) { createdNew = default(bool); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.Threading.EventWaitHandle OpenExisting(string name) { return default(System.Threading.EventWaitHandle); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool Reset() { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool Set() { return default(bool); }
+        [System.Security.SecurityCriticalAttribute]
+        public static bool TryOpenExisting(string name, out System.Threading.EventWaitHandle result) { result = default(System.Threading.EventWaitHandle); return default(bool); }
+    }
+    public sealed partial class ExecutionContext : System.IDisposable
+    {
+        internal ExecutionContext() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Threading.ExecutionContext Capture() { return default(System.Threading.ExecutionContext); }
+        public void Dispose() { }
+        [System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute]
+        [System.Security.SecurityCriticalAttribute]
+        public static void Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) { }
+    }
+    public static partial class Interlocked
+    {
+        
+        public static int Add(ref int location1, int value) { return default(int); }
+        
+        public static long Add(ref long location1, long value) { return default(long); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double CompareExchange(ref double location1, double value, double comparand) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int CompareExchange(ref int location1, int value, int comparand) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static long CompareExchange(ref long location1, long value, long comparand) { return default(long); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.IntPtr CompareExchange(ref System.IntPtr location1, System.IntPtr value, System.IntPtr comparand) { return default(System.IntPtr); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static object CompareExchange(ref object location1, object value, object comparand) { return default(object); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static float CompareExchange(ref float location1, float value, float comparand) { return default(float); }
+        
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static T CompareExchange<T>(ref T location1, T value, T comparand) where T : class { return default(T); }
+        
+        public static int Decrement(ref int location) { return default(int); }
+        public static long Decrement(ref long location) { return default(long); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static double Exchange(ref double location1, double value) { return default(double); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static int Exchange(ref int location1, int value) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static long Exchange(ref long location1, long value) { return default(long); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.IntPtr Exchange(ref System.IntPtr location1, System.IntPtr value) { return default(System.IntPtr); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static object Exchange(ref object location1, object value) { return default(object); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static float Exchange(ref float location1, float value) { return default(float); }
+        
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static T Exchange<T>(ref T location1, T value) where T : class { return default(T); }
+        
+        public static int Increment(ref int location) { return default(int); }
+        
+        public static long Increment(ref long location) { return default(long); }
+        public static void MemoryBarrier() { }
+        public static long Read(ref long location) { return default(long); }
+    }
+    [System.CLSCompliantAttribute(false)]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Security.SecurityCriticalAttribute]
+    public unsafe delegate void IOCompletionCallback(uint errorCode, uint numBytes, System.Threading.NativeOverlapped* pOVERLAP);
+    
+    public static partial class LazyInitializer
+    {
+        public static T EnsureInitialized<T>(ref T target) where T : class { return default(T); }
+        public static T EnsureInitialized<T>(ref T target, ref bool initialized, ref object syncLock) { return default(T); }
+        public static T EnsureInitialized<T>(ref T target, ref bool initialized, ref object syncLock, System.Func<T> valueFactory) { return default(T); }
+        public static T EnsureInitialized<T>(ref T target, System.Func<T> valueFactory) where T : class { return default(T); }
+    }
+    public enum LazyThreadSafetyMode
+    {
+        ExecutionAndPublication = 2,
+        None = 0,
+        PublicationOnly = 1,
+    }
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]
+    
+    public partial class LockRecursionException : System.Exception
+    {
+        public LockRecursionException() { }
+        public LockRecursionException(string message) { }
+        public LockRecursionException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class ManualResetEvent : System.Threading.EventWaitHandle
+    {
+        public ManualResetEvent(bool initialState) : base (default(bool), default(System.Threading.EventResetMode)) { }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Set = {IsSet}")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    
+    public partial class ManualResetEventSlim : System.IDisposable
+    {
+        public ManualResetEventSlim() { }
+        public ManualResetEventSlim(bool initialState) { }
+        public ManualResetEventSlim(bool initialState, int spinCount) { }
+        public bool IsSet { get { return default(bool); } }
+        public int SpinCount { get { return default(int); } }
+        public System.Threading.WaitHandle WaitHandle { get { return default(System.Threading.WaitHandle); } }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        public void Reset() { }
+        public void Set() { }
+        public void Wait() { }
+        public bool Wait(int millisecondsTimeout) { return default(bool); }
+        public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) { return default(bool); }
+        public void Wait(System.Threading.CancellationToken cancellationToken) { }
+        public bool Wait(System.TimeSpan timeout) { return default(bool); }
+        public bool Wait(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public static partial class Monitor
+    {
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static void Enter(object obj) { }
+        public static void Enter(object obj, ref bool lockTaken) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Exit(object obj) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static bool IsEntered(object obj) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Pulse(object obj) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void PulseAll(object obj) { }
+        public static bool TryEnter(object obj) { return default(bool); }
+        public static void TryEnter(object obj, ref bool lockTaken) { }
+        public static bool TryEnter(object obj, int millisecondsTimeout) { return default(bool); }
+        public static void TryEnter(object obj, int millisecondsTimeout, ref bool lockTaken) { }
+        public static bool TryEnter(object obj, System.TimeSpan timeout) { return default(bool); }
+        public static void TryEnter(object obj, System.TimeSpan timeout, ref bool lockTaken) { }
+        public static bool Wait(object obj) { return default(bool); }
+        public static bool Wait(object obj, int millisecondsTimeout) { return default(bool); }
+        public static bool Wait(object obj, System.TimeSpan timeout) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class Mutex : System.Threading.WaitHandle
+    {
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public Mutex() { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public Mutex(bool initiallyOwned) { }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public Mutex(bool initiallyOwned, string name) { }
+        
+        [System.Security.SecurityCriticalAttribute]
+        public Mutex(bool initiallyOwned, string name, out bool createdNew) { createdNew = default(bool); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.Threading.Mutex OpenExisting(string name) { return default(System.Threading.Mutex); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public void ReleaseMutex() { }
+        [System.Security.SecurityCriticalAttribute]
+        public static bool TryOpenExisting(string name, out System.Threading.Mutex result) { result = default(System.Threading.Mutex); return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct NativeOverlapped
+    {
+        public System.IntPtr EventHandle;
+        public System.IntPtr InternalHigh;
+        public System.IntPtr InternalLow;
+        public int OffsetHigh;
+        public int OffsetLow;
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class Overlapped
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        public Overlapped() { }
+        public System.IAsyncResult AsyncResult { get { return default(System.IAsyncResult); } set { } }
+        public int OffsetHigh { get { return default(int); } set { } }
+        public int OffsetLow { get { return default(int); } set { } }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe static void Free(System.Threading.NativeOverlapped* nativeOverlappedPtr) { }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe System.Threading.NativeOverlapped* Pack(System.Threading.IOCompletionCallback iocb, object userData) { return default(System.Threading.NativeOverlapped*); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe static System.Threading.Overlapped Unpack(System.Threading.NativeOverlapped* nativeOverlappedPtr) { return default(System.Threading.Overlapped); }
+        [System.CLSCompliantAttribute(false)]
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        [System.Security.SecurityCriticalAttribute]
+        public unsafe System.Threading.NativeOverlapped* UnsafePack(System.Threading.IOCompletionCallback iocb, object userData) { return default(System.Threading.NativeOverlapped*); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public delegate void ParameterizedThreadStart(object obj);
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class RegisteredWaitHandle
+    {
+        internal RegisteredWaitHandle() { }
+        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public bool Unregister(System.Threading.WaitHandle waitObject) { return default(bool); }
+    }
+    public sealed partial class Semaphore : System.Threading.WaitHandle
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        public Semaphore(int initialCount, int maximumCount) { }
+        [System.Security.SecurityCriticalAttribute]
+        public Semaphore(int initialCount, int maximumCount, string name) { }
+        [System.Security.SecurityCriticalAttribute]
+        public Semaphore(int initialCount, int maximumCount, string name, out bool createdNew) { createdNew = default(bool); }
+        [System.Security.SecurityCriticalAttribute]
+        public static System.Threading.Semaphore OpenExisting(string name) { return default(System.Threading.Semaphore); }
+        public int Release() { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public int Release(int releaseCount) { return default(int); }
+        [System.Security.SecurityCriticalAttribute]
+        public static bool TryOpenExisting(string name, out System.Threading.Semaphore result) { result = default(System.Threading.Semaphore); return default(bool); }
+    }
+    [System.Runtime.CompilerServices.TypeForwardedFromAttribute("System, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public partial class SemaphoreFullException : System.SystemException
+    {
+        public SemaphoreFullException() { }
+        public SemaphoreFullException(string message) { }
+        public SemaphoreFullException(string message, System.Exception innerException) { }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Current Count = {m_currentCount}")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    
+    public partial class SemaphoreSlim : System.IDisposable
+    {
+        public SemaphoreSlim(int initialCount) { }
+        public SemaphoreSlim(int initialCount, int maxCount) { }
+        public System.Threading.WaitHandle AvailableWaitHandle { get { return default(System.Threading.WaitHandle); } }
+        public int CurrentCount { get { return default(int); } }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        public int Release() { return default(int); }
+        public int Release(int releaseCount) { return default(int); }
+        public void Wait() { }
+        public bool Wait(int millisecondsTimeout) { return default(bool); }
+        public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) { return default(bool); }
+        public void Wait(System.Threading.CancellationToken cancellationToken) { }
+        public bool Wait(System.TimeSpan timeout) { return default(bool); }
+        public bool Wait(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) { return default(bool); }
+        public System.Threading.Tasks.Task WaitAsync() { return default(System.Threading.Tasks.Task); }
+        public System.Threading.Tasks.Task<bool> WaitAsync(int millisecondsTimeout) { return default(System.Threading.Tasks.Task<bool>); }
+        public System.Threading.Tasks.Task<bool> WaitAsync(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<bool>); }
+        public System.Threading.Tasks.Task WaitAsync(System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        public System.Threading.Tasks.Task<bool> WaitAsync(System.TimeSpan timeout) { return default(System.Threading.Tasks.Task<bool>); }
+        public System.Threading.Tasks.Task<bool> WaitAsync(System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<bool>); }
+    }
+    public delegate void SendOrPostCallback(object state);
+    [System.Diagnostics.DebuggerDisplayAttribute("IsHeld = {IsHeld}")]
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]   
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct SpinLock
+    {
+        public SpinLock(bool enableThreadOwnerTracking) { throw new System.NotImplementedException(); }
+        public bool IsHeld { get { return default(bool); } }
+        public bool IsHeldByCurrentThread { get { return default(bool); } }
+        public bool IsThreadOwnerTrackingEnabled { get { return default(bool); } }
+        public void Enter(ref bool lockTaken) { }
+        
+        public void Exit() { }
+        
+        public void Exit(bool useMemoryBarrier) { }
+        public void TryEnter(ref bool lockTaken) { }
+        public void TryEnter(int millisecondsTimeout, ref bool lockTaken) { }
+        public void TryEnter(System.TimeSpan timeout, ref bool lockTaken) { }
+    }
+    
+    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+    public partial struct SpinWait
+    {
+        public int Count { get { return default(int); } }
+        public bool NextSpinWillYield { get { return default(bool); } }
+        public void Reset() { }
+        public void SpinOnce() { }
+        public static void SpinUntil(System.Func<bool> condition) { }
+        public static bool SpinUntil(System.Func<bool> condition, int millisecondsTimeout) { return default(bool); }
+        public static bool SpinUntil(System.Func<bool> condition, System.TimeSpan timeout) { return default(bool); }
+    }
+    public partial class SynchronizationContext
+    {
+        public SynchronizationContext() { }
+        public static System.Threading.SynchronizationContext Current { get { return default(System.Threading.SynchronizationContext); } }
+        public virtual System.Threading.SynchronizationContext CreateCopy() { return default(System.Threading.SynchronizationContext); }
+        public virtual void OperationCompleted() { }
+        public virtual void OperationStarted() { }
+        public virtual void Post(System.Threading.SendOrPostCallback d, object state) { }
+        public virtual void Send(System.Threading.SendOrPostCallback d, object state) { }
+        [System.Security.SecurityCriticalAttribute]
+        public static void SetSynchronizationContext(System.Threading.SynchronizationContext syncContext) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class SynchronizationLockException : System.SystemException
+    {
+        public SynchronizationLockException() { }
+        public SynchronizationLockException(string message) { }
+        public SynchronizationLockException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ClassInterfaceAttribute((System.Runtime.InteropServices.ClassInterfaceType)(0))]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject
+    {
+        [System.Security.SecuritySafeCriticalAttribute]
+        public Thread(System.Threading.ParameterizedThreadStart start) { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public Thread(System.Threading.ThreadStart start) { }
+        public System.Globalization.CultureInfo CurrentCulture { get { return default(System.Globalization.CultureInfo); } [System.Security.SecuritySafeCriticalAttribute]set { } }
+        public static System.Threading.Thread CurrentThread { get { return default(System.Threading.Thread); } }
+        public System.Globalization.CultureInfo CurrentUICulture { get { return default(System.Globalization.CultureInfo); } [System.Security.SecuritySafeCriticalAttribute]set { } }
+        public bool IsAlive { [System.Security.SecuritySafeCriticalAttribute][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(bool); } }
+        public bool IsBackground { [System.Security.SecuritySafeCriticalAttribute]get { return default(bool); } [System.Security.SecuritySafeCriticalAttribute]set { } }
+        public int ManagedThreadId { [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)]get { return default(int); } }
+        public string Name { get { return default(string); } [System.Security.SecuritySafeCriticalAttribute]set { } }
+        public System.Threading.ThreadState ThreadState { [System.Security.SecuritySafeCriticalAttribute]get { return default(System.Threading.ThreadState); } }
+        ~Thread() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.AppDomain GetDomain() { return default(System.AppDomain); }
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public override int GetHashCode() { return default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        
+        public void Join() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        
+        public bool Join(int millisecondsTimeout) { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+        public static void MemoryBarrier() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Sleep(int millisecondsTimeout) { }
+        public static void Sleep(System.TimeSpan timeout) { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        
+        public static void SpinWait(int iterations) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+        public void Start() { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
+        public void Start(object parameter) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public sealed partial class ThreadAbortException : System.SystemException
+    {
+        internal ThreadAbortException() { }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("IsValueCreated={IsValueCreated}, Value={ValueForDebugDisplay}, Count={ValuesCountForDebugDisplay}")]
+    public partial class ThreadLocal<T> : System.IDisposable
+    {
+        public ThreadLocal() { }
+        public ThreadLocal(bool trackAllValues) { }
+        public ThreadLocal(System.Func<T> valueFactory) { }
+        public ThreadLocal(System.Func<T> valueFactory, bool trackAllValues) { }
+        public bool IsValueCreated { get { return default(bool); } }
+        [System.Diagnostics.DebuggerBrowsableAttribute((System.Diagnostics.DebuggerBrowsableState)(0))]
+        public T Value { get { return default(T); } set { } }
+        public System.Collections.Generic.IList<T> Values { get { return default(System.Collections.Generic.IList<T>); } }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        ~ThreadLocal() { }
+        public override string ToString() { return default(string); }
+    }
+    
+    public static partial class ThreadPool
+    {
+        [System.Security.SecurityCriticalAttribute]
+        [System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, Flags=(System.Security.Permissions.SecurityPermissionFlag)(2))]
+        public static bool BindHandle(System.Runtime.InteropServices.SafeHandle osHandle) { return default(bool); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void GetMaxThreads(out int workerThreads, out int completionPortThreads) { workerThreads = default(int); completionPortThreads = default(int); }
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void GetMinThreads(out int workerThreads, out int completionPortThreads) { workerThreads = default(int); completionPortThreads = default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static bool QueueUserWorkItem(System.Threading.WaitCallback callBack) { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static bool QueueUserWorkItem(System.Threading.WaitCallback callBack, object state) { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, int millisecondsTimeOutInterval, bool executeOnlyOnce) { return default(System.Threading.RegisteredWaitHandle); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, long millisecondsTimeOutInterval, bool executeOnlyOnce) { return default(System.Threading.RegisteredWaitHandle); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, System.TimeSpan timeout, bool executeOnlyOnce) { return default(System.Threading.RegisteredWaitHandle); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static System.Threading.RegisteredWaitHandle RegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce) { return default(System.Threading.RegisteredWaitHandle); }
+        [System.Security.SecurityCriticalAttribute]
+        [System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, ControlThread=true)]
+        public static bool SetMaxThreads(int workerThreads, int completionPortThreads) { return default(bool); }
+        [System.Security.SecurityCriticalAttribute]
+        [System.Security.Permissions.SecurityPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, ControlThread=true)]
+        public static bool SetMinThreads(int workerThreads, int completionPortThreads) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public delegate void ThreadStart();
+    public sealed partial class ThreadStartException : System.SystemException
+    {
+        internal ThreadStartException() { }
+    }
+    [System.FlagsAttribute]
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public enum ThreadState
+    {
+        Aborted = 256,
+        AbortRequested = 128,
+        Background = 4,
+        Running = 0,
+        Stopped = 16,
+        StopRequested = 1,
+        Suspended = 64,
+        SuspendRequested = 2,
+        Unstarted = 8,
+        WaitSleepJoin = 32,
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public partial class ThreadStateException : System.SystemException
+    {
+        public ThreadStateException() { }
+        public ThreadStateException(string message) { }
+        public ThreadStateException(string message, System.Exception innerException) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public static partial class Timeout
+    {
+        public const int Infinite = -1;
+        [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+        public static readonly System.TimeSpan InfiniteTimeSpan;
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    
+    public sealed partial class Timer : System.IDisposable
+    {
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public Timer(System.Threading.TimerCallback callback) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public Timer(System.Threading.TimerCallback callback, object state, int dueTime, int period) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public Timer(System.Threading.TimerCallback callback, object state, long dueTime, long period) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.Security.SecuritySafeCriticalAttribute]
+        public Timer(System.Threading.TimerCallback callback, object state, System.TimeSpan dueTime, System.TimeSpan period) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)][System.CLSCompliantAttribute(false)]
+        [System.Security.SecuritySafeCriticalAttribute]
+        public Timer(System.Threading.TimerCallback callback, object state, uint dueTime, uint period) { }
+        public bool Change(int dueTime, int period) { return default(bool); }
+        public bool Change(long dueTime, long period) { return default(bool); }
+        public bool Change(System.TimeSpan dueTime, System.TimeSpan period) { return default(bool); }
+        [System.CLSCompliantAttribute(false)]
+        public bool Change(uint dueTime, uint period) { return default(bool); }
+        public void Dispose() { }
+        public bool Dispose(System.Threading.WaitHandle notifyObject) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public delegate void TimerCallback(object state);
+    public static partial class Volatile
+    {
+        
+        public static bool Read(ref bool location) { return default(bool); }
+        
+        public static byte Read(ref byte location) { return default(byte); }
+        
+        public static double Read(ref double location) { return default(double); }
+        
+        public static short Read(ref short location) { return default(short); }
+        
+        public static int Read(ref int location) { return default(int); }
+        
+        public static long Read(ref long location) { return default(long); }
+        
+        public static System.IntPtr Read(ref System.IntPtr location) { return default(System.IntPtr); }
+        [System.CLSCompliantAttribute(false)]
+        
+        public static sbyte Read(ref sbyte location) { return default(sbyte); }
+        
+        public static float Read(ref float location) { return default(float); }
+        [System.CLSCompliantAttribute(false)]
+        
+        public static ushort Read(ref ushort location) { return default(ushort); }
+        [System.CLSCompliantAttribute(false)]
+        
+        public static uint Read(ref uint location) { return default(uint); }
+        [System.CLSCompliantAttribute(false)]
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static ulong Read(ref ulong location) { return default(ulong); }
+        [System.CLSCompliantAttribute(false)]
+        
+        public static System.UIntPtr Read(ref System.UIntPtr location) { return default(System.UIntPtr); }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static T Read<T>(ref T location) where T : class { return default(T); }
+        
+        public static void Write(ref bool location, bool value) { }
+        
+        public static void Write(ref byte location, byte value) { }
+        
+        public static void Write(ref double location, double value) { }
+        
+        public static void Write(ref short location, short value) { }
+        
+        public static void Write(ref int location, int value) { }
+        
+        public static void Write(ref long location, long value) { }
+        
+        public static void Write(ref System.IntPtr location, System.IntPtr value) { }
+        [System.CLSCompliantAttribute(false)]
+        
+        public static void Write(ref sbyte location, sbyte value) { }
+        
+        public static void Write(ref float location, float value) { }
+        [System.CLSCompliantAttribute(false)]
+        
+        public static void Write(ref ushort location, ushort value) { }
+        [System.CLSCompliantAttribute(false)]
+        
+        public static void Write(ref uint location, uint value) { }
+        [System.CLSCompliantAttribute(false)]
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Write(ref ulong location, ulong value) { }
+        [System.CLSCompliantAttribute(false)]
+        
+        public static void Write(ref System.UIntPtr location, System.UIntPtr value) { }
+        
+        [System.Security.SecuritySafeCriticalAttribute]
+        public static void Write<T>(ref T location, T value) where T : class { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public delegate void WaitCallback(object state);
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public abstract partial class WaitHandle : System.IDisposable
+    {
+        protected static readonly System.IntPtr InvalidHandle;
+        public const int WaitTimeout = 258;
+        protected WaitHandle() { }
+        public Microsoft.Win32.SafeHandles.SafeWaitHandle SafeWaitHandle { get { return default(Microsoft.Win32.SafeHandles.SafeWaitHandle); } set { } }
+        public virtual void Close() { }
+        public void Dispose() { }
+        [System.Security.SecuritySafeCriticalAttribute]
+        protected virtual void Dispose(bool explicitDisposing) { }
+        public static bool WaitAll(System.Threading.WaitHandle[] waitHandles) { return default(bool); }
+        public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout) { return default(bool); }
+        public static bool WaitAll(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout) { return default(bool); }
+        
+        public static int WaitAny(System.Threading.WaitHandle[] waitHandles) { return default(int); }
+        
+        public static int WaitAny(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout) { return default(int); }
+        
+        public static int WaitAny(System.Threading.WaitHandle[] waitHandles, System.TimeSpan timeout) { return default(int); }
+        public virtual bool WaitOne() { return default(bool); }
+        public virtual bool WaitOne(int millisecondsTimeout) { return default(bool); }
+        public virtual bool WaitOne(System.TimeSpan timeout) { return default(bool); }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(false)]
+    public partial class WaitHandleCannotBeOpenedException : System.Exception
+    {
+        public WaitHandleCannotBeOpenedException() { }
+        public WaitHandleCannotBeOpenedException(string message) { }
+        public WaitHandleCannotBeOpenedException(string message, System.Exception innerException) { }
+    }
+    public static partial class WaitHandleExtensions
+    {
+        [System.Security.SecurityCriticalAttribute]
+        public static Microsoft.Win32.SafeHandles.SafeWaitHandle GetSafeWaitHandle(this System.Threading.WaitHandle waitHandle) { return default(Microsoft.Win32.SafeHandles.SafeWaitHandle); }
+        [System.Security.SecurityCriticalAttribute]
+        public static void SetSafeWaitHandle(this System.Threading.WaitHandle waitHandle, Microsoft.Win32.SafeHandles.SafeWaitHandle value) { }
+    }
+    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
+    public delegate void WaitOrTimerCallback(object state, bool timedOut);
+}
+namespace System.Threading.Tasks
+{
+    [System.Diagnostics.DebuggerDisplayAttribute("Concurrent={ConcurrentTaskCountForDebugger}, Exclusive={ExclusiveTaskCountForDebugger}, Mode={ModeForDebugger}")]   
+    public partial class ConcurrentExclusiveSchedulerPair
+    {
+        public ConcurrentExclusiveSchedulerPair() { }
+        public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler) { }
+        public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler, int maxConcurrencyLevel) { }
+        public ConcurrentExclusiveSchedulerPair(System.Threading.Tasks.TaskScheduler taskScheduler, int maxConcurrencyLevel, int maxItemsPerTask) { }
+        public System.Threading.Tasks.Task Completion { get { return default(System.Threading.Tasks.Task); } }
+        public System.Threading.Tasks.TaskScheduler ConcurrentScheduler { get { return default(System.Threading.Tasks.TaskScheduler); } }
+        public System.Threading.Tasks.TaskScheduler ExclusiveScheduler { get { return default(System.Threading.Tasks.TaskScheduler); } }
+        public void Complete() { }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Id = {Id}, Status = {Status}, Method = {DebuggerDisplayMethodDescription}")]
+   
+    public partial class Task : System.IAsyncResult, System.IDisposable
+    {
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Action action) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Action action, System.Threading.CancellationToken cancellationToken) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Action action, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Action action, System.Threading.Tasks.TaskCreationOptions creationOptions) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Action<object> action, object state) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Action<object> action, object state, System.Threading.CancellationToken cancellationToken) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Action<object> action, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Action<object> action, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { }
+        public object AsyncState { get { return default(object); } }
+        public static System.Threading.Tasks.Task CompletedTask { get { return default(System.Threading.Tasks.Task); } }
+        public System.Threading.Tasks.TaskCreationOptions CreationOptions { get { return default(System.Threading.Tasks.TaskCreationOptions); } }
+        public static System.Nullable<int> CurrentId { get { return default(System.Nullable<int>); } }
+        public System.AggregateException Exception { get { return default(System.AggregateException); } }
+        public static System.Threading.Tasks.TaskFactory Factory { get { return default(System.Threading.Tasks.TaskFactory); } }
+        public int Id { get { return default(int); } }
+        public bool IsCanceled { get { return default(bool); } }
+        public bool IsCompleted { get { return default(bool); } }
+        public bool IsFaulted { get { return default(bool); } }
+        public System.Threading.Tasks.TaskStatus Status { get { return default(System.Threading.Tasks.TaskStatus); } }
+        System.Threading.WaitHandle System.IAsyncResult.AsyncWaitHandle { get { return default(System.Threading.WaitHandle); } }
+        bool System.IAsyncResult.CompletedSynchronously { get { return default(bool); } }
+        public System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigureAwait(bool continueOnCapturedContext) { return default(System.Runtime.CompilerServices.ConfiguredTaskAwaitable); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task, object> continuationAction, object state) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task, object> continuationAction, object state, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task, object> continuationAction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task, object> continuationAction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task, object> continuationAction, object state, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task> continuationAction) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task> continuationAction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task> continuationAction, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWith<TResult>(System.Func<System.Threading.Tasks.Task, TResult> continuationFunction) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWith<TResult>(System.Func<System.Threading.Tasks.Task, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWith<TResult>(System.Func<System.Threading.Tasks.Task, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWith<TResult>(System.Func<System.Threading.Tasks.Task, TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWith<TResult>(System.Func<System.Threading.Tasks.Task, TResult> continuationFunction, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWith<TResult>(System.Func<System.Threading.Tasks.Task, object, TResult> continuationFunction, object state) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWith<TResult>(System.Func<System.Threading.Tasks.Task, object, TResult> continuationFunction, object state, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWith<TResult>(System.Func<System.Threading.Tasks.Task, object, TResult> continuationFunction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWith<TResult>(System.Func<System.Threading.Tasks.Task, object, TResult> continuationFunction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWith<TResult>(System.Func<System.Threading.Tasks.Task, object, TResult> continuationFunction, object state, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        public static System.Threading.Tasks.Task Delay(int millisecondsDelay) { return default(System.Threading.Tasks.Task); }
+        public static System.Threading.Tasks.Task Delay(int millisecondsDelay, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        public static System.Threading.Tasks.Task Delay(System.TimeSpan delay) { return default(System.Threading.Tasks.Task); }
+        public static System.Threading.Tasks.Task Delay(System.TimeSpan delay, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        public void Dispose() { }
+        protected virtual void Dispose(bool disposing) { }
+        public static System.Threading.Tasks.Task FromCanceled(System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        public static System.Threading.Tasks.Task<TResult> FromCanceled<TResult>(System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        public static System.Threading.Tasks.Task FromException(System.Exception exception) { return default(System.Threading.Tasks.Task); }
+        public static System.Threading.Tasks.Task<TResult> FromException<TResult>(System.Exception exception) { return default(System.Threading.Tasks.Task<TResult>); }
+        public static System.Threading.Tasks.Task<TResult> FromResult<TResult>(TResult result) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Runtime.CompilerServices.TaskAwaiter GetAwaiter() { return default(System.Runtime.CompilerServices.TaskAwaiter); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static System.Threading.Tasks.Task Run(System.Action action) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static System.Threading.Tasks.Task Run(System.Action action, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        public static System.Threading.Tasks.Task Run(System.Func<System.Threading.Tasks.Task> function) { return default(System.Threading.Tasks.Task); }
+        public static System.Threading.Tasks.Task Run(System.Func<System.Threading.Tasks.Task> function, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static System.Threading.Tasks.Task<TResult> Run<TResult>(System.Func<TResult> function) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static System.Threading.Tasks.Task<TResult> Run<TResult>(System.Func<TResult> function, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        public static System.Threading.Tasks.Task<TResult> Run<TResult>(System.Func<System.Threading.Tasks.Task<TResult>> function) { return default(System.Threading.Tasks.Task<TResult>); }
+        public static System.Threading.Tasks.Task<TResult> Run<TResult>(System.Func<System.Threading.Tasks.Task<TResult>> function, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        public void RunSynchronously() { }
+        public void RunSynchronously(System.Threading.Tasks.TaskScheduler scheduler) { }
+        public void Start() { }
+        public void Start(System.Threading.Tasks.TaskScheduler scheduler) { }
+        public void Wait() { }
+        public bool Wait(int millisecondsTimeout) { return default(bool); }
+        public bool Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) { return default(bool); }
+        public void Wait(System.Threading.CancellationToken cancellationToken) { }
+        public bool Wait(System.TimeSpan timeout) { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static void WaitAll(params System.Threading.Tasks.Task[] tasks) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static bool WaitAll(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout) { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static bool WaitAll(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static void WaitAll(System.Threading.Tasks.Task[] tasks, System.Threading.CancellationToken cancellationToken) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static bool WaitAll(System.Threading.Tasks.Task[] tasks, System.TimeSpan timeout) { return default(bool); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static int WaitAny(params System.Threading.Tasks.Task[] tasks) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static int WaitAny(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static int WaitAny(System.Threading.Tasks.Task[] tasks, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static int WaitAny(System.Threading.Tasks.Task[] tasks, System.Threading.CancellationToken cancellationToken) { return default(int); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static int WaitAny(System.Threading.Tasks.Task[] tasks, System.TimeSpan timeout) { return default(int); }
+        public static System.Threading.Tasks.Task WhenAll(System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task> tasks) { return default(System.Threading.Tasks.Task); }
+        public static System.Threading.Tasks.Task WhenAll(params System.Threading.Tasks.Task[] tasks) { return default(System.Threading.Tasks.Task); }
+        public static System.Threading.Tasks.Task<TResult[]> WhenAll<TResult>(System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task<TResult>> tasks) { return default(System.Threading.Tasks.Task<TResult[]>); }
+        public static System.Threading.Tasks.Task<TResult[]> WhenAll<TResult>(params System.Threading.Tasks.Task<TResult>[] tasks) { return default(System.Threading.Tasks.Task<TResult[]>); }
+        public static System.Threading.Tasks.Task<System.Threading.Tasks.Task> WhenAny(System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task> tasks) { return default(System.Threading.Tasks.Task<System.Threading.Tasks.Task>); }
+        public static System.Threading.Tasks.Task<System.Threading.Tasks.Task> WhenAny(params System.Threading.Tasks.Task[] tasks) { return default(System.Threading.Tasks.Task<System.Threading.Tasks.Task>); }
+        public static System.Threading.Tasks.Task<System.Threading.Tasks.Task<TResult>> WhenAny<TResult>(System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task<TResult>> tasks) { return default(System.Threading.Tasks.Task<System.Threading.Tasks.Task<TResult>>); }
+        public static System.Threading.Tasks.Task<System.Threading.Tasks.Task<TResult>> WhenAny<TResult>(params System.Threading.Tasks.Task<TResult>[] tasks) { return default(System.Threading.Tasks.Task<System.Threading.Tasks.Task<TResult>>); }
+        public static System.Runtime.CompilerServices.YieldAwaitable Yield() { return default(System.Runtime.CompilerServices.YieldAwaitable); }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Id = {Id}, Status = {Status}, Method = {DebuggerDisplayMethodDescription}, Result = {DebuggerDisplayResultDescription}")]
+   
+    public partial class Task<TResult> : System.Threading.Tasks.Task
+    {
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Func<TResult> function) : base (default(System.Action)) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Func<TResult> function, System.Threading.CancellationToken cancellationToken) : base (default(System.Action)) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Func<TResult> function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) : base (default(System.Action)) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Func<TResult> function, System.Threading.Tasks.TaskCreationOptions creationOptions) : base (default(System.Action)) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Func<object, TResult> function, object state) : base (default(System.Action)) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Func<object, TResult> function, object state, System.Threading.CancellationToken cancellationToken) : base (default(System.Action)) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Func<object, TResult> function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions) : base (default(System.Action)) { }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public Task(System.Func<object, TResult> function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) : base (default(System.Action)) { }
+        public static new System.Threading.Tasks.TaskFactory<TResult> Factory { get { return default(System.Threading.Tasks.TaskFactory<TResult>); } }
+        [System.Diagnostics.DebuggerBrowsableAttribute((System.Diagnostics.DebuggerBrowsableState)(0))]
+        public TResult Result { get { return default(TResult); } }
+        public new System.Runtime.CompilerServices.ConfiguredTaskAwaitable<TResult> ConfigureAwait(bool continueOnCapturedContext) { return default(System.Runtime.CompilerServices.ConfiguredTaskAwaitable<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task<TResult>, object> continuationAction, object state) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task<TResult>, object> continuationAction, object state, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task<TResult>, object> continuationAction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task<TResult>, object> continuationAction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task<TResult>, object> continuationAction, object state, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task<TResult>> continuationAction) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task<TResult>> continuationAction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task<TResult>> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task<TResult>> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWith(System.Action<System.Threading.Tasks.Task<TResult>> continuationAction, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(System.Func<System.Threading.Tasks.Task<TResult>, TNewResult> continuationFunction) { return default(System.Threading.Tasks.Task<TNewResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(System.Func<System.Threading.Tasks.Task<TResult>, TNewResult> continuationFunction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TNewResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(System.Func<System.Threading.Tasks.Task<TResult>, TNewResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TNewResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(System.Func<System.Threading.Tasks.Task<TResult>, TNewResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TNewResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(System.Func<System.Threading.Tasks.Task<TResult>, TNewResult> continuationFunction, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TNewResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(System.Func<System.Threading.Tasks.Task<TResult>, object, TNewResult> continuationFunction, object state) { return default(System.Threading.Tasks.Task<TNewResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(System.Func<System.Threading.Tasks.Task<TResult>, object, TNewResult> continuationFunction, object state, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TNewResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(System.Func<System.Threading.Tasks.Task<TResult>, object, TNewResult> continuationFunction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TNewResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(System.Func<System.Threading.Tasks.Task<TResult>, object, TNewResult> continuationFunction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TNewResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(System.Func<System.Threading.Tasks.Task<TResult>, object, TNewResult> continuationFunction, object state, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TNewResult>); }
+        public new System.Runtime.CompilerServices.TaskAwaiter<TResult> GetAwaiter() { return default(System.Runtime.CompilerServices.TaskAwaiter<TResult>); }
+    }
+    public partial class TaskCanceledException : System.OperationCanceledException
+    {
+        public TaskCanceledException() { }
+        public TaskCanceledException(string message) { }
+        public TaskCanceledException(string message, System.Exception innerException) { }
+        public TaskCanceledException(System.Threading.Tasks.Task task) { }
+        public System.Threading.Tasks.Task Task { get { return default(System.Threading.Tasks.Task); } }
+    }
+    
+    public partial class TaskCompletionSource<TResult>
+    {
+        public TaskCompletionSource() { }
+        public TaskCompletionSource(object state) { }
+        public TaskCompletionSource(object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { }
+        public TaskCompletionSource(System.Threading.Tasks.TaskCreationOptions creationOptions) { }
+        public System.Threading.Tasks.Task<TResult> Task { get { return default(System.Threading.Tasks.Task<TResult>); } }
+        public void SetCanceled() { }
+        public void SetException(System.Collections.Generic.IEnumerable<System.Exception> exceptions) { }
+        public void SetException(System.Exception exception) { }
+        public void SetResult(TResult result) { }
+        public bool TrySetCanceled() { return default(bool); }
+        public bool TrySetCanceled(System.Threading.CancellationToken cancellationToken) { return default(bool); }
+        public bool TrySetException(System.Collections.Generic.IEnumerable<System.Exception> exceptions) { return default(bool); }
+        public bool TrySetException(System.Exception exception) { return default(bool); }
+        public bool TrySetResult(TResult result) { return default(bool); }
+    }
+    [System.FlagsAttribute]
+    public enum TaskContinuationOptions
+    {
+        AttachedToParent = 4,
+        DenyChildAttach = 8,
+        ExecuteSynchronously = 524288,
+        HideScheduler = 16,
+        LazyCancellation = 32,
+        LongRunning = 2,
+        None = 0,
+        NotOnCanceled = 262144,
+        NotOnFaulted = 131072,
+        NotOnRanToCompletion = 65536,
+        OnlyOnCanceled = 196608,
+        OnlyOnFaulted = 327680,
+        OnlyOnRanToCompletion = 393216,
+        PreferFairness = 1,
+        RunContinuationsAsynchronously = 64,
+    }
+    [System.FlagsAttribute]
+    public enum TaskCreationOptions
+    {
+        AttachedToParent = 4,
+        DenyChildAttach = 8,
+        HideScheduler = 16,
+        LongRunning = 2,
+        None = 0,
+        PreferFairness = 1,
+        RunContinuationsAsynchronously = 64,
+    }
+    
+    public partial class TaskFactory
+    {
+        public TaskFactory() { }
+        public TaskFactory(System.Threading.CancellationToken cancellationToken) { }
+        public TaskFactory(System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { }
+        public TaskFactory(System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { }
+        public TaskFactory(System.Threading.Tasks.TaskScheduler scheduler) { }
+        public System.Threading.CancellationToken CancellationToken { get { return default(System.Threading.CancellationToken); } }
+        public System.Threading.Tasks.TaskContinuationOptions ContinuationOptions { get { return default(System.Threading.Tasks.TaskContinuationOptions); } }
+        public System.Threading.Tasks.TaskCreationOptions CreationOptions { get { return default(System.Threading.Tasks.TaskCreationOptions); } }
+        public System.Threading.Tasks.TaskScheduler Scheduler { get { return default(System.Threading.Tasks.TaskScheduler); } }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action<System.Threading.Tasks.Task[]> continuationAction) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action<System.Threading.Tasks.Task[]> continuationAction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action<System.Threading.Tasks.Task[]> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Action<System.Threading.Tasks.Task[]> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TResult>(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task[], TResult> continuationFunction) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TResult>(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TResult>(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TResult>(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task[], TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAll<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Action<System.Threading.Tasks.Task<TAntecedentResult>[]> continuationAction) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAll<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Action<System.Threading.Tasks.Task<TAntecedentResult>[]> continuationAction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAll<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Action<System.Threading.Tasks.Task<TAntecedentResult>[]> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAll<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Action<System.Threading.Tasks.Task<TAntecedentResult>[]> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult, TResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>[], TResult> continuationFunction) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult, TResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult, TResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult, TResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>[], TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action<System.Threading.Tasks.Task> continuationAction) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action<System.Threading.Tasks.Task> continuationAction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action<System.Threading.Tasks.Task> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Action<System.Threading.Tasks.Task> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult>(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task, TResult> continuationFunction) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult>(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult>(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult>(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task, TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult, TResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>, TResult> continuationFunction) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult, TResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult, TResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult, TResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>, TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task FromAsync(System.Func<System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Action<System.IAsyncResult> endMethod, object state) { return default(System.Threading.Tasks.Task); }
+        public System.Threading.Tasks.Task FromAsync(System.Func<System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Action<System.IAsyncResult> endMethod, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Action<System.IAsyncResult> endMethod) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Action<System.IAsyncResult> endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task FromAsync(System.IAsyncResult asyncResult, System.Action<System.IAsyncResult> endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        public System.Threading.Tasks.Task FromAsync<TArg1>(System.Func<TArg1, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Action<System.IAsyncResult> endMethod, TArg1 arg1, object state) { return default(System.Threading.Tasks.Task); }
+        public System.Threading.Tasks.Task FromAsync<TArg1>(System.Func<TArg1, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Action<System.IAsyncResult> endMethod, TArg1 arg1, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TResult>(System.Func<System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, object state) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TResult>(System.Func<System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> FromAsync<TResult>(System.IAsyncResult asyncResult, System.Func<System.IAsyncResult, TResult> endMethod) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> FromAsync<TResult>(System.IAsyncResult asyncResult, System.Func<System.IAsyncResult, TResult> endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> FromAsync<TResult>(System.IAsyncResult asyncResult, System.Func<System.IAsyncResult, TResult> endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task FromAsync<TArg1, TArg2>(System.Func<TArg1, TArg2, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Action<System.IAsyncResult> endMethod, TArg1 arg1, TArg2 arg2, object state) { return default(System.Threading.Tasks.Task); }
+        public System.Threading.Tasks.Task FromAsync<TArg1, TArg2>(System.Func<TArg1, TArg2, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Action<System.IAsyncResult> endMethod, TArg1 arg1, TArg2 arg2, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1, TResult>(System.Func<TArg1, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, object state) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1, TResult>(System.Func<TArg1, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task FromAsync<TArg1, TArg2, TArg3>(System.Func<TArg1, TArg2, TArg3, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Action<System.IAsyncResult> endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state) { return default(System.Threading.Tasks.Task); }
+        public System.Threading.Tasks.Task FromAsync<TArg1, TArg2, TArg3>(System.Func<TArg1, TArg2, TArg3, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Action<System.IAsyncResult> endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1, TArg2, TResult>(System.Func<TArg1, TArg2, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, TArg2 arg2, object state) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1, TArg2, TResult>(System.Func<TArg1, TArg2, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, TArg2 arg2, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1, TArg2, TArg3, TResult>(System.Func<TArg1, TArg2, TArg3, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1, TArg2, TArg3, TResult>(System.Func<TArg1, TArg2, TArg3, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task StartNew(System.Action action) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task StartNew(System.Action action, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task StartNew(System.Action action, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task StartNew(System.Action action, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task StartNew(System.Action<object> action, object state) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task StartNew(System.Action<object> action, object state, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task StartNew(System.Action<object> action, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task StartNew(System.Action<object> action, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew<TResult>(System.Func<TResult> function) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew<TResult>(System.Func<TResult> function, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew<TResult>(System.Func<TResult> function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew<TResult>(System.Func<TResult> function, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew<TResult>(System.Func<object, TResult> function, object state) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew<TResult>(System.Func<object, TResult> function, object state, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew<TResult>(System.Func<object, TResult> function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew<TResult>(System.Func<object, TResult> function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+    }
+    
+    public partial class TaskFactory<TResult>
+    {
+        public TaskFactory() { }
+        public TaskFactory(System.Threading.CancellationToken cancellationToken) { }
+        public TaskFactory(System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { }
+        public TaskFactory(System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { }
+        public TaskFactory(System.Threading.Tasks.TaskScheduler scheduler) { }
+        public System.Threading.CancellationToken CancellationToken { get { return default(System.Threading.CancellationToken); } }
+        public System.Threading.Tasks.TaskContinuationOptions ContinuationOptions { get { return default(System.Threading.Tasks.TaskContinuationOptions); } }
+        public System.Threading.Tasks.TaskCreationOptions CreationOptions { get { return default(System.Threading.Tasks.TaskCreationOptions); } }
+        public System.Threading.Tasks.TaskScheduler Scheduler { get { return default(System.Threading.Tasks.TaskScheduler); } }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task[], TResult> continuationFunction) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task[], TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>[], TResult> continuationFunction) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>[], TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>[], TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task, TResult> continuationFunction) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny(System.Threading.Tasks.Task[] tasks, System.Func<System.Threading.Tasks.Task, TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>, TResult> continuationFunction) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>, TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult>(System.Threading.Tasks.Task<TAntecedentResult>[] tasks, System.Func<System.Threading.Tasks.Task<TAntecedentResult>, TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync(System.Func<System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, object state) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync(System.Func<System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> FromAsync(System.IAsyncResult asyncResult, System.Func<System.IAsyncResult, TResult> endMethod) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> FromAsync(System.IAsyncResult asyncResult, System.Func<System.IAsyncResult, TResult> endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> FromAsync(System.IAsyncResult asyncResult, System.Func<System.IAsyncResult, TResult> endMethod, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1>(System.Func<TArg1, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, object state) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1>(System.Func<TArg1, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1, TArg2>(System.Func<TArg1, TArg2, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, TArg2 arg2, object state) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1, TArg2>(System.Func<TArg1, TArg2, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, TArg2 arg2, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1, TArg2, TArg3>(System.Func<TArg1, TArg2, TArg3, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state) { return default(System.Threading.Tasks.Task<TResult>); }
+        public System.Threading.Tasks.Task<TResult> FromAsync<TArg1, TArg2, TArg3>(System.Func<TArg1, TArg2, TArg3, System.AsyncCallback, object, System.IAsyncResult> beginMethod, System.Func<System.IAsyncResult, TResult> endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew(System.Func<TResult> function) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew(System.Func<TResult> function, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew(System.Func<TResult> function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew(System.Func<TResult> function, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew(System.Func<object, TResult> function, object state) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew(System.Func<object, TResult> function, object state, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew(System.Func<object, TResult> function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions, System.Threading.Tasks.TaskScheduler scheduler) { return default(System.Threading.Tasks.Task<TResult>); }
+        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public System.Threading.Tasks.Task<TResult> StartNew(System.Func<object, TResult> function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions) { return default(System.Threading.Tasks.Task<TResult>); }
+    }
+    [System.Diagnostics.DebuggerDisplayAttribute("Id={Id}")]   
+    public abstract partial class TaskScheduler
+    {
+        protected TaskScheduler() { }
+        public static System.Threading.Tasks.TaskScheduler Current { get { return default(System.Threading.Tasks.TaskScheduler); } }
+        public static System.Threading.Tasks.TaskScheduler Default { get { return default(System.Threading.Tasks.TaskScheduler); } }
+        public int Id { get { return default(int); } }
+        public virtual int MaximumConcurrencyLevel { get { return default(int); } }
+        public static event System.EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs> UnobservedTaskException { add { } remove { } }
+        public static System.Threading.Tasks.TaskScheduler FromCurrentSynchronizationContext() { return default(System.Threading.Tasks.TaskScheduler); }
+        [System.Security.SecurityCriticalAttribute]
+        protected abstract System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task> GetScheduledTasks();
+        [System.Security.SecurityCriticalAttribute]
+        protected internal abstract void QueueTask(System.Threading.Tasks.Task task);
+        [System.Security.SecurityCriticalAttribute]
+        protected internal virtual bool TryDequeue(System.Threading.Tasks.Task task) { return default(bool); }
+        [System.Security.SecurityCriticalAttribute]
+        protected bool TryExecuteTask(System.Threading.Tasks.Task task) { return default(bool); }
+        [System.Security.SecurityCriticalAttribute]
+        protected abstract bool TryExecuteTaskInline(System.Threading.Tasks.Task task, bool taskWasPreviouslyQueued);
+    }
+    public partial class TaskSchedulerException : System.Exception
+    {
+        public TaskSchedulerException() { }
+        public TaskSchedulerException(System.Exception innerException) { }
+        public TaskSchedulerException(string message) { }
+        public TaskSchedulerException(string message, System.Exception innerException) { }
+    }
+    public enum TaskStatus
+    {
+        Canceled = 6,
+        Created = 0,
+        Faulted = 7,
+        RanToCompletion = 5,
+        Running = 3,
+        WaitingForActivation = 1,
+        WaitingForChildrenToComplete = 4,
+        WaitingToRun = 2,
+    }
+    public partial class UnobservedTaskExceptionEventArgs : System.EventArgs
+    {
+        public UnobservedTaskExceptionEventArgs(System.AggregateException exception) { }
+        public System.AggregateException Exception { get { return default(System.AggregateException); } }
+        public bool Observed { get { return default(bool); } }
+        public void SetObserved() { }
+    }
+}
diff --git a/src/mscorlib/ref/mscorlib.csproj b/src/mscorlib/ref/mscorlib.csproj
new file mode 100644 (file)
index 0000000..c07ec27
--- /dev/null
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+
+  <!-- Include common build properties -->
+  <Import Project="..\..\..\dir.props" />
+
+  <!-- Compilation options -->
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">$(BuildType)</Configuration>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+
+    <ProjectGuid>{B8ADD332-40B6-4916-B418-FBB79E5898B3}</ProjectGuid>
+
+    <OutputType>Library</OutputType>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    
+    <!-- This prevents the default MsBuild targets from referencing System.Core.dll -->
+    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
+    <!-- These prevent the default MsBuild targets from referencing System.dll and mscorlib.dll -->
+    <NoStdLib>true</NoStdLib>
+    <NoCompilerStandardLib>true</NoCompilerStandardLib>
+    
+    <ErrorReport>prompt</ErrorReport>
+    <Optimize Condition="'$(Optimize)' == ''">true</Optimize>
+    <GenerateNativeVersionInfo Condition="'$(OsEnvironment)'=='Windows_NT'">true</GenerateNativeVersionInfo>
+    <CLSCompliant>true</CLSCompliant>
+    <WarningLevel>4</WarningLevel>
+    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+    <WarningsNotAsErrors>$(WarningsNotAsErrors);618</WarningsNotAsErrors>
+    <NoWarn>618,649,3019,414,169,3015,3021</NoWarn>
+    <GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>
+
+    <SignAssembly>true</SignAssembly>
+    <DelaySign>true</DelaySign>
+  </PropertyGroup>
+
+  <!-- On Windows we support FEATURE_COMINTEROP and FEATURE_COREFX_GLOBALIZATION -->
+  <PropertyGroup Condition="'$(TargetsUnix)'!='true'">
+    <DefineConstants>$(DefineConstants);FEATURE_COREFX_GLOBALIZATION;FEATURE_COMINTEROP</DefineConstants>
+  </PropertyGroup>
+  <!-- Roslyn does not support writing PDBs on Unix -->
+  <PropertyGroup Condition="'$(OsEnvironment)' == 'Unix'">
+    <DebugSymbols>false</DebugSymbols>
+    <DebugType>none</DebugType>
+  </PropertyGroup>
+
+  <!-- Assembly attributes -->
+  <PropertyGroup>
+    <AssemblyName>mscorlib</AssemblyName>
+    <AssemblyVersion>4.0.0.0</AssemblyVersion>
+    <MajorVersion>4</MajorVersion>
+    <MinorVersion>6</MinorVersion>
+  </PropertyGroup>
+
+  <!-- Output paths -->
+  <PropertyGroup>
+    <BaseIntermediateOutputPath>$(RootBinDir)\obj</BaseIntermediateOutputPath>
+    <IntermediateOutputPath>$(BaseIntermediateOutputPath)\$(BuildOS).$(BuildArch).$(Configuration)\ref</IntermediateOutputPath>
+    <OutputPath>$(BinDir)\ref</OutputPath>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="mscorlib.cs">
+    </Compile>
+  </ItemGroup>
+
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.Targets" />
+
+  <!-- Import signing tools -->
+  <Import Condition="Exists('$(ToolsDir)\sign.targets')" Project="$(ToolsDir)\sign.targets" />
+
+  <!-- Overwrite the key that we are going to use for signing -->
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)..\Tools\Signing\mscorlib.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+
+  <Import Project="$(MSBuildThisFileDirectory)..\Tools\Versioning\GenerateVersionInfo.targets"/>
+  <!-- Override versioning targets -->
+  <Import Condition="Exists('$(ToolsDir)versioning.targets')" Project="$(ToolsDir)versioning.targets" />
+  <Import Project="..\GenerateCompilerResponseFile.targets"/>
+</Project>
index 84fdf8a..34fbf0d 100644 (file)
@@ -897,9 +897,18 @@ namespace Microsoft.Win32 {
         [DllImport(KERNEL32, SetLastError = true, CharSet = CharSet.Auto, BestFitMapping = false)]
         internal unsafe static extern int GetLongPathName(char* path, char* longPathBuffer, int bufferLength);
 
+        [DllImport(KERNEL32, SetLastError = true, ExactSpelling = true)]
+        internal unsafe static extern uint GetFullPathNameW(char* path, uint numBufferChars, SafeHandle buffer, IntPtr mustBeZero);
+
         [DllImport(KERNEL32, SetLastError = true, CharSet = CharSet.Auto, BestFitMapping = false)]
         internal static extern int GetLongPathName(String path, [Out]StringBuilder longPathBuffer, int bufferLength);
 
+        [DllImport(KERNEL32, SetLastError = true, ExactSpelling = true)]
+        internal static extern uint GetLongPathNameW(SafeHandle lpszShortPath, SafeHandle lpszLongPath, uint cchBuffer);
+
+        [DllImport(KERNEL32, SetLastError = true, CharSet = CharSet.Unicode, ExactSpelling = true)]
+        internal static extern uint GetLongPathNameW(string lpszShortPath, SafeHandle lpszLongPath, uint cchBuffer);
+
         // Disallow access to all non-file devices from methods that take
         // a String.  This disallows DOS devices like "con:", "com1:", 
         // "lpt1:", etc.  Use this to avoid security problems, like allowing
index 50b275e..c80913e 100644 (file)
@@ -12,8 +12,11 @@ namespace System
         internal static readonly string SwitchNoAsyncCurrentCulture = "Switch.System.Globalization.NoAsyncCurrentCulture";
         internal static readonly string SwitchThrowExceptionIfDisposedCancellationTokenSource = "Switch.System.Threading.ThrowExceptionIfDisposedCancellationTokenSource";
         internal static readonly string SwitchPreserveEventListnerObjectIdentity = "Switch.System.Diagnostics.EventSource.PreserveEventListnerObjectIdentity";
+#if FEATURE_PATHCOMPAT
+        internal static readonly string SwitchUseLegacyPathHandling = "Switch.System.IO.UseLegacyPathHandling";
+        internal static readonly string SwitchBlockLongPaths = "Switch.System.IO.BlockLongPaths";
+#endif
 
-        
         // This is a partial method. Platforms can provide an implementation of it that will set override values
         // from whatever mechanism is available on that platform. If no implementation is provided, the compiler is going to remove the calls
         // to it from the code
@@ -40,6 +43,13 @@ namespace System
                             AppContext.DefineSwitchDefault(SwitchNoAsyncCurrentCulture, true);
                             AppContext.DefineSwitchDefault(SwitchThrowExceptionIfDisposedCancellationTokenSource, true);
                         }
+#if FEATURE_PATHCOMPAT
+                        if (version <= 40601)
+                        {
+                            AppContext.DefineSwitchDefault(SwitchUseLegacyPathHandling, true);
+                            AppContext.DefineSwitchDefault(SwitchBlockLongPaths, true);
+                        }
+#endif
                         break;
                     }
                 case "WindowsPhone":
index 855564b..89d6970 100644 (file)
@@ -3289,7 +3289,7 @@ namespace System {
                                       AppDomainSetup info)
         {
             if (friendlyName == null)
-                throw new ArgumentNullException(Environment.GetResourceString("ArgumentNull_String"));
+                throw new ArgumentNullException("friendlyName", Environment.GetResourceString("ArgumentNull_String"));
 
             Contract.EndContractBlock();
 
@@ -3628,7 +3628,7 @@ namespace System {
                         if (Path.IsRelative(propertyValues[i]))
                             throw new ArgumentException( Environment.GetResourceString( "Argument_AbsolutePathRequired" ) );
 
-                        newSetup.ApplicationBase=Path.NormalizePath(propertyValues[i],true);
+                        newSetup.ApplicationBase = NormalizePath(propertyValues[i], fullCheck: true);
 
                     }
 #if FEATURE_CAS_POLICY
@@ -3636,10 +3636,10 @@ namespace System {
                     {
                         providedSecurityInfo=new Evidence();
                         providedSecurityInfo.AddHostEvidence(new Url(propertyValues[i]));
-                        ad.SetDataHelper(propertyNames[i],propertyValues[i],null);                        
+                        ad.SetDataHelper(propertyNames[i],propertyValues[i],null);
                     }
 #endif // FEATURE_CAS_POLICY
-#if FEATURE_LOADER_OPTIMIZATION                    
+#if FEATURE_LOADER_OPTIMIZATION
                     else
                     if(propertyNames[i]=="LOADER_OPTIMIZATION")
                     {
@@ -3655,8 +3655,8 @@ namespace System {
                             default: throw new ArgumentException(Environment.GetResourceString("Argument_UnrecognizedLoaderOptimization"), "LOADER_OPTIMIZATION");
                         }
                     }
-#endif // FEATURE_LOADER_OPTIMIZATION                    
-#if FEATURE_CORECLR      
+#endif // FEATURE_LOADER_OPTIMIZATION
+#if FEATURE_CORECLR
                     else
                     if(propertyNames[i]=="NATIVE_DLL_SEARCH_DIRECTORIES")
                     {
@@ -3710,7 +3710,7 @@ namespace System {
                             if (Path.IsRelative(path))
                                 throw new ArgumentException( Environment.GetResourceString( "Argument_AbsolutePathRequired" ) );
 
-                            string appPath=Path.NormalizePath(path,true);
+                            string appPath = NormalizePath(path, fullCheck: true);
                             normalisedAppPathList.Append(appPath);
                             normalisedAppPathList.Append(Path.PathSeparator);
                         }
@@ -3719,12 +3719,12 @@ namespace System {
                         {
                             normalisedAppPathList.Remove(normalisedAppPathList.Length - 1, 1);
                         }
-                        ad.SetDataHelper(propertyNames[i],normalisedAppPathList.ToString(),null);        // not supported by fusion, so set explicitly                
+                        ad.SetDataHelper(propertyNames[i],normalisedAppPathList.ToString(),null);        // not supported by fusion, so set explicitly
                     }
                     else
                     if(propertyNames[i]!= null)
                     {
-                        ad.SetDataHelper(propertyNames[i],propertyValues[i],null);     // just propagate                   
+                        ad.SetDataHelper(propertyNames[i],propertyValues[i],null);     // just propagate
                     }
 #endif
 
@@ -3813,6 +3813,15 @@ namespace System {
 #endif // FEATURE_CLICKONCE
         }
 
+        [SecuritySafeCritical]
+        internal static string NormalizePath(string path, bool fullCheck)
+        {
+            return Path.NormalizePath(
+                path: path,
+                fullCheck: fullCheck,
+                maxPathLength: PathInternal.MaxShortPath,
+                expandShortPaths: true);
+        }
 
 #if FEATURE_APTCA
         // Called from DomainAssembly in Conditional APTCA cases
@@ -3924,9 +3933,9 @@ namespace System {
 
 #endif
 
-        // This routine is called from unmanaged code to
-        // set the default fusion context.
-        [System.Security.SecurityCritical]  // auto-generated
+    // This routine is called from unmanaged code to
+    // set the default fusion context.
+    [System.Security.SecurityCritical]  // auto-generated
         private void SetupDomain(bool allowRedirects, String path, String configFile, String[] propertyNames, String[] propertyValues)
         {
             // It is possible that we could have multiple threads initializing
index 14a817c..291099e 100644 (file)
@@ -59,7 +59,7 @@ namespace System {
                                                        Evidence securityInfo,
                                                        AppDomainSetup appDomainInfo) {
             if (friendlyName == null)
-                throw new ArgumentNullException(Environment.GetResourceString("ArgumentNull_String"));
+                throw new ArgumentNullException("friendlyName", Environment.GetResourceString("ArgumentNull_String"));
 
             Contract.EndContractBlock();
             // If evidence is provided, we check to make sure that is allowed.
index 9deae2a..ad99e63 100644 (file)
@@ -471,7 +471,9 @@ namespace System {
 
                     bool slash = false;
                     if ((path[0] == '/') || (path[0] == '\\')) {
-                        String pathRoot = Path.GetPathRoot(appBase);
+                        string pathRoot = AppDomain.NormalizePath(appBase, fullCheck: false);
+                        pathRoot = pathRoot.Substring(0, IO.PathInternal.GetRootLength(pathRoot));
+
                         if (pathRoot.Length == 0) { // URL
                             int index = appBase.IndexOf(":/", StringComparison.Ordinal);
                             if (index == -1)
@@ -516,7 +518,7 @@ namespace System {
                     path = StringBuilderCache.GetStringAndRelease(result);
                 }
                 else
-                    path = Path.GetFullPathInternal(path);
+                    path = AppDomain.NormalizePath(path, fullCheck: true);
             }
 
             return path;
index 48888c7..7ffdb02 100644 (file)
@@ -1,9 +1,7 @@
 // Licensed to the .NET Foundation under one or more agreements.
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
-
 using Microsoft.Win32;
-
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.Diagnostics.CodeAnalysis;
@@ -20,12 +18,6 @@ using Contract = System.Diagnostics.Contracts.Contract;
 using Contract = Microsoft.Diagnostics.Contracts.Internal.Contract;
 #endif
 
-#if ES_BUILD_STANDALONE
-using Environment = Microsoft.Diagnostics.Tracing.Internal.Environment;
-using EventDescriptor = Microsoft.Diagnostics.Tracing.EventDescriptor;
-#endif
-
-
 #if ES_BUILD_AGAINST_DOTNET_V35
 using Microsoft.Internal;       // for Tuple (can't define alias for open generic types so we "use" the whole namespace)
 #endif
@@ -88,9 +80,7 @@ namespace System.Diagnostics.Tracing
         private byte m_level;                            // Tracing Level
         private long m_anyKeywordMask;                   // Trace Enable Flags
         private long m_allKeywordMask;                   // Match all keyword
-#if ES_SESSION_INFO || FEATURE_ACTIVITYSAMPLING
         private List<SessionInfo> m_liveSessions;        // current live sessions (Tuple<sessionIdBit, etwSessionId>)
-#endif
         private bool m_enabled;                          // Enabled flag from Trace callback
         private Guid m_providerId;                       // Control Guid 
         internal bool m_disposed;                        // when true provider has unregistered
@@ -232,16 +222,20 @@ namespace System.Diagnostics.Tracing
                 m_regHandle = 0;
             }
         }
-        
+
+        // <SecurityKernel Critical="True" Ring="0">
+        // <UsesUnsafeCode Name="Parameter filterData of type: Void*" />
+        // <UsesUnsafeCode Name="Parameter callbackContext of type: Void*" />
+        // </SecurityKernel>
         [System.Security.SecurityCritical]
         unsafe void EtwEnableCallBack(
-                        ref System.Guid sourceId,
-                        int controlCode,
-                        byte setLevel,
-                        long anyKeyword,
-                        long allKeyword,
-                        UnsafeNativeMethods.ManifestEtw.EVENT_FILTER_DESCRIPTOR* filterData,
-                        void* callbackContext
+                        [In] ref System.Guid sourceId,
+                        [In] int controlCode,
+                        [In] byte setLevel,
+                        [In] long anyKeyword,
+                        [In] long allKeyword,
+                        [In] UnsafeNativeMethods.ManifestEtw.EVENT_FILTER_DESCRIPTOR* filterData,
+                        [In] void* callbackContext
                         )
         {
             // This is an optional callback API. We will therefore ignore any failures that happen as a 
@@ -252,7 +246,6 @@ namespace System.Diagnostics.Tracing
                 ControllerCommand command = ControllerCommand.Update;
                 IDictionary<string, string> args = null;
                 bool skipFinalOnControllerCommand = false;
-
                 if (controlCode == UnsafeNativeMethods.ManifestEtw.EVENT_CONTROL_CODE_ENABLE_PROVIDER)
                 {
                     m_enabled = true;
@@ -265,7 +258,7 @@ namespace System.Diagnostics.Tracing
                     // today we use FEATURE_ACTIVITYSAMPLING to determine if this code is there or not.
                     // However we put it in the #if so that we don't lose the fact that this feature
                     // switch is at least partially independent of FEATURE_ACTIVITYSAMPLING
-#if ES_SESSION_INFO || FEATURE_ACTIVITYSAMPLING
+
                     List<Tuple<SessionInfo, bool>> sessionsChanged = GetSessions();
                     foreach (var session in sessionsChanged)
                     {
@@ -306,7 +299,6 @@ namespace System.Diagnostics.Tracing
                         // execute OnControllerCommand once for every session that has changed.
                         OnControllerCommand(command, args, (bEnabling ? sessionChanged : -sessionChanged), etwSessionId);
                     }
-#endif
                 }
                 else if (controlCode == UnsafeNativeMethods.ManifestEtw.EVENT_CONTROL_CODE_DISABLE_PROVIDER)
                 {
@@ -314,9 +306,7 @@ namespace System.Diagnostics.Tracing
                     m_level = 0;
                     m_anyKeywordMask = 0;
                     m_allKeywordMask = 0;
-#if ES_SESSION_INFO || FEATURE_ACTIVITYSAMPLING
                     m_liveSessions = null;
-#endif
                 }
                 else if (controlCode == UnsafeNativeMethods.ManifestEtw.EVENT_CONTROL_CODE_CAPTURE_STATE)
                 {
@@ -348,7 +338,6 @@ namespace System.Diagnostics.Tracing
             return idx;
         }
 
-#if ES_SESSION_INFO || FEATURE_ACTIVITYSAMPLING
         /// <summary>
         /// Determines the ETW sessions that have been added and/or removed to the set of
         /// sessions interested in the current provider. It does so by (1) enumerating over all
@@ -365,7 +354,7 @@ namespace System.Diagnostics.Tracing
             List<SessionInfo> liveSessionList = null;
 
             GetSessionInfo((Action<int, long>)
-                ((etwSessionId, matchAllKeywords) => 
+                ((etwSessionId, matchAllKeywords) =>
                     GetSessionInfoCallback(etwSessionId, matchAllKeywords, ref liveSessionList)));
 
             List<Tuple<SessionInfo, bool>> changedSessionList = new List<Tuple<SessionInfo, bool>>();
@@ -380,7 +369,7 @@ namespace System.Diagnostics.Tracing
                     if ((idx = IndexOfSessionInList(liveSessionList, s.etwSessionId)) < 0 ||
                         (liveSessionList[idx].sessionIdBit != s.sessionIdBit))
                         changedSessionList.Add(Tuple.Create(s, false));
-                        
+
                 }
             }
             // next look for sessions that were created since the last callback  (or have changed)
@@ -397,7 +386,6 @@ namespace System.Diagnostics.Tracing
             }
 
             m_liveSessions = liveSessionList;
-
             return changedSessionList;
         }
 
@@ -487,7 +475,7 @@ namespace System.Diagnostics.Tracing
                 providerInstance = (UnsafeNativeMethods.ManifestEtw.TRACE_PROVIDER_INSTANCE_INFO*)&structBase[providerInstance->NextOffset];
             }
 #else 
-#if !ES_BUILD_PCL && !FEATURE_PAL   // TODO command arguments don't work on PCL builds...
+#if !ES_BUILD_PCL && !FEATURE_PAL  // TODO command arguments don't work on PCL builds...
             // Determine our session from what is in the registry.  
             string regKey = @"\Microsoft\Windows\CurrentVersion\Winevt\Publishers\{" + m_providerId + "}";
             if (System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr)) == 8)
@@ -545,9 +533,8 @@ namespace System.Diagnostics.Tracing
                 if (sessions[i].etwSessionId == etwSessionId)
                     return i;
 
-            return -1;    
+            return -1;
         }
-#endif
 
         /// <summary>
         /// Gets any data to be passed from the controller to the provider.  It starts with what is passed
@@ -559,14 +546,13 @@ namespace System.Diagnostics.Tracing
         /// </summary>
         [System.Security.SecurityCritical]
         private unsafe bool GetDataFromController(int etwSessionId,
-                UnsafeNativeMethods.ManifestEtw.EVENT_FILTER_DESCRIPTOR* filterData,
-                out ControllerCommand command, out byte[] data, out int dataStart)
+                UnsafeNativeMethods.ManifestEtw.EVENT_FILTER_DESCRIPTOR* filterData, out ControllerCommand command, out byte[] data, out int dataStart)
         {
             data = null;
             dataStart = 0;
             if (filterData == null)
             {
-#if (!ES_BUILD_PCL && !PROJECTN && !FEATURE_PAL)
+#if !ES_BUILD_PCL && !FEATURE_PAL
                 string regKey = @"\Microsoft\Windows\CurrentVersion\Winevt\Publishers\{" + m_providerId + "}";
                 if (System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr)) == 8)
                     regKey = @"HKEY_LOCAL_MACHINE\Software" + @"\Wow6432Node" + regKey;
@@ -1148,7 +1134,7 @@ namespace System.Diagnostics.Tracing
                                 (EventOpcode)eventDescriptor.Opcode == EventOpcode.Start ||
                                 (EventOpcode)eventDescriptor.Opcode == EventOpcode.Stop);
             }
-            
+
             int status = UnsafeNativeMethods.ManifestEtw.EventWriteTransferWrapper(m_regHandle, ref eventDescriptor, activityID, childActivityID, dataCount, (EventData*)data);
 
             if (status != 0)
@@ -1168,7 +1154,9 @@ namespace System.Diagnostics.Tracing
             int dataCount,
             IntPtr data)
         {
-            int status = UnsafeNativeMethods.ManifestEtw.EventWriteTransferWrapper(
+            int status;
+
+            status = UnsafeNativeMethods.ManifestEtw.EventWriteTransferWrapper(
                 m_regHandle,
                 ref eventDescriptor,
                 activityID,
@@ -1184,6 +1172,7 @@ namespace System.Diagnostics.Tracing
             return true;
         }
 
+
         // These are look-alikes to the Manifest based ETW OS APIs that have been shimmed to work
         // either with Manifest ETW or Classic ETW (if Manifest based ETW is not available).  
         [SecurityCritical]
@@ -1193,7 +1182,7 @@ namespace System.Diagnostics.Tracing
             m_etwCallback = enableCallback;
             return UnsafeNativeMethods.ManifestEtw.EventRegister(ref providerId, enableCallback, null, ref m_regHandle);
         }
-        
+
         [SecurityCritical]
         private uint EventUnregister()
         {
@@ -1220,3 +1209,4 @@ namespace System.Diagnostics.Tracing
         }
     }
 }
+
index 9adbd66..d08332f 100644 (file)
@@ -2056,7 +2056,7 @@ namespace System.Globalization {
             {
                 if (patterns[i] == null)
                 {
-                    throw new ArgumentNullException(Environment.GetResourceString("ArgumentNull_ArrayValue"));
+                    throw new ArgumentNullException("patterns[" + i + "]", Environment.GetResourceString("ArgumentNull_ArrayValue"));
                 }
             }
 
diff --git a/src/mscorlib/src/System/IO/LongPathHelper.cs b/src/mscorlib/src/System/IO/LongPathHelper.cs
new file mode 100644 (file)
index 0000000..5adfb07
--- /dev/null
@@ -0,0 +1,367 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System.Diagnostics.Contracts;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using Microsoft.Win32;
+
+namespace System.IO
+{
+    /// <summary>
+    /// Wrapper to help with path normalization.
+    /// </summary>
+    internal class LongPathHelper
+    {
+        // Can't be over 8.3 and be a short name
+        private const int MaxShortName = 12;
+
+        private const char LastAnsi = (char)255;
+        private const char Delete = (char)127;
+
+        // Trim trailing white spaces, tabs etc but don't be aggressive in removing everything that has UnicodeCategory of trailing space.
+        // string.WhitespaceChars will trim more aggressively than what the underlying FS does (for ex, NTFS, FAT).
+        internal static readonly char[] s_trimEndChars =
+        {
+            (char)0x9,          // Horizontal tab
+            (char)0xA,          // Line feed
+            (char)0xB,          // Vertical tab
+            (char)0xC,          // Form feed
+            (char)0xD,          // Carriage return
+            (char)0x20,         // Space
+            (char)0x85,         // Next line
+            (char)0xA0          // Non breaking space
+        };
+
+        [ThreadStatic]
+        private static StringBuffer t_fullPathBuffer;
+
+        /// <summary>
+        /// Normalize the given path.
+        /// </summary>
+        /// <remarks>
+        /// Normalizes via Win32 GetFullPathName(). It will also trim all "typical" whitespace at the end of the path (see s_trimEndChars). Will also trim initial
+        /// spaces if the path is determined to be rooted.
+        /// 
+        /// Note that invalid characters will be checked after the path is normalized, which could remove bad characters. (C:\|\..\a.txt -- C:\a.txt)
+        /// </remarks>
+        /// <param name="path">Path to normalize</param>
+        /// <param name="checkInvalidCharacters">True to check for invalid characters</param>
+        /// <param name="expandShortPaths">Attempt to expand short paths if true</param>
+        /// <exception cref="ArgumentException">Thrown if the path is an illegal UNC (does not contain a full server/share) or contains illegal characters.</exception>
+        /// <exception cref="PathTooLongException">Thrown if the path or a path segment exceeds the filesystem limits.</exception>
+        /// <exception cref="FileNotFoundException">Thrown if Windows returns ERROR_FILE_NOT_FOUND. (See Win32Marshal.GetExceptionForWin32Error)</exception>
+        /// <exception cref="DirectoryNotFoundException">Thrown if Windows returns ERROR_PATH_NOT_FOUND. (See Win32Marshal.GetExceptionForWin32Error)</exception>
+        /// <exception cref="UnauthorizedAccessException">Thrown if Windows returns ERROR_ACCESS_DENIED. (See Win32Marshal.GetExceptionForWin32Error)</exception>
+        /// <exception cref="IOException">Thrown if Windows returns an error that doesn't map to the above. (See Win32Marshal.GetExceptionForWin32Error)</exception>
+        /// <returns>Normalized path</returns>
+        [System.Security.SecurityCritical]
+        unsafe internal static string Normalize(string path, uint maxPathLength, bool checkInvalidCharacters, bool expandShortPaths)
+        {
+            // Get the full path
+            StringBuffer fullPath = t_fullPathBuffer ?? (t_fullPathBuffer = new StringBuffer(PathInternal.MaxShortPath));
+            try
+            {
+                GetFullPathName(path, fullPath);
+
+                // Trim whitespace off the end of the string. Win32 normalization trims only U+0020.
+                fullPath.TrimEnd(s_trimEndChars);
+
+                if (fullPath.Length >= maxPathLength)
+                {
+                    // Fullpath is genuinely too long
+                    throw new PathTooLongException();
+                }
+
+                // Checking path validity used to happen before getting the full path name. To avoid additional input allocation
+                // (to trim trailing whitespace) we now do it after the Win32 call. This will allow legitimate paths through that
+                // used to get kicked back (notably segments with invalid characters might get removed via "..").
+                //
+                // There is no way that GetLongPath can invalidate the path so we'll do this (cheaper) check before we attempt to
+                // expand short file names.
+
+                // Scan the path for:
+                //
+                //  - Illegal path characters.
+                //  - Invalid UNC paths like \\, \\server, \\server\.
+                //  - Segments that are too long (over MaxComponentLength)
+
+                // As the path could be > 60K, we'll combine the validity scan. None of these checks are performed by the Win32
+                // GetFullPathName() API.
+
+                bool possibleShortPath = false;
+                bool foundTilde = false;
+
+                // We can get UNCs as device paths through this code (e.g. \\.\UNC\), we won't validate them as there isn't
+                // an easy way to normalize without extensive cost (we'd have to hunt down the canonical name for any device
+                // path that contains UNC or  to see if the path was doing something like \\.\GLOBALROOT\Device\Mup\,
+                // \\.\GLOBAL\UNC\, \\.\GLOBALROOT\GLOBAL??\UNC\, etc.
+                bool specialPath = fullPath.Length > 1 && fullPath[0] == '\\' && fullPath[1] == '\\';
+                bool isDevice = PathInternal.IsDevice(fullPath);
+                bool possibleBadUnc = specialPath && !isDevice;
+                uint index = specialPath ? 2u : 0;
+                uint lastSeparator = specialPath ? 1u : 0;
+                uint segmentLength;
+                char* start = fullPath.CharPointer;
+                char current;
+
+                while (index < fullPath.Length)
+                {
+                    current = start[index];
+
+                    // Try to skip deeper analysis. '?' and higher are valid/ignorable except for '\', '|', and '~'
+                    if (current < '?' || current == '\\' || current == '|' || current == '~')
+                    {
+                        switch (current)
+                        {
+                            case '|':
+                            case '>':
+                            case '<':
+                            case '\"':
+                                if (checkInvalidCharacters) throw new ArgumentException(Environment.GetResourceString("Argument_InvalidPathChars"));
+                                // No point in expanding a bad path
+                                foundTilde = false;
+                                break;
+                            case '~':
+                                foundTilde = true;
+                                break;
+                            case '\\':
+                                segmentLength = index - lastSeparator - 1;
+                                if (segmentLength > (uint)PathInternal.MaxComponentLength)
+                                    throw new PathTooLongException();
+                                lastSeparator = index;
+
+                                if (foundTilde)
+                                {
+                                    if (segmentLength <= MaxShortName)
+                                    {
+                                        // Possibly a short path.
+                                        possibleShortPath = true;
+                                    }
+
+                                    foundTilde = false;
+                                }
+
+                                if (possibleBadUnc)
+                                {
+                                    // If we're at the end of the path and this is the first separator, we're missing the share.
+                                    // Otherwise we're good, so ignore UNC tracking from here.
+                                    if (index == fullPath.Length - 1)
+                                        throw new ArgumentException(Environment.GetResourceString("Arg_PathIllegalUNC"));
+                                    else
+                                        possibleBadUnc = false;
+                                }
+
+                                break;
+
+                            default:
+                                if (checkInvalidCharacters && current < ' ') throw new ArgumentException(Environment.GetResourceString("Argument_InvalidPathChars"));
+                                break;
+                        }
+                    }
+
+                    index++;
+                }
+
+                if (possibleBadUnc)
+                    throw new ArgumentException(Environment.GetResourceString("Arg_PathIllegalUNC"));
+
+                segmentLength = fullPath.Length - lastSeparator - 1;
+                if (segmentLength > (uint)PathInternal.MaxComponentLength)
+                    throw new PathTooLongException(Environment.GetResourceString("IO.PathTooLong"));
+
+                if (foundTilde && segmentLength <= MaxShortName)
+                    possibleShortPath = true;
+
+                // Check for a short filename path and try and expand it. Technically you don't need to have a tilde for a short name, but
+                // this is how we've always done this. This expansion is costly so we'll continue to let other short paths slide.
+                if (expandShortPaths && possibleShortPath)
+                {
+                    return TryExpandShortFileName(fullPath, originalPath: path);
+                }
+                else
+                {
+                    if (fullPath.Length == (uint)path.Length && fullPath.StartsWith(path))
+                    {
+                        // If we have the exact same string we were passed in, don't bother to allocate another string from the StringBuilder.
+                        return path;
+                    }
+                    else
+                    {
+                        return fullPath.ToString();
+                    }
+                }
+            }
+            finally
+            {
+                // Clear the buffer
+                fullPath.Free();
+            }
+        }
+
+        [System.Security.SecurityCritical]
+        unsafe private static void GetFullPathName(string path, StringBuffer fullPath)
+        {
+            // If the string starts with an extended prefix we would need to remove it from the path before we call GetFullPathName as
+            // it doesn't root extended paths correctly. We don't currently resolve extended paths, so we'll just assert here.
+            Contract.Assert(PathInternal.IsPartiallyQualified(path) || !PathInternal.IsExtended(path));
+
+            // Historically we would skip leading spaces *only* if the path started with a drive " C:" or a UNC " \\"
+            int startIndex = PathInternal.PathStartSkip(path);
+
+            fixed (char* pathStart = path)
+            {
+                uint result = 0;
+                while ((result = Win32Native.GetFullPathNameW(pathStart + startIndex, fullPath.CharCapacity, fullPath.GetHandle(), IntPtr.Zero)) > fullPath.CharCapacity)
+                {
+                    // Reported size (which does not include the null) is greater than the buffer size. Increase the capacity.
+                    fullPath.EnsureCharCapacity(result);
+                }
+
+                if (result == 0)
+                {
+                    // Failure, get the error and throw
+                    int errorCode = Marshal.GetLastWin32Error();
+                    if (errorCode == 0)
+                        errorCode = Win32Native.ERROR_BAD_PATHNAME;
+                    __Error.WinIOError(errorCode, path);
+                }
+
+                fullPath.Length = result;
+            }
+        }
+
+        [System.Security.SecurityCritical]
+        unsafe internal static string GetLongPathName(StringBuffer path)
+        {
+            using (StringBuffer outputBuffer = new StringBuffer(path.Length))
+            {
+                uint result = 0;
+                while ((result = Win32Native.GetLongPathNameW(path.GetHandle(), outputBuffer.GetHandle(), outputBuffer.CharCapacity)) > outputBuffer.CharCapacity)
+                {
+                    // Reported size (which does not include the null) is greater than the buffer size. Increase the capacity.
+                    outputBuffer.EnsureCharCapacity(result);
+                }
+
+                if (result == 0)
+                {
+                    // Failure, get the error and throw
+                    GetErrorAndThrow(path.ToString());
+                }
+
+                outputBuffer.Length = result;
+                return outputBuffer.ToString();
+            }
+        }
+
+        [System.Security.SecurityCritical]
+        unsafe internal static string GetLongPathName(string path)
+        {
+            using (StringBuffer outputBuffer = new StringBuffer((uint)path.Length))
+            {
+                uint result = 0;
+                while ((result = Win32Native.GetLongPathNameW(path, outputBuffer.GetHandle(), outputBuffer.CharCapacity)) > outputBuffer.CharCapacity)
+                {
+                    // Reported size (which does not include the null) is greater than the buffer size. Increase the capacity.
+                    outputBuffer.EnsureCharCapacity(result);
+                }
+
+                if (result == 0)
+                {
+                    // Failure, get the error and throw
+                    GetErrorAndThrow(path);
+                }
+
+                outputBuffer.Length = result;
+                return outputBuffer.ToString();
+            }
+        }
+
+        [System.Security.SecurityCritical]
+        private static void GetErrorAndThrow(string path)
+        {
+            int errorCode = Marshal.GetLastWin32Error();
+            if (errorCode == 0)
+                errorCode = Win32Native.ERROR_BAD_PATHNAME;
+            __Error.WinIOError(errorCode, path);
+        }
+
+        [System.Security.SecuritySafeCritical]
+        private unsafe static string TryExpandShortFileName(StringBuffer outputBuffer, string originalPath)
+        {
+            // We guarantee we'll expand short names for paths that only partially exist. As such, we need to find the part of the path that actually does exist. To
+            // avoid allocating like crazy we'll create only one input array and modify the contents with embedded nulls.
+
+            Contract.Assert(!PathInternal.IsPartiallyQualified(outputBuffer), "should have resolved by now");
+
+            using (StringBuffer inputBuffer = new StringBuffer(outputBuffer))
+            {
+                bool success = false;
+                uint lastIndex = outputBuffer.Length - 1;
+                uint foundIndex = lastIndex;
+                uint rootLength = PathInternal.GetRootLength(outputBuffer);
+
+                while (!success)
+                {
+                    uint result = Win32Native.GetLongPathNameW(inputBuffer.GetHandle(), outputBuffer.GetHandle(), outputBuffer.CharCapacity);
+
+                    // Replace any temporary null we added
+                    if (inputBuffer[foundIndex] == '\0') inputBuffer[foundIndex] = '\\';
+
+                    if (result == 0)
+                    {
+                        // Look to see if we couldn't find the file
+                        int error = Marshal.GetLastWin32Error();
+                        if (error != Win32Native.ERROR_FILE_NOT_FOUND && error != Win32Native.ERROR_PATH_NOT_FOUND)
+                        {
+                            // Some other failure, give up
+                            break;
+                        }
+
+                        // We couldn't find the path at the given index, start looking further back in the string.
+                        foundIndex--;
+
+                        for (; foundIndex > rootLength && inputBuffer[foundIndex] != '\\'; foundIndex--) ;
+                        if (foundIndex == rootLength)
+                        {
+                            // Can't trim the path back any further
+                            break;
+                        }
+                        else
+                        {
+                            // Temporarily set a null in the string to get Windows to look further up the path
+                            inputBuffer[foundIndex] = '\0';
+                        }
+                    }
+                    else if (result > outputBuffer.CharCapacity)
+                    {
+                        // Not enough space. The result count for this API does not include the null terminator.
+                        outputBuffer.EnsureCharCapacity(result);
+                    }
+                    else
+                    {
+                        // Found the path
+                        success = true;
+                        outputBuffer.Length = result;
+                        if (foundIndex < lastIndex)
+                        {
+                            // It was a partial find, put the non-existant part of the path back
+                            outputBuffer.Append(inputBuffer, foundIndex, inputBuffer.Length - foundIndex);
+                        }
+                    }
+                }
+
+                StringBuffer bufferToUse = success ? outputBuffer : inputBuffer;
+
+                if (bufferToUse.SubstringEquals(originalPath))
+                {
+                    // Use the original path to avoid allocating
+                    return originalPath;
+                }
+
+                return bufferToUse.ToString();
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/mscorlib/src/System/IO/PathInternal.cs b/src/mscorlib/src/System/IO/PathInternal.cs
new file mode 100644 (file)
index 0000000..ac1afb8
--- /dev/null
@@ -0,0 +1,661 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using Microsoft.Win32;
+using System;
+using System.Diagnostics.Contracts;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Security;
+using System.Text;
+
+namespace System.IO
+{
+    /// <summary>Contains internal path helpers that are shared between many projects.</summary>
+    internal static class PathInternal
+    {
+        internal const string ExtendedPathPrefix = @"\\?\";
+        internal const string UncPathPrefix = @"\\";
+        internal const string UncExtendedPrefixToInsert = @"?\UNC\";
+        internal const string UncExtendedPathPrefix = @"\\?\UNC\";
+        internal const string DevicePathPrefix = @"\\.\";
+        internal const int DevicePrefixLength = 4;
+        internal const int MaxShortPath = 260;
+        internal const int MaxShortDirectoryPath = 248;
+
+        // Windows is limited in long paths by the max size of its internal representation of a unicode string.
+        // UNICODE_STRING has a max length of USHORT in _bytes_ without a trailing null.
+        // https://msdn.microsoft.com/en-us/library/windows/hardware/ff564879.aspx
+        internal const int MaxLongPath = short.MaxValue;
+        internal static readonly int MaxComponentLength = 255;
+
+        internal static readonly char[] InvalidPathChars =
+        {
+            '\"', '<', '>', '|', '\0',
+            (char)1, (char)2, (char)3, (char)4, (char)5, (char)6, (char)7, (char)8, (char)9, (char)10,
+            (char)11, (char)12, (char)13, (char)14, (char)15, (char)16, (char)17, (char)18, (char)19, (char)20,
+            (char)21, (char)22, (char)23, (char)24, (char)25, (char)26, (char)27, (char)28, (char)29, (char)30,
+            (char)31
+        };
+
+        /// <summary>
+        /// Validates volume separator only occurs as C: or \\?\C:. This logic is meant to filter out Alternate Data Streams.
+        /// </summary>
+        /// <returns>True if the path has an invalid volume separator.</returns>
+        internal static bool HasInvalidVolumeSeparator(string path)
+        {
+            // Toss out paths with colons that aren't a valid drive specifier.
+            // Cannot start with a colon and can only be of the form "C:" or "\\?\C:".
+            // (Note that we used to explicitly check "http:" and "file:"- these are caught by this check now.)
+
+            // We don't care about skipping starting space for extended paths. Assume no knowledge of extended paths if we're forcing old path behavior.
+            bool isExtended = 
+#if FEATURE_PATHCOMPAT
+                !AppContextSwitches.UseLegacyPathHandling &&
+#endif
+                IsExtended(path);
+            int startIndex = isExtended ? ExtendedPathPrefix.Length : PathStartSkip(path);
+
+            // If we start with a colon
+            if ((path.Length > startIndex && path[startIndex] == Path.VolumeSeparatorChar)
+                // Or have an invalid drive letter and colon
+                || (path.Length >= startIndex + 2 && path[startIndex + 1] == Path.VolumeSeparatorChar && !IsValidDriveChar(path[startIndex]))
+                // Or have any colons beyond the drive colon
+                || (path.Length > startIndex + 2 && path.IndexOf(Path.VolumeSeparatorChar, startIndex + 2) != -1))
+            {
+                return true;
+            }
+
+            return false;
+        }
+
+        /// <summary>
+        /// Returns true if the given StringBuilder starts with the given value.
+        /// </summary>
+        /// <param name="value">The string to compare against the start of the StringBuilder.</param>
+        internal static bool StartsWithOrdinal(StringBuilder builder, string value, bool ignoreCase = false)
+        {
+            if (value == null || builder.Length < value.Length)
+                return false;
+
+            if (ignoreCase)
+            {
+                for (int i = 0; i < value.Length; i++)
+                    if (char.ToUpperInvariant(builder[i]) != char.ToUpperInvariant(value[i])) return false;
+            }
+            else
+            {
+                for (int i = 0; i < value.Length; i++)
+                    if (builder[i] != value[i]) return false;
+            }
+
+            return true;
+        }
+
+        /// <summary>
+        /// Returns true if the given character is a valid drive letter
+        /// </summary>
+        internal static bool IsValidDriveChar(char value)
+        {
+            return ((value >= 'A' && value <= 'Z') || (value >= 'a' && value <= 'z'));
+        }
+
+        /// <summary>
+        /// Returns true if the path is too long
+        /// </summary>
+        internal static bool IsPathTooLong(string fullPath)
+        {
+            // We'll never know precisely what will fail as paths get changed internally in Windows and
+            // may grow beyond / shrink below exceed MaxLongPath.
+#if FEATURE_PATHCOMPAT
+            if (AppContextSwitches.BlockLongPaths)
+            {
+                // We allow paths of any length if extended (and not in compat mode)
+                if (AppContextSwitches.UseLegacyPathHandling || !IsExtended(fullPath))
+                    return fullPath.Length >= MaxShortPath;
+            }
+#endif
+
+            return fullPath.Length >= MaxLongPath;
+        }
+
+        /// <summary>
+        /// Return true if any path segments are too long
+        /// </summary>
+        internal static bool AreSegmentsTooLong(string fullPath)
+        {
+            int length = fullPath.Length;
+            int lastSeparator = 0;
+
+            for (int i = 0; i < length; i++)
+            {
+                if (IsDirectorySeparator(fullPath[i]))
+                {
+                    if (i - lastSeparator > MaxComponentLength)
+                        return true;
+                    lastSeparator = i;
+                }
+            }
+
+            if (length - 1 - lastSeparator > MaxComponentLength)
+                return true;
+
+            return false;
+        }
+
+        /// <summary>
+        /// Returns true if the directory is too long
+        /// </summary>
+        internal static bool IsDirectoryTooLong(string fullPath)
+        {
+#if FEATURE_PATHCOMPAT
+            if (AppContextSwitches.BlockLongPaths)
+            {
+                // We allow paths of any length if extended (and not in compat mode)
+                if (AppContextSwitches.UseLegacyPathHandling || !IsExtended(fullPath))
+                    return (fullPath.Length >= MaxShortDirectoryPath);
+            }
+#endif
+
+            return IsPathTooLong(fullPath);
+        }
+
+        /// <summary>
+        /// Adds the extended path prefix (\\?\) if not relative or already a device path.
+        /// </summary>
+        internal static string EnsureExtendedPrefix(string path)
+        {
+            // Putting the extended prefix on the path changes the processing of the path. It won't get normalized, which
+            // means adding to relative paths will prevent them from getting the appropriate current directory inserted.
+
+            // If it already has some variant of a device path (\??\, \\?\, \\.\, //./, etc.) we don't need to change it
+            // as it is either correct or we will be changing the behavior. When/if Windows supports long paths implicitly
+            // in the future we wouldn't want normalization to come back and break existing code.
+
+            // In any case, all internal usages should be hitting normalize path (Path.GetFullPath) before they hit this
+            // shimming method. (Or making a change that doesn't impact normalization, such as adding a filename to a
+            // normalized base path.)
+            if (IsPartiallyQualified(path) || IsDevice(path))
+                return path;
+
+            // Given \\server\share in longpath becomes \\?\UNC\server\share
+            if (path.StartsWith(UncPathPrefix, StringComparison.OrdinalIgnoreCase))
+                return path.Insert(2, UncExtendedPrefixToInsert);
+
+            return ExtendedPathPrefix + path;
+        }
+
+        /// <summary>
+        /// Removes the extended path prefix (\\?\) if present.
+        /// </summary>
+        internal static string RemoveExtendedPrefix(string path)
+        {
+            if (!IsExtended(path))
+                return path;
+
+            // Given \\?\UNC\server\share we return \\server\share
+            if (IsExtendedUnc(path))
+                return path.Remove(2, 6);
+
+            return path.Substring(DevicePrefixLength);
+        }
+
+        /// <summary>
+        /// Removes the extended path prefix (\\?\) if present.
+        /// </summary>
+        internal static StringBuilder RemoveExtendedPrefix(StringBuilder path)
+        {
+            if (!IsExtended(path))
+                return path;
+
+            // Given \\?\UNC\server\share we return \\server\share
+            if (IsExtendedUnc(path))
+                return path.Remove(2, 6);
+
+            return path.Remove(0, DevicePrefixLength);
+        }
+
+        /// <summary>
+        /// Returns true if the path uses any of the DOS device path syntaxes. ("\\.\", "\\?\", or "\??\")
+        /// </summary>
+        internal static bool IsDevice(string path)
+        {
+            // If the path begins with any two separators it will be recognized and normalized and prepped with
+            // "\??\" for internal usage correctly. "\??\" is recognized and handled, "/??/" is not.
+            return IsExtended(path)
+                ||
+                (
+                    path.Length >= DevicePrefixLength
+                    && IsDirectorySeparator(path[0])
+                    && IsDirectorySeparator(path[1])
+                    && (path[2] == '.' || path[2] == '?')
+                    && IsDirectorySeparator(path[3])
+                );
+        }
+
+        /// <summary>
+        /// Returns true if the path uses any of the DOS device path syntaxes. ("\\.\", "\\?\", or "\??\")
+        /// </summary>
+        internal static bool IsDevice(StringBuffer path)
+        {
+            // If the path begins with any two separators it will be recognized and normalized and prepped with
+            // "\??\" for internal usage correctly. "\??\" is recognized and handled, "/??/" is not.
+            return IsExtended(path)
+                ||
+                (
+                    path.Length >= DevicePrefixLength
+                    && IsDirectorySeparator(path[0])
+                    && IsDirectorySeparator(path[1])
+                    && (path[2] == '.' || path[2] == '?')
+                    && IsDirectorySeparator(path[3])
+                );
+        }
+
+        /// <summary>
+        /// Returns true if the path uses the canonical form of extended syntax ("\\?\" or "\??\"). If the
+        /// path matches exactly (cannot use alternate directory separators) Windows will skip normalization
+        /// and path length checks.
+        /// </summary>
+        internal static bool IsExtended(string path)
+        {
+            // While paths like "//?/C:/" will work, they're treated the same as "\\.\" paths.
+            // Skipping of normalization will *only* occur if back slashes ('\') are used.
+            return path.Length >= DevicePrefixLength
+                && path[0] == '\\'
+                && (path[1] == '\\' || path[1] == '?')
+                && path[2] == '?'
+                && path[3] == '\\';
+        }
+
+        /// <summary>
+        /// Returns true if the path uses the canonical form of extended syntax ("\\?\" or "\??\"). If the
+        /// path matches exactly (cannot use alternate directory separators) Windows will skip normalization
+        /// and path length checks.
+        /// </summary>
+        internal static bool IsExtended(StringBuilder path)
+        {
+            // While paths like "//?/C:/" will work, they're treated the same as "\\.\" paths.
+            // Skipping of normalization will *only* occur if back slashes ('\') are used.
+            return path.Length >= DevicePrefixLength
+                && path[0] == '\\'
+                && (path[1] == '\\' || path[1] == '?')
+                && path[2] == '?'
+                && path[3] == '\\';
+        }
+
+        /// <summary>
+        /// Returns true if the path uses the canonical form of extended syntax ("\\?\" or "\??\"). If the
+        /// path matches exactly (cannot use alternate directory separators) Windows will skip normalization
+        /// and path length checks.
+        /// </summary>
+        internal static bool IsExtended(StringBuffer path)
+        {
+            // While paths like "//?/C:/" will work, they're treated the same as "\\.\" paths.
+            // Skipping of normalization will *only* occur if back slashes ('\') are used.
+            return path.Length >= DevicePrefixLength
+                && path[0] == '\\'
+                && (path[1] == '\\' || path[1] == '?')
+                && path[2] == '?'
+                && path[3] == '\\';
+        }
+
+        /// <summary>
+        /// Returns true if the path uses the extended UNC syntax (\\?\UNC\ or \??\UNC\)
+        /// </summary>
+        internal static bool IsExtendedUnc(string path)
+        {
+            return path.Length >= UncExtendedPathPrefix.Length
+                && IsExtended(path)
+                && char.ToUpper(path[4]) == 'U'
+                && char.ToUpper(path[5]) == 'N'
+                && char.ToUpper(path[6]) == 'C'
+                && path[7] == '\\';
+        }
+
+        /// <summary>
+        /// Returns true if the path uses the extended UNC syntax (\\?\UNC\ or \??\UNC\)
+        /// </summary>
+        internal static bool IsExtendedUnc(StringBuilder path)
+        {
+            return path.Length >= UncExtendedPathPrefix.Length
+                && IsExtended(path)
+                && char.ToUpper(path[4]) == 'U'
+                && char.ToUpper(path[5]) == 'N'
+                && char.ToUpper(path[6]) == 'C'
+                && path[7] == '\\';
+        }
+
+        /// <summary>
+        /// Returns a value indicating if the given path contains invalid characters (", &lt;, &gt;, | 
+        /// NUL, or any ASCII char whose integer representation is in the range of 1 through 31).
+        /// Does not check for wild card characters ? and *.
+        ///
+        /// Will not check if the path is a device path and not in Legacy mode as many of these
+        /// characters are valid for devices (pipes for example).
+        /// </summary>
+        internal static bool HasIllegalCharacters(string path, bool checkAdditional = false)
+        {
+            if (
+#if FEATURE_PATHCOMPAT
+            !AppContextSwitches.UseLegacyPathHandling &&
+#endif
+                IsDevice(path))
+            {
+                return false;
+            }
+
+            return AnyPathHasIllegalCharacters(path, checkAdditional: checkAdditional);
+        }
+
+        /// <summary>
+        /// Version of HasIllegalCharacters that checks no AppContextSwitches. Only use if you know you need to skip switches and don't care
+        /// about proper device path handling.
+        /// </summary>
+        internal static bool AnyPathHasIllegalCharacters(string path, bool checkAdditional = false)
+        {
+            return path.IndexOfAny(InvalidPathChars) >= 0 || (checkAdditional && AnyPathHasWildCardCharacters(path));
+        }
+
+        /// <summary>
+        /// Check for ? and *.
+        /// </summary>
+        internal static bool HasWildCardCharacters(string path)
+        {
+            // Question mark is part of some device paths
+            int startIndex =
+#if FEATURE_PATHCOMPAT
+            AppContextSwitches.UseLegacyPathHandling ? 0 : 
+#endif
+            IsDevice(path) ? ExtendedPathPrefix.Length : 0;
+            return AnyPathHasWildCardCharacters(path, startIndex: startIndex);
+        }
+
+        /// <summary>
+        /// Version of HasWildCardCharacters that checks no AppContextSwitches. Only use if you know you need to skip switches and don't care
+        /// about proper device path handling.
+        /// </summary>
+        internal static bool AnyPathHasWildCardCharacters(string path, int startIndex = 0)
+        {
+            char currentChar;
+            for (int i = startIndex; i < path.Length; i++)
+            {
+                currentChar = path[i];
+                if (currentChar == '*' || currentChar == '?') return true;
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// Gets the length of the root of the path (drive, share, etc.).
+        /// </summary>
+        [System.Security.SecuritySafeCritical]
+        internal unsafe static int GetRootLength(string path)
+        {
+            fixed (char* value = path)
+            {
+                return (int)GetRootLength(value, (ulong)path.Length);
+            }
+        }
+
+        /// <summary>
+        /// Gets the length of the root of the path (drive, share, etc.).
+        /// </summary>
+        [System.Security.SecuritySafeCritical]
+        internal unsafe static uint GetRootLength(StringBuffer path)
+        {
+            if (path.Length == 0) return 0;
+            return GetRootLength(path.CharPointer, path.Length);
+        }
+
+        [System.Security.SecurityCritical]
+        private unsafe static uint GetRootLength(char* path, ulong pathLength)
+        {
+            uint i = 0;
+            uint volumeSeparatorLength = 2;  // Length to the colon "C:"
+            uint uncRootLength = 2;          // Length to the start of the server name "\\"
+
+            bool extendedSyntax = StartsWithOrdinal(path, pathLength, ExtendedPathPrefix);
+            bool extendedUncSyntax = StartsWithOrdinal(path, pathLength, UncExtendedPathPrefix);
+            if (extendedSyntax)
+            {
+                // Shift the position we look for the root from to account for the extended prefix
+                if (extendedUncSyntax)
+                {
+                    // "\\" -> "\\?\UNC\"
+                    uncRootLength = (uint)UncExtendedPathPrefix.Length;
+                }
+                else
+                {
+                    // "C:" -> "\\?\C:"
+                    volumeSeparatorLength += (uint)ExtendedPathPrefix.Length;
+                }
+            }
+
+            if ((!extendedSyntax || extendedUncSyntax) && pathLength > 0 && IsDirectorySeparator(path[0]))
+            {
+                // UNC or simple rooted path (e.g. "\foo", NOT "\\?\C:\foo")
+
+                i = 1; //  Drive rooted (\foo) is one character
+                if (extendedUncSyntax || (pathLength > 1 && IsDirectorySeparator(path[1])))
+                {
+                    // UNC (\\?\UNC\ or \\), scan past the next two directory separators at most
+                    // (e.g. to \\?\UNC\Server\Share or \\Server\Share\)
+                    i = uncRootLength;
+                    int n = 2; // Maximum separators to skip
+                    while (i < pathLength && (!IsDirectorySeparator(path[i]) || --n > 0)) i++;
+                }
+            }
+            else if (pathLength >= volumeSeparatorLength && path[volumeSeparatorLength - 1] == Path.VolumeSeparatorChar)
+            {
+                // Path is at least longer than where we expect a colon, and has a colon (\\?\A:, A:)
+                // If the colon is followed by a directory separator, move past it
+                i = volumeSeparatorLength;
+                if (pathLength >= volumeSeparatorLength + 1 && IsDirectorySeparator(path[volumeSeparatorLength])) i++;
+            }
+            return i;
+        }
+
+        [System.Security.SecurityCritical]
+        private unsafe static bool StartsWithOrdinal(char* source, ulong sourceLength, string value)
+        {
+            if (sourceLength < (ulong)value.Length) return false;
+            for (int i = 0; i < value.Length; i++)
+            {
+                if (value[i] != source[i]) return false;
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// Returns true if the path specified is relative to the current drive or working directory.
+        /// Returns false if the path is fixed to a specific drive or UNC path.  This method does no
+        /// validation of the path (URIs will be returned as relative as a result).
+        /// </summary>
+        /// <remarks>
+        /// Handles paths that use the alternate directory separator.  It is a frequent mistake to
+        /// assume that rooted paths (Path.IsPathRooted) are not relative.  This isn't the case.
+        /// "C:a" is drive relative- meaning that it will be resolved against the current directory
+        /// for C: (rooted, but relative). "C:\a" is rooted and not relative (the current directory
+        /// will not be used to modify the path).
+        /// </remarks>
+        internal static bool IsPartiallyQualified(string path)
+        {
+            if (path.Length < 2)
+            {
+                // It isn't fixed, it must be relative.  There is no way to specify a fixed
+                // path with one character (or less).
+                return true;
+            }
+
+            if (IsDirectorySeparator(path[0]))
+            {
+                // There is no valid way to specify a relative path with two initial slashes or
+                // \? as ? isn't valid for drive relative paths and \??\ is equivalent to \\?\
+                return !(path[1] == '?' || IsDirectorySeparator(path[1]));
+            }
+
+            // The only way to specify a fixed path that doesn't begin with two slashes
+            // is the drive, colon, slash format- i.e. C:\
+            return !((path.Length >= 3)
+                && (path[1] == Path.VolumeSeparatorChar)
+                && IsDirectorySeparator(path[2])
+                // To match old behavior we'll check the drive character for validity as the path is technically
+                // not qualified if you don't have a valid drive. "=:\" is the "=" file's default data stream.
+                && IsValidDriveChar(path[0]));
+        }
+
+        /// <summary>
+        /// Returns true if the path specified is relative to the current drive or working directory.
+        /// Returns false if the path is fixed to a specific drive or UNC path.  This method does no
+        /// validation of the path (URIs will be returned as relative as a result).
+        /// </summary>
+        /// <remarks>
+        /// Handles paths that use the alternate directory separator.  It is a frequent mistake to
+        /// assume that rooted paths (Path.IsPathRooted) are not relative.  This isn't the case.
+        /// "C:a" is drive relative- meaning that it will be resolved against the current directory
+        /// for C: (rooted, but relative). "C:\a" is rooted and not relative (the current directory
+        /// will not be used to modify the path).
+        /// </remarks>
+        internal static bool IsPartiallyQualified(StringBuffer path)
+        {
+            if (path.Length < 2)
+            {
+                // It isn't fixed, it must be relative.  There is no way to specify a fixed
+                // path with one character (or less).
+                return true;
+            }
+
+            if (IsDirectorySeparator(path[0]))
+            {
+                // There is no valid way to specify a relative path with two initial slashes or
+                // \? as ? isn't valid for drive relative paths and \??\ is equivalent to \\?\
+                return !(path[1] == '?' || IsDirectorySeparator(path[1]));
+            }
+
+            // The only way to specify a fixed path that doesn't begin with two slashes
+            // is the drive, colon, slash format- i.e. C:\
+            return !((path.Length >= 3)
+                && (path[1] == Path.VolumeSeparatorChar)
+                && IsDirectorySeparator(path[2])
+                // To match old behavior we'll check the drive character for validity as the path is technically
+                // not qualified if you don't have a valid drive. "=:\" is the "=" file's default data stream.
+                && IsValidDriveChar(path[0]));
+        }
+
+        /// <summary>
+        /// Returns the characters to skip at the start of the path if it starts with space(s) and a drive or directory separator.
+        /// (examples are " C:", " \")
+        /// This is a legacy behavior of Path.GetFullPath().
+        /// </summary>
+        /// <remarks>
+        /// Note that this conflicts with IsPathRooted() which doesn't (and never did) such a skip.
+        /// </remarks>
+        internal static int PathStartSkip(string path)
+        {
+            int startIndex = 0;
+            while (startIndex < path.Length && path[startIndex] == ' ') startIndex++;
+
+            if (startIndex > 0 && (startIndex < path.Length && IsDirectorySeparator(path[startIndex]))
+                || (startIndex + 1 < path.Length && path[startIndex + 1] == Path.VolumeSeparatorChar && IsValidDriveChar(path[startIndex])))
+            {
+                // Go ahead and skip spaces as we're either " C:" or " \"
+                return startIndex;
+            }
+
+            return 0;
+        }
+
+        /// <summary>
+        /// True if the given character is a directory separator.
+        /// </summary>
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        internal static bool IsDirectorySeparator(char c)
+        {
+            return c == Path.DirectorySeparatorChar || c == Path.AltDirectorySeparatorChar;
+        }
+
+        /// <summary>
+        /// Normalize separators in the given path. Converts forward slashes into back slashes and compresses slash runs, keeping initial 2 if present.
+        /// Also trims initial whitespace in front of "rooted" paths (see PathStartSkip).
+        /// 
+        /// This effectively replicates the behavior of the legacy NormalizePath when it was called with fullCheck=false and expandShortpaths=false.
+        /// The current NormalizePath gets directory separator normalization from Win32's GetFullPathName(), which will resolve relative paths and as
+        /// such can't be used here (and is overkill for our uses).
+        /// 
+        /// Like the current NormalizePath this will not try and analyze periods/spaces within directory segments.
+        /// </summary>
+        /// <remarks>
+        /// The only callers that used to use Path.Normalize(fullCheck=false) were Path.GetDirectoryName() and Path.GetPathRoot(). Both usages do
+        /// not need trimming of trailing whitespace here.
+        /// 
+        /// GetPathRoot() could technically skip normalizing separators after the second segment- consider as a future optimization.
+        /// 
+        /// For legacy desktop behavior with ExpandShortPaths:
+        ///  - It has no impact on GetPathRoot() so doesn't need consideration.
+        ///  - It could impact GetDirectoryName(), but only if the path isn't relative (C:\ or \\Server\Share).
+        /// 
+        /// In the case of GetDirectoryName() the ExpandShortPaths behavior was undocumented and provided inconsistent results if the path was
+        /// fixed/relative. For example: "C:\PROGRA~1\A.TXT" would return "C:\Program Files" while ".\PROGRA~1\A.TXT" would return ".\PROGRA~1". If you
+        /// ultimately call GetFullPath() this doesn't matter, but if you don't or have any intermediate string handling could easily be tripped up by
+        /// this undocumented behavior.
+        /// </remarks>
+        internal static string NormalizeDirectorySeparators(string path)
+        {
+            if (string.IsNullOrEmpty(path)) return path;
+
+            char current;
+            int start = PathStartSkip(path);
+
+            if (start == 0)
+            {
+                // Make a pass to see if we need to normalize so we can potentially skip allocating
+                bool normalized = true;
+
+                for (int i = 0; i < path.Length; i++)
+                {
+                    current = path[i];
+                    if (IsDirectorySeparator(current)
+                        && (current != Path.DirectorySeparatorChar
+                            // Check for sequential separators past the first position (we need to keep initial two for UNC/extended)
+                            || (i > 0 && i + 1 < path.Length && IsDirectorySeparator(path[i + 1]))))
+                    {
+                        normalized = false;
+                        break;
+                    }
+                }
+
+                if (normalized) return path;
+            }
+
+            StringBuilder builder = StringBuilderCache.Acquire(path.Length);
+
+            if (IsDirectorySeparator(path[start]))
+            {
+                start++;
+                builder.Append(Path.DirectorySeparatorChar);
+            }
+
+            for (int i = start; i < path.Length; i++)
+            {
+                current = path[i];
+
+                // If we have a separator
+                if (IsDirectorySeparator(current))
+                {
+                    // If the next is a separator, skip adding this
+                    if (i + 1 < path.Length && IsDirectorySeparator(path[i + 1]))
+                    {
+                        continue;
+                    }
+
+                    // Ensure it is the primary separator
+                    current = Path.DirectorySeparatorChar;
+                }
+
+                builder.Append(current);
+            }
+
+            return StringBuilderCache.GetStringAndRelease(builder);
+        }
+    }
+}
\ No newline at end of file
index b666566..1dfe2f8 100644 (file)
@@ -1367,7 +1367,8 @@ namespace System.Reflection
                                                         String name, 
                                                         bool throwOnError, 
                                                         bool ignoreCase,
-                                                        ObjectHandleOnStack type);
+                                                        ObjectHandleOnStack type,
+                                                        ObjectHandleOnStack keepAlive);
         
         [System.Security.SecuritySafeCritical]
         public override Type GetType(String name, bool throwOnError, bool ignoreCase) 
@@ -1377,7 +1378,10 @@ namespace System.Reflection
                 throw new ArgumentNullException("name");
 
             RuntimeType type = null;
-            GetType(GetNativeHandle(), name, throwOnError, ignoreCase, JitHelpers.GetObjectHandleOnStack(ref type));
+            Object keepAlive = null;
+            GetType(GetNativeHandle(), name, throwOnError, ignoreCase, JitHelpers.GetObjectHandleOnStack(ref type), JitHelpers.GetObjectHandleOnStack(ref keepAlive));
+            GC.KeepAlive(keepAlive);
+            
             return type;
         }
 
@@ -1589,8 +1593,7 @@ namespace System.Reflection
             return InternalLoadAssemblyName(an, securityEvidence, null, ref stackMark, true /*thrownOnFileNotFound*/, forIntrospection, suppressSecurityChecks);
         }
 
-#if FEATURE_HOSTED_BINDER
-        // Wrapper function to wrap the typical use of InternalLoad. Matches exactly with the signature below if FEATURE_HOSTED_BINDER is not set
+        // Wrapper function to wrap the typical use of InternalLoad.
         [System.Security.SecurityCritical]  // auto-generated
         internal static RuntimeAssembly InternalLoad(String assemblyString,
                                                      Evidence assemblySecurity,
@@ -1599,15 +1602,13 @@ namespace System.Reflection
         {
             return InternalLoad(assemblyString, assemblySecurity,  ref stackMark, IntPtr.Zero, forIntrospection);
         }
-#endif
+
         [System.Security.SecurityCritical]  // auto-generated
         [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable
         internal static RuntimeAssembly InternalLoad(String assemblyString,
                                                      Evidence assemblySecurity,
                                                      ref StackCrawlMark stackMark,
-#if FEATURE_HOSTED_BINDER
                                                      IntPtr pPrivHostBinder,
-#endif
                                                      bool forIntrospection)
         {
             RuntimeAssembly assembly;
@@ -1619,9 +1620,7 @@ namespace System.Reflection
             }
 
             return InternalLoadAssemblyName(an, assemblySecurity, null, ref stackMark, 
-#if FEATURE_HOSTED_BINDER
                                             pPrivHostBinder,
-#endif
                                             true  /*thrownOnFileNotFound*/, forIntrospection, false /* suppressSecurityChecks */);
         }
         
@@ -1651,8 +1650,7 @@ namespace System.Reflection
             return an;
         }
         
-#if FEATURE_HOSTED_BINDER
-        // Wrapper function to wrap the typical use of InternalLoadAssemblyName. Matches exactly with the signature below if FEATURE_HOSTED_BINDER is not set
+        // Wrapper function to wrap the typical use of InternalLoadAssemblyName.
         [System.Security.SecurityCritical]  // auto-generated
         internal static RuntimeAssembly InternalLoadAssemblyName(
             AssemblyName assemblyRef,
@@ -1665,7 +1663,6 @@ namespace System.Reflection
         {
             return InternalLoadAssemblyName(assemblyRef, assemblySecurity, reqAssembly, ref stackMark, IntPtr.Zero, true /*throwOnError*/, forIntrospection, suppressSecurityChecks);
         }
-#endif
 
         [System.Security.SecurityCritical]  // auto-generated
         internal static RuntimeAssembly InternalLoadAssemblyName(
@@ -1673,9 +1670,7 @@ namespace System.Reflection
             Evidence assemblySecurity,
             RuntimeAssembly reqAssembly,
             ref StackCrawlMark stackMark,
-#if FEATURE_HOSTED_BINDER
             IntPtr pPrivHostBinder,
-#endif
             bool throwOnFileNotFound, 
             bool forIntrospection,
             bool suppressSecurityChecks)
@@ -1735,9 +1730,7 @@ namespace System.Reflection
             }
 
             return nLoad(assemblyRef, codeBase, assemblySecurity, reqAssembly, ref stackMark,
-#if FEATURE_HOSTED_BINDER
                 pPrivHostBinder,
-#endif
                 throwOnFileNotFound, forIntrospection, suppressSecurityChecks);
         }
 
@@ -1784,11 +1777,8 @@ namespace System.Reflection
                                                      String codeBase,
                                                      Evidence assemblySecurity,
                                                      RuntimeAssembly locationHint,
-                                                     ref StackCrawlMark stackMark,
-                                              
-#if FEATURE_HOSTED_BINDER
+                                                     ref StackCrawlMark stackMark,                                              
                                                      IntPtr pPrivHostBinder,
-#endif
                                                      bool throwOnFileNotFound,        
                                                      bool forIntrospection,
                                                      bool suppressSecurityChecks);
@@ -1810,17 +1800,13 @@ namespace System.Reflection
                                              Evidence assemblySecurity,
                                              RuntimeAssembly locationHint,
                                              ref StackCrawlMark stackMark,
-#if FEATURE_HOSTED_BINDER
                                              IntPtr pPrivHostBinder,
-#endif
                                              bool throwOnFileNotFound,
                                              bool forIntrospection,
                                              bool suppressSecurityChecks)
         {
             return _nLoad(fileName, codeBase, assemblySecurity, locationHint, ref stackMark,
-#if FEATURE_HOSTED_BINDER
                 pPrivHostBinder,
-#endif
                 throwOnFileNotFound, forIntrospection, suppressSecurityChecks);
         }
 
@@ -1857,9 +1843,7 @@ namespace System.Reflection
                 // also try versionless bind from the package
                 an.Version = null;
                 return nLoad(an, null, null, null, ref stackMark, 
-#if FEATURE_HOSTED_BINDER
                        IntPtr.Zero,
-#endif
                        false, false, false);
             }
             return null;
@@ -1893,9 +1877,7 @@ namespace System.Reflection
             RuntimeAssembly result = null;
             try {
                 result = nLoad(an, null, securityEvidence, null, ref stackMark, 
-#if FEATURE_HOSTED_BINDER
                                IntPtr.Zero,
-#endif
                                true, false, false);
             }
             catch(Exception e) {
@@ -1919,9 +1901,7 @@ namespace System.Reflection
                 {
                     an.Version = null;
                     result = nLoad(an, null, securityEvidence, null, ref stackMark, 
-#if FEATURE_HOSTED_BINDER
                                    IntPtr.Zero,
-#endif
                                    false, false, false);
                 }   
            }
@@ -2784,9 +2764,7 @@ namespace System.Reflection
                     {
                         // present in the GAC, load it from there
                         retAssembly = nLoad(an, null, null, this, ref stackMark, 
-#if FEATURE_HOSTED_BINDER
                                             IntPtr.Zero,
-#endif
                                             throwOnFileNotFound, false, false);
                     }
                 }
@@ -2814,9 +2792,7 @@ namespace System.Reflection
                     else if (!bIsAppXDevMode)
                     {
                         retAssembly = nLoad(an, null, null, this, ref stackMark, 
-#if FEATURE_HOSTED_BINDER
                                             IntPtr.Zero,
-#endif
                                             throwOnFileNotFound, false, false);
                     }
                 }
@@ -2825,9 +2801,7 @@ namespace System.Reflection
 #endif // !FEATURE_CORECLR
             {
                 retAssembly = nLoad(an, null, null, this,  ref stackMark, 
-#if FEATURE_HOSTED_BINDER
                                     IntPtr.Zero,
-#endif
                                     throwOnFileNotFound, false, false);
             }
 
@@ -2886,9 +2860,7 @@ namespace System.Reflection
                 {
                     retAssembly = useLoadFile ? nLoadFile(fileNameOrCodeBase, null) :
                                                 nLoad(loadFromAsmName, fileNameOrCodeBase, null, this, ref stackMark,
-#if FEATURE_HOSTED_BINDER
                                                 IntPtr.Zero,
-#endif
                                                 throwOnFileNotFound, false, false);
                 }
                 catch (FileNotFoundException)
@@ -2919,9 +2891,7 @@ namespace System.Reflection
                     {
                         retAssembly = useLoadFile ? nLoadFile(fileNameOrCodeBase, null) :
                                                     nLoad(loadFromAsmName, fileNameOrCodeBase,  null, this, ref stackMark,
-#if FEATURE_HOSTED_BINDER
                                                           IntPtr.Zero,
-#endif
                                                           false /* do not throw on file not found */, false, false);
                             
                     }
index 1984c2d..5e7f83f 100644 (file)
@@ -399,7 +399,7 @@ namespace System.Reflection.Emit
                     else if (attribute.m_con.DeclaringType == typeof(SecurityRulesAttribute))
                     {
                         securityRulesBlob = new byte[attribute.m_blob.Length];
-                        Array.Copy(attribute.m_blob, securityRulesBlob, securityRulesBlob.Length);
+                        Buffer.BlockCopy(attribute.m_blob, 0, securityRulesBlob, 0, securityRulesBlob.Length);
                     }
                     else if (attribute.m_con.DeclaringType == typeof(SecurityTreatAsSafeAttribute))
                     {
@@ -411,7 +411,7 @@ namespace System.Reflection.Emit
                     {
                         assemblyFlags |= DynamicAssemblyFlags.Aptca;
                         aptcaBlob = new byte[attribute.m_blob.Length];
-                        Array.Copy(attribute.m_blob, aptcaBlob, aptcaBlob.Length);
+                        Buffer.BlockCopy(attribute.m_blob, 0, aptcaBlob, 0, aptcaBlob.Length);
                     }
 #endif // FEATURE_APTCA
                 }
@@ -1460,7 +1460,7 @@ namespace System.Reflection.Emit
                 throw new ArgumentException(Environment.GetResourceString("Argument_NativeResourceAlreadyDefined"));
             
             m_assemblyData.m_resourceBytes = new byte[resource.Length];
-            System.Array.Copy(resource, m_assemblyData.m_resourceBytes, resource.Length);
+            Buffer.BlockCopy(resource, 0, m_assemblyData.m_resourceBytes, 0, resource.Length);
         }
 
         [System.Security.SecuritySafeCritical]  // auto-generated
index 8ed84ee..f1a38c6 100644 (file)
@@ -77,7 +77,7 @@ namespace System.Reflection.Emit {
             if (m_iCABuilder == m_CABuilders.Length)
             {
                 CustomAttributeBuilder[]  tempCABuilders = new CustomAttributeBuilder[m_iCABuilder * 2];
-                Array.Copy(m_CABuilders, tempCABuilders, m_iCABuilder);
+                Array.Copy(m_CABuilders, 0, tempCABuilders, 0, m_iCABuilder);
                 m_CABuilders = tempCABuilders;            
             }
             m_CABuilders[m_iCABuilder] = customBuilder;
@@ -110,7 +110,7 @@ namespace System.Reflection.Emit {
             }
 
             byte[] attrs = new byte[binaryAttribute.Length];
-            Array.Copy(binaryAttribute, attrs, binaryAttribute.Length);
+            Buffer.BlockCopy(binaryAttribute, 0, attrs, 0, binaryAttribute.Length);
             m_CABytes[m_iCAs] = attrs;
             m_CACons[m_iCAs] = con;
             m_iCAs++;
@@ -449,7 +449,7 @@ namespace System.Reflection.Emit {
             if (m_iPublicComTypeCount == m_publicComTypeList.Length)
             {
                 Type[]  tempTypeList = new Type[m_iPublicComTypeCount * 2];
-                Array.Copy(m_publicComTypeList, tempTypeList, m_iPublicComTypeCount);
+                Array.Copy(m_publicComTypeList, 0, tempTypeList, 0, m_iPublicComTypeCount);
                 m_publicComTypeList = tempTypeList;            
             }
         }
index d8ca227..2a29a5c 100644 (file)
@@ -130,7 +130,7 @@ namespace System.Reflection.Emit {
             // Cache information used elsewhere.
             m_con = con;
             m_constructorArgs = new Object[constructorArgs.Length];
-            Array.Copy(constructorArgs, m_constructorArgs, constructorArgs.Length);
+            Array.Copy(constructorArgs, 0, m_constructorArgs, 0, constructorArgs.Length);
 
             Type[] paramTypes;
             int i;
index ae39d3c..6f6b436 100644 (file)
@@ -915,7 +915,7 @@ namespace System.Reflection.Emit
             public override ParameterInfo[] GetParameters() {
                 ParameterInfo[] privateParameters = LoadParameters();
                 ParameterInfo[] parameters = new ParameterInfo[privateParameters.Length];
-                Array.Copy(privateParameters, parameters, privateParameters.Length);
+                Array.Copy(privateParameters, 0, parameters, 0, privateParameters.Length);
                 return parameters;
             }
             
index 1d12431..15dece9 100644 (file)
@@ -28,44 +28,37 @@ namespace System.Reflection.Emit
         #endregion
 
         #region Internal Statics
-        internal static int[] EnlargeArray(int[] incoming)
+        internal static T[] EnlargeArray<T>(T[] incoming)
+        {
+            return EnlargeArray(incoming, incoming.Length * 2);
+        }
+        
+        internal static T[] EnlargeArray<T>(T[] incoming, int requiredSize)
         {
             Contract.Requires(incoming != null);
-            Contract.Ensures(Contract.Result<int[]>() != null);
-            Contract.Ensures(Contract.Result<int[]>().Length > incoming.Length);
-            int[] temp = new int [incoming.Length*2];
-            Array.Copy(incoming, temp, incoming.Length);
+            Contract.Ensures(Contract.Result<T[]>() != null);
+            Contract.Ensures(Contract.Result<T[]>().Length == requiredSize);
+            
+            T[] temp = new T[requiredSize];
+            Array.Copy(incoming, 0, temp, 0, incoming.Length);
             return temp;
         }
-
+        
         private static byte[] EnlargeArray(byte[] incoming)
         {
-            byte [] temp = new byte [incoming.Length*2];
-            Array.Copy(incoming, temp, incoming.Length);
-            return temp;
+            return EnlargeArray(incoming, incoming.Length * 2);
         }
 
         private static byte[] EnlargeArray(byte[] incoming, int requiredSize)
         {
-            byte [] temp = new byte [requiredSize];
-            Array.Copy(incoming, temp, incoming.Length);
-            return temp;
-        }
-
-        private static __FixupData[] EnlargeArray(__FixupData[] incoming)
-        {
-            __FixupData [] temp = new __FixupData[incoming.Length*2];
-            //Does arraycopy work for value classes?
-            Array.Copy(incoming, temp, incoming.Length);
+            Contract.Requires(incoming != null);
+            Contract.Ensures(Contract.Result<byte[]>() != null);
+            Contract.Ensures(Contract.Result<byte[]>().Length == requiredSize);
+            
+            byte[] temp = new byte[requiredSize];
+            Buffer.BlockCopy(incoming, 0, temp, 0, incoming.Length);
             return temp;
         }
-
-        private static __ExceptionInfo[] EnlargeArray(__ExceptionInfo[] incoming)
-        {
-            __ExceptionInfo[] temp = new __ExceptionInfo[incoming.Length*2];
-            Array.Copy(incoming, temp, incoming.Length);
-            return temp;
-        }        
         #endregion
 
         #region Internal Data Members
@@ -244,7 +237,7 @@ namespace System.Reflection.Emit
 
             int newSize;
             int updateAddr;
-            byte []newBytes;
+            byte[] newBytes;
 
             if (m_currExcStackCount != 0)
             {
@@ -260,7 +253,7 @@ namespace System.Reflection.Emit
             newBytes = new byte[newSize];
 
             //Copy the data from the old array
-            Array.Copy(m_ILStream, newBytes, newSize);
+            Buffer.BlockCopy(m_ILStream, 0, newBytes, 0, newSize);
 
             //Do the fixups.
             //This involves iterating over all of the labels and
@@ -313,7 +306,7 @@ namespace System.Reflection.Emit
             }
             
             temp = new __ExceptionInfo[m_exceptionCount];
-            Array.Copy(m_exceptions, temp, m_exceptionCount);
+            Array.Copy(m_exceptions, 0, temp, 0, m_exceptionCount);
             SortExceptions(temp);
             return temp;
         }
@@ -426,7 +419,7 @@ namespace System.Reflection.Emit
             }
 
             int[] narrowTokens = new int[m_RelocFixupCount];
-            Array.Copy(m_RelocFixupList, narrowTokens, m_RelocFixupCount);
+            Array.Copy(m_RelocFixupList, 0, narrowTokens, 0, m_RelocFixupCount);
             return narrowTokens;
         }
         #endregion
@@ -1459,13 +1452,6 @@ namespace System.Reflection.Emit
             m_currentState = State_Try;
         }
 
-        private static Type[] EnlargeArray(Type[] incoming)
-        {
-            Type[] temp = new Type[incoming.Length * 2];
-            Array.Copy(incoming, temp, incoming.Length);
-            return temp;
-        }
-
         private void MarkHelper(
             int         catchorfilterAddr,      // the starting address of a clause
             int         catchEndAddr,           // the end address of a previous catch clause. Only use when finally is following a catch
@@ -1476,7 +1462,7 @@ namespace System.Reflection.Emit
                 m_filterAddr=ILGenerator.EnlargeArray(m_filterAddr);
                 m_catchAddr=ILGenerator.EnlargeArray(m_catchAddr);
                 m_catchEndAddr=ILGenerator.EnlargeArray(m_catchEndAddr);
-                m_catchClass=__ExceptionInfo.EnlargeArray(m_catchClass);
+                m_catchClass=ILGenerator.EnlargeArray(m_catchClass);
                 m_type = ILGenerator.EnlargeArray(m_type);
             }
             if (type == Filter)
@@ -1763,15 +1749,15 @@ namespace System.Reflection.Emit
                 // It would probably be simpler to just use Lists here.
                 int newSize = checked(m_iCount * 2);
                 int[] temp = new int[newSize];
-                Array.Copy(m_iOffsets, temp, m_iCount);
+                Array.Copy(m_iOffsets, 0, temp, 0, m_iCount);
                 m_iOffsets = temp;
 
                 ScopeAction[] tempSA = new ScopeAction[newSize];
-                Array.Copy(m_ScopeActions, tempSA, m_iCount);
+                Array.Copy(m_ScopeActions, 0, tempSA, 0, m_iCount);
                 m_ScopeActions = tempSA;
 
                 LocalSymInfo[] tempLSI = new LocalSymInfo[newSize];
-                Array.Copy(m_localSymInfos, tempLSI, m_iCount);
+                Array.Copy(m_localSymInfos, 0, tempLSI, 0, m_iCount);
                 m_localSymInfos = tempLSI;
             }
         }
@@ -1883,7 +1869,7 @@ namespace System.Reflection.Emit
             {
                 // the arrays are full. Enlarge the arrays
                 REDocument[] temp = new REDocument [m_DocumentCount * 2];
-                Array.Copy(m_Documents, temp, m_DocumentCount);
+                Array.Copy(m_Documents, 0, temp, 0, m_DocumentCount);
                 m_Documents = temp;
             }
         }
@@ -1961,23 +1947,23 @@ namespace System.Reflection.Emit
                 // It would probably be simpler to just use Lists here
                 int newSize = checked(m_iLineNumberCount * 2);
                 int[] temp = new int [newSize];
-                Array.Copy(m_iOffsets, temp, m_iLineNumberCount);
+                Array.Copy(m_iOffsets, 0, temp, 0, m_iLineNumberCount);
                 m_iOffsets = temp;
 
                 temp = new int [newSize];
-                Array.Copy(m_iLines, temp, m_iLineNumberCount);
+                Array.Copy(m_iLines, 0, temp, 0, m_iLineNumberCount);
                 m_iLines = temp;
 
                 temp = new int [newSize];
-                Array.Copy(m_iColumns, temp, m_iLineNumberCount);
+                Array.Copy(m_iColumns, 0, temp, 0, m_iLineNumberCount);
                 m_iColumns = temp;
 
                 temp = new int [newSize];
-                Array.Copy(m_iEndLines, temp, m_iLineNumberCount);
+                Array.Copy(m_iEndLines, 0, temp, 0, m_iLineNumberCount);
                 m_iEndLines = temp;
 
                 temp = new int [newSize];
-                Array.Copy(m_iEndColumns, temp, m_iLineNumberCount);
+                Array.Copy(m_iEndColumns, 0, temp, 0, m_iLineNumberCount);
                 m_iEndColumns = temp;
             }
         }
@@ -1997,19 +1983,19 @@ namespace System.Reflection.Emit
                 return;
             // reduce the array size to be exact
             iOffsetsTemp = new int [m_iLineNumberCount];
-            Array.Copy(m_iOffsets, iOffsetsTemp, m_iLineNumberCount);
+            Array.Copy(m_iOffsets, 0, iOffsetsTemp, 0, m_iLineNumberCount);
 
             iLinesTemp = new int [m_iLineNumberCount];
-            Array.Copy(m_iLines, iLinesTemp, m_iLineNumberCount);
+            Array.Copy(m_iLines, 0, iLinesTemp, 0, m_iLineNumberCount);
 
             iColumnsTemp = new int [m_iLineNumberCount];
-            Array.Copy(m_iColumns, iColumnsTemp, m_iLineNumberCount);
+            Array.Copy(m_iColumns, 0, iColumnsTemp, 0, m_iLineNumberCount);
 
             iEndLinesTemp = new int [m_iLineNumberCount];
-            Array.Copy(m_iEndLines, iEndLinesTemp, m_iLineNumberCount);
+            Array.Copy(m_iEndLines, 0, iEndLinesTemp, 0, m_iLineNumberCount);
 
             iEndColumnsTemp = new int [m_iLineNumberCount];
-            Array.Copy(m_iEndColumns, iEndColumnsTemp, m_iLineNumberCount);
+            Array.Copy(m_iEndColumns, 0, iEndColumnsTemp, 0, m_iLineNumberCount);
 
             symWriter.DefineSequencePoints(m_document, iOffsetsTemp, iLinesTemp, iColumnsTemp, iEndLinesTemp, iEndColumnsTemp); 
         }
index ad9992c..4008703 100644 (file)
@@ -100,7 +100,7 @@ namespace System.Reflection.Emit
             // bit unfortunate, since it means that we need to allocate
             // yet another array of bytes...  
             mungedSig = new byte[sigLength - 1];
-            Array.Copy(signature, 1, mungedSig, 0, sigLength - 1);
+            Buffer.BlockCopy(signature, 1, mungedSig, 0, sigLength - 1);
             
             index = methodBuilder.GetILGenerator().m_ScopeTree.GetCurrentActiveScopeIndex();
             if (index == -1)
index 01a05de..015a73b 100644 (file)
@@ -153,7 +153,7 @@ namespace System.Reflection.Emit
             if (parameterTypes != null)
             {
                 m_parameterTypes = new Type[parameterTypes.Length];
-                Array.Copy(parameterTypes, m_parameterTypes, parameterTypes.Length);
+                Array.Copy(parameterTypes, 0, m_parameterTypes, 0, parameterTypes.Length);
             }
             else
             {
@@ -831,7 +831,7 @@ namespace System.Reflection.Emit
             if (parameterTypes != null)
             {
                 m_parameterTypes = new Type[parameterTypes.Length];
-                Array.Copy (parameterTypes, m_parameterTypes, parameterTypes.Length);
+                Array.Copy (parameterTypes, 0, m_parameterTypes, 0, parameterTypes.Length);
             }
 
             m_returnTypeRequiredCustomModifiers = returnTypeRequiredCustomModifiers;
@@ -1085,7 +1085,7 @@ namespace System.Reflection.Emit
             }
 
             m_ubBody = new byte[count];
-            Array.Copy(il,m_ubBody,count);
+            Buffer.BlockCopy(il, 0, m_ubBody, 0, count);
 
             m_localSignature = null;
             m_exceptions = null;
@@ -1300,7 +1300,7 @@ namespace System.Reflection.Emit
             else if (m_iNameSpaceCount == m_namespace.Length)
             {
                 String [] strTemp = new String [checked(m_iNameSpaceCount * 2)];
-                Array.Copy(m_namespace, strTemp, m_iNameSpaceCount);
+                Array.Copy(m_namespace, 0, strTemp, 0, m_iNameSpaceCount);
                 m_namespace = strTemp;
             }
         }
@@ -1322,23 +1322,23 @@ namespace System.Reflection.Emit
                 // why aren't we just using lists here?
                 int newSize = checked(m_iLocalSymCount * 2);
                 int[] temp = new int [newSize];
-                Array.Copy(m_iLocalSlot, temp, m_iLocalSymCount);
+                Array.Copy(m_iLocalSlot, 0, temp, 0, m_iLocalSymCount);
                 m_iLocalSlot = temp;
 
                 temp = new int [newSize];
-                Array.Copy(m_iStartOffset, temp, m_iLocalSymCount);
+                Array.Copy(m_iStartOffset, 0, temp, 0, m_iLocalSymCount);
                 m_iStartOffset = temp;
 
                 temp = new int [newSize];
-                Array.Copy(m_iEndOffset, temp, m_iLocalSymCount);
+                Array.Copy(m_iEndOffset, 0, temp, 0, m_iLocalSymCount);
                 m_iEndOffset = temp;
 
                 String [] strTemp = new String [newSize];
-                Array.Copy(m_strName, strTemp, m_iLocalSymCount);
+                Array.Copy(m_strName, 0, strTemp, 0, m_iLocalSymCount);
                 m_strName = strTemp;
 
                 byte[][] ubTemp = new byte[newSize][];
-                Array.Copy(m_ubSignature, ubTemp, m_iLocalSymCount);
+                Array.Copy(m_ubSignature, 0, ubTemp, 0, m_iLocalSymCount);
                 m_ubSignature = ubTemp;
 
             }
index 4d61c1d..05b1956 100644 (file)
@@ -1370,7 +1370,7 @@ namespace System.Reflection.Emit
                 throw new ArgumentException(Environment.GetResourceString("Argument_NativeResourceAlreadyDefined"));
                         
             m_moduleData.m_resourceBytes = new byte[resource.Length];
-            System.Array.Copy(resource, m_moduleData.m_resourceBytes, resource.Length);
+            Buffer.BlockCopy(resource, 0, m_moduleData.m_resourceBytes, 0, resource.Length);
         }
 
 #if FEATURE_CORECLR
@@ -2200,7 +2200,7 @@ namespace System.Reflection.Emit
             Contract.EndContractBlock();
 
             byte[] localSigBytes = new byte[sigBytes.Length];
-            Array.Copy(sigBytes, localSigBytes, sigBytes.Length);
+            Buffer.BlockCopy(sigBytes, 0, localSigBytes, 0, sigBytes.Length);
 
             return new SignatureToken(TypeBuilder.GetTokenFromSig(GetNativeHandle(), localSigBytes, sigLength), this);
         }
index b76ce5b..35e8cc7 100644 (file)
@@ -648,7 +648,7 @@ namespace System.Reflection.Emit
                 requiredLength = inArray.Length*2;
 
             byte[] outArray = new byte[requiredLength];
-            Array.Copy(inArray, outArray, inArray.Length);
+            Buffer.BlockCopy(inArray, 0, outArray, 0, inArray.Length);
             return outArray;
         }
     
@@ -712,7 +712,7 @@ namespace System.Reflection.Emit
             //so we just copy that byte.  Then copy the rest of the array, shifting everything
             //to make room for the new number of elements.
             temp[0] = m_signature[0];
-            Array.Copy(m_signature, m_sizeLoc + 1, temp, m_sizeLoc + newSigSize, currSigHolder - (m_sizeLoc + 1));
+            Buffer.BlockCopy(m_signature, m_sizeLoc + 1, temp, m_sizeLoc + newSigSize, currSigHolder - (m_sizeLoc + 1));
             m_signature = temp;
             
             //Use the AddData method to add the number of elements appropriately compressed.
@@ -807,7 +807,7 @@ namespace System.Reflection.Emit
             else
                 throw new ArgumentException(Environment.GetResourceString("Argument_LargeInteger"));
             // copy the sig part of the sig
-            Array.Copy(m_signature, 2, temp, sigCopyIndex, currSigLength - 2);
+            Buffer.BlockCopy(m_signature, 2, temp, sigCopyIndex, currSigLength - 2);
             // mark the end of sig
             temp[newSigSize - 1] = (byte)CorElementType.End;
     
@@ -935,7 +935,7 @@ namespace System.Reflection.Emit
             if (m_signature.Length > m_currSig) 
             {
                 byte[] temp = new byte[m_currSig];
-                Array.Copy(m_signature, temp, m_currSig);
+                Array.Copy(m_signature, 0, temp, 0, m_currSig);
                 m_signature = temp;
             }
 
index 9981ea6..62780f4 100644 (file)
@@ -44,7 +44,7 @@ namespace System.Reflection.Emit
             if (parameterTypes != null)
             {
                 m_parameterTypes = new Type[parameterTypes.Length];
-                Array.Copy(parameterTypes, m_parameterTypes, parameterTypes.Length);
+                Array.Copy(parameterTypes, 0, m_parameterTypes, 0, parameterTypes.Length);
             }
             else
             {
index e08f113..6cc7a47 100644 (file)
@@ -251,9 +251,9 @@ namespace System.Reflection.Emit
             {
                 // resize the bound array
                 int[]  iaTemp = new int[m_cRank * 2];
-                Array.Copy(m_iaLowerBound, iaTemp, m_cRank);
+                Array.Copy(m_iaLowerBound, 0, iaTemp, 0, m_cRank);
                 m_iaLowerBound = iaTemp;            
-                Array.Copy(m_iaUpperBound, iaTemp, m_cRank);
+                Array.Copy(m_iaUpperBound, 0, iaTemp, 0, m_cRank);
                 m_iaUpperBound = iaTemp;            
             }
 
index ea1e6fe..9861bcb 100644 (file)
@@ -228,7 +228,7 @@ namespace System.Reflection.Emit {
             if (attr != null)
             {
                 localAttr = new byte[attr.Length];
-                Array.Copy(attr, localAttr, attr.Length);
+                Buffer.BlockCopy(attr, 0, localAttr, 0, attr.Length);
             }
 
             DefineCustomAttribute(module.GetNativeHandle(), tkAssociate, tkConstructor, 
index eb35ef6..5247c47 100644 (file)
@@ -36,7 +36,7 @@ namespace System.Reflection
         public static FieldInfo GetFieldFromHandle(RuntimeFieldHandle handle)
         {
             if (handle.IsNullHandle())
-                throw new ArgumentException(Environment.GetResourceString("Argument_InvalidHandle"));
+                throw new ArgumentException(Environment.GetResourceString("Argument_InvalidHandle"), "handle");
                 
             FieldInfo f = RuntimeType.GetFieldInfo(handle.GetRuntimeFieldInfo());
                        
index b8a1052..5420551 100644 (file)
@@ -586,7 +586,7 @@ namespace System.Reflection
         [System.Security.SecurityCritical]  // auto-generated
         [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
                [SuppressUnmanagedCodeSecurity]
-        private extern static void GetType(RuntimeModule module, String className, bool ignoreCase, bool throwOnError, ObjectHandleOnStack type);
+        private extern static void GetType(RuntimeModule module, String className, bool ignoreCase, bool throwOnError, ObjectHandleOnStack type, ObjectHandleOnStack keepAlive);
 
         [System.Security.SecurityCritical]
         [DllImport(JitHelpers.QCall)]
@@ -1056,7 +1056,9 @@ namespace System.Reflection
                 throw new ArgumentNullException("className");
 
             RuntimeType retType = null;
-            GetType(GetNativeHandle(), className, throwOnError, ignoreCase, JitHelpers.GetObjectHandleOnStack(ref retType));
+            Object keepAlive = null;
+            GetType(GetNativeHandle(), className, throwOnError, ignoreCase, JitHelpers.GetObjectHandleOnStack(ref retType), JitHelpers.GetObjectHandleOnStack(ref keepAlive));
+            GC.KeepAlive(keepAlive);
             return retType;
         }
 
index ede530b..dc506c9 100644 (file)
@@ -73,16 +73,17 @@ namespace System.Runtime.CompilerServices
             // This allows us to undo any ExecutionContext changes made in MoveNext,
             // so that they won't "leak" out of the first await.
 
+            Thread currentThread = Thread.CurrentThread;
             ExecutionContextSwitcher ecs = default(ExecutionContextSwitcher);
             RuntimeHelpers.PrepareConstrainedRegions();
             try
             {
-                ExecutionContext.EstablishCopyOnWriteScope(ref ecs);
+                ExecutionContext.EstablishCopyOnWriteScope(currentThread, ref ecs);
                 stateMachine.MoveNext();
             }
             finally
             {
-                ecs.Undo();
+                ecs.Undo(currentThread);
             }
         }
 
@@ -307,16 +308,17 @@ namespace System.Runtime.CompilerServices
             // This allows us to undo any ExecutionContext changes made in MoveNext,
             // so that they won't "leak" out of the first await.
 
+            Thread currentThread = Thread.CurrentThread;
             ExecutionContextSwitcher ecs = default(ExecutionContextSwitcher);
             RuntimeHelpers.PrepareConstrainedRegions();
             try
             {
-                ExecutionContext.EstablishCopyOnWriteScope(ref ecs);
+                ExecutionContext.EstablishCopyOnWriteScope(currentThread, ref ecs);
                 stateMachine.MoveNext();
             }
             finally
             {
-                ecs.Undo();
+                ecs.Undo(currentThread);
             }
         }
 
@@ -462,16 +464,17 @@ namespace System.Runtime.CompilerServices
             // This allows us to undo any ExecutionContext changes made in MoveNext,
             // so that they won't "leak" out of the first await.
 
+            Thread currentThread = Thread.CurrentThread;
             ExecutionContextSwitcher ecs = default(ExecutionContextSwitcher);
             RuntimeHelpers.PrepareConstrainedRegions();
             try
             {
-                ExecutionContext.EstablishCopyOnWriteScope(ref ecs);
+                ExecutionContext.EstablishCopyOnWriteScope(currentThread, ref ecs);
                 stateMachine.MoveNext();
             }
             finally
             {
-                ecs.Undo();
+                ecs.Undo(currentThread);
             }
         }
 
@@ -868,12 +871,12 @@ namespace System.Runtime.CompilerServices
             RuntimeHelpers.PrepareConstrainedRegions();
             try
             {
-                ExecutionContext.EstablishCopyOnWriteScope(ref ecs);
+                ExecutionContext.EstablishCopyOnWriteScope(currentThread, ref ecs);
                 stateMachine.MoveNext();
             }
             finally
             {
-                ecs.Undo();
+                ecs.Undo(currentThread);
             }
         }
 #endif
index 9e6ae6b..06c963a 100644 (file)
@@ -516,6 +516,9 @@ namespace System.Runtime.InteropServices{
         
         [System.Runtime.InteropServices.ComVisible(false)]
         HString          = 0x2f,        // Windows Runtime HSTRING
+
+        [System.Runtime.InteropServices.ComVisible(false)]
+        LPUTF8Str        = 0x30,        // UTF8 string
     }
 
     [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.ReturnValue, Inherited = false)]
index ea675f8..3af866a 100644 (file)
@@ -116,7 +116,7 @@ namespace System.Runtime.InteropServices
         //====================================================================
         [MethodImplAttribute(MethodImplOptions.InternalCall)]
         private static extern int GetSystemMaxDBCSCharSize();
-
+        
         [System.Security.SecurityCritical]  // auto-generated_required
         unsafe public static String PtrToStringAnsi(IntPtr ptr)
         {
@@ -185,7 +185,40 @@ namespace System.Runtime.InteropServices
         {
             // Ansi platforms are no longer supported
             return PtrToStringUni(ptr);
-        }            
+        }
+
+        [System.Security.SecurityCritical]  // auto-generated_required
+        unsafe public static String PtrToStringUTF8(IntPtr ptr)
+        {
+            int nbBytes = System.StubHelpers.StubHelpers.strlen((sbyte*)ptr.ToPointer());
+            return PtrToStringUTF8(ptr, nbBytes);
+        }
+
+        [System.Security.SecurityCritical]  // auto-generated_required
+        unsafe public static String PtrToStringUTF8(IntPtr ptr,int byteLen)
+        {
+            if (byteLen < 0)
+            {
+                throw new ArgumentException("byteLen");
+            }
+            else if (IntPtr.Zero == ptr)
+            {
+                return null;
+            }
+            else if (IsWin32Atom(ptr))
+            {
+                return null;
+            }
+            else if (byteLen == 0)
+            {
+                return string.Empty;
+            }
+            else
+            {
+                byte* pByte = (byte*)ptr.ToPointer();
+                return Encoding.UTF8.GetString(pByte, byteLen);
+            }
+        }
 
         //====================================================================
         // SizeOf()
@@ -1060,7 +1093,7 @@ namespace System.Runtime.InteropServices
             }
 
             if (rtModule == null)
-                throw new ArgumentNullException(Environment.GetResourceString("Argument_MustBeRuntimeModule"));
+                throw new ArgumentNullException("m",Environment.GetResourceString("Argument_MustBeRuntimeModule"));
 
             return GetHINSTANCE(rtModule.GetNativeHandle());
         }    
@@ -1872,6 +1905,38 @@ namespace System.Runtime.InteropServices
         }
 
         [System.Security.SecurityCritical]  // auto-generated_required
+        unsafe public static IntPtr StringToCoTaskMemUTF8(String s)
+        {
+            const int MAX_UTF8_CHAR_SIZE = 3;
+            if (s == null)
+            {
+                return IntPtr.Zero;
+            }
+            else
+            {
+                int nb = (s.Length + 1) * MAX_UTF8_CHAR_SIZE;
+
+                // Overflow checking
+                if (nb < s.Length)
+                    throw new ArgumentOutOfRangeException("s");
+
+                IntPtr pMem = Win32Native.CoTaskMemAlloc(new UIntPtr((uint)nb +1));
+
+                if (pMem == IntPtr.Zero)
+                {
+                    throw new OutOfMemoryException();
+                }
+                else
+                {
+                    byte* pbMem = (byte*)pMem;
+                    int nbWritten = s.GetBytesFromEncoding(pbMem, nb, Encoding.UTF8);
+                    pbMem[nbWritten] = 0;
+                    return pMem;
+                }
+            }
+        }
+
+        [System.Security.SecurityCritical]  // auto-generated_required
         public static IntPtr StringToCoTaskMemAuto(String s)
         {
             // Ansi platforms are no longer supported
@@ -2659,6 +2724,13 @@ namespace System.Runtime.InteropServices
             FreeCoTaskMem(s);
         }
 
+        [System.Security.SecurityCritical]  // auto-generated_required
+        unsafe public static void ZeroFreeMemoryUTF8(IntPtr s)
+        {
+            Win32Native.ZeroMemory(s, (UIntPtr)System.StubHelpers.StubHelpers.strlen((sbyte*)s));
+            FreeCoTaskMem(s);
+        }
+
 #if FEATURE_LEGACYSURFACE
         [System.Security.SecurityCritical]  // auto-generated_required
         public static IntPtr SecureStringToGlobalAllocAnsi(SecureString s) {
diff --git a/src/mscorlib/src/System/Runtime/InteropServices/NativeBuffer.cs b/src/mscorlib/src/System/Runtime/InteropServices/NativeBuffer.cs
new file mode 100644 (file)
index 0000000..9426162
--- /dev/null
@@ -0,0 +1,175 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System.Runtime.CompilerServices;
+
+namespace System.Runtime.InteropServices
+{
+    /// <summary>
+    /// Wrapper for access to the native heap. Dispose to free the memory. Try to use with using statements.
+    /// Does not allocate zero size buffers, and will free the existing native buffer if capacity is dropped to zero.
+    /// </summary>
+    /// <remarks>
+    /// Suggested use through P/Invoke: define DllImport arguments that take a byte buffer as SafeHandle.
+    /// 
+    /// Using SafeHandle will ensure that the buffer will not get collected during a P/Invoke.
+    /// (Notably AddRef and ReleaseRef will be called by the interop layer.)
+    /// 
+    /// This class is not threadsafe, changing the capacity or disposing on multiple threads risks duplicate heap
+    /// handles or worse.
+    /// </remarks>
+    internal class NativeBuffer : IDisposable
+    {
+        [System.Security.SecurityCritical]
+        private readonly static SafeHandle s_emptyHandle;
+        [System.Security.SecurityCritical]
+        private SafeHeapHandle _handle;
+        private ulong _capacity;
+
+        [System.Security.SecuritySafeCritical]
+        static NativeBuffer()
+        {
+            s_emptyHandle = new EmptySafeHandle();
+        }
+
+        /// <summary>
+        /// Create a buffer with at least the specified initial capacity in bytes.
+        /// </summary>
+        public NativeBuffer(ulong initialMinCapacity = 0)
+        {
+            EnsureByteCapacity(initialMinCapacity);
+        }
+
+        protected unsafe void* VoidPointer
+        {
+            [MethodImpl(MethodImplOptions.AggressiveInlining)]
+            [System.Security.SecurityCritical]
+            get
+            {
+                return _handle == null ? null : _handle.DangerousGetHandle().ToPointer();
+            }
+        }
+
+        protected unsafe byte* BytePointer
+        {
+            [System.Security.SecurityCritical]
+            get
+            {
+                return (byte*)VoidPointer;
+            }
+        }
+
+        /// <summary>
+        /// Get the handle for the buffer.
+        /// </summary>
+        [System.Security.SecuritySafeCritical]
+        public SafeHandle GetHandle()
+        {
+            // Marshalling code will throw on null for SafeHandle
+            return _handle ?? s_emptyHandle;
+        }
+
+        /// <summary>
+        /// The capacity of the buffer in bytes.
+        /// </summary>
+        public ulong ByteCapacity
+        {
+            get { return _capacity; }
+        }
+
+        /// <summary>
+        /// Ensure capacity in bytes is at least the given minimum.
+        /// </summary>
+        /// <exception cref="OutOfMemoryException">Thrown if unable to allocate memory when setting.</exception>
+        /// <exception cref="ArgumentOutOfRangeException">Thrown if attempting to set <paramref name="nameof(minCapacity)"/> to a value that is larger than the maximum addressable memory.</exception>
+        [System.Security.SecuritySafeCritical]
+        public void EnsureByteCapacity(ulong minCapacity)
+        {
+            if (_capacity < minCapacity)
+            {
+                Resize(minCapacity);
+                _capacity = minCapacity;
+            }
+        }
+
+        public unsafe byte this[ulong index]
+        {
+            [System.Security.SecuritySafeCritical]
+            get
+            {
+                if (index >= _capacity) throw new ArgumentOutOfRangeException();
+                return BytePointer[index];
+            }
+            [System.Security.SecuritySafeCritical]
+            set
+            {
+                if (index >= _capacity) throw new ArgumentOutOfRangeException();
+                BytePointer[index] = value;
+            }
+        }
+
+        [System.Security.SecuritySafeCritical]
+        private unsafe void Resize(ulong byteLength)
+        {
+            if (byteLength == 0)
+            {
+                ReleaseHandle();
+                return;
+            }
+
+            if (_handle == null)
+            {
+                _handle = new SafeHeapHandle(byteLength);
+            }
+            else
+            {
+                _handle.Resize(byteLength);
+            }
+        }
+
+        [System.Security.SecuritySafeCritical]
+        private void ReleaseHandle()
+        {
+            if (_handle != null)
+            {
+                _capacity = 0;
+                _handle = null;
+            }
+        }
+
+        /// <summary>
+        /// Release the backing buffer
+        /// </summary>
+        [System.Security.SecuritySafeCritical]
+        public virtual void Free()
+        {
+            ReleaseHandle();
+        }
+
+        [System.Security.SecuritySafeCritical]
+        public void Dispose()
+        {
+            Free();
+        }
+
+        [System.Security.SecurityCritical]
+        private sealed class EmptySafeHandle : SafeHandle
+        {
+            public EmptySafeHandle() : base(IntPtr.Zero, true) { }
+
+            public override bool IsInvalid
+            {
+                [System.Security.SecurityCritical]
+                get
+                { return true; }
+            }
+
+            [System.Security.SecurityCritical]
+            protected override bool ReleaseHandle()
+            {
+                return true;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/mscorlib/src/System/Runtime/InteropServices/SafeHeapHandle.cs b/src/mscorlib/src/System/Runtime/InteropServices/SafeHeapHandle.cs
new file mode 100644 (file)
index 0000000..b0c422d
--- /dev/null
@@ -0,0 +1,115 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+namespace System.Runtime.InteropServices
+{
+    /// <summary>
+    /// Handle for heap memory that allows tracking of capacity and reallocating.
+    /// </summary>
+    [System.Security.SecurityCritical]
+    internal sealed class SafeHeapHandle : SafeBuffer
+    {
+        /// <summary>
+        /// Allocate a buffer of the given size if requested.
+        /// </summary>
+        /// <param name="byteLength">Required size in bytes. Must be less than UInt32.MaxValue for 32 bit or UInt64.MaxValue for 64 bit.</param>
+        /// <exception cref="OutOfMemoryException">Thrown if the requested memory size cannot be allocated.</exception>
+        /// <exception cref="ArgumentOutOfRangeException">Thrown if size is greater than the maximum memory size.</exception>
+        public SafeHeapHandle(ulong byteLength) : base(ownsHandle: true)
+        {
+            Resize(byteLength);
+        }
+
+        public override bool IsInvalid
+        {
+            [System.Security.SecurityCritical]
+            get
+            { return handle == IntPtr.Zero; }
+        }
+
+        /// <summary>
+        /// Resize the buffer to the given size if requested.
+        /// </summary>
+        /// <param name="byteLength">Required size in bytes. Must be less than UInt32.MaxValue for 32 bit or UInt64.MaxValue for 64 bit.</param>
+        /// <exception cref="OutOfMemoryException">Thrown if the requested memory size cannot be allocated.</exception>
+        /// <exception cref="ArgumentOutOfRangeException">Thrown if size is greater than the maximum memory size.</exception>
+        public void Resize(ulong byteLength)
+        {
+            if (IsClosed) throw new ObjectDisposedException("SafeHeapHandle");
+
+            ulong originalLength = 0;
+            if (handle == IntPtr.Zero)
+            {
+                handle = Marshal.AllocHGlobal((IntPtr)byteLength);
+            }
+            else
+            {
+                originalLength = ByteLength;
+
+                // This may or may not be the same handle, may realloc in place. If the
+                // handle changes Windows will deal with the old handle, trying to free it will
+                // cause an error.
+                handle = Marshal.ReAllocHGlobal(pv: handle, cb: (IntPtr)byteLength);
+            }
+
+            if (handle == IntPtr.Zero)
+            {
+                // Only real plausible answer
+                throw new OutOfMemoryException();
+            }
+
+            if (byteLength > originalLength)
+            {
+                // Add pressure
+                ulong addedBytes = byteLength - originalLength;
+                if (addedBytes > long.MaxValue)
+                {
+                    GC.AddMemoryPressure(long.MaxValue);
+                    GC.AddMemoryPressure((long)(addedBytes - long.MaxValue));
+                }
+                else
+                {
+                    GC.AddMemoryPressure((long)addedBytes);
+                }
+            }
+            else
+            {
+                // Shrank or did nothing, release pressure if needed
+                RemoveMemoryPressure(originalLength - byteLength);
+            }
+
+            Initialize(byteLength);
+        }
+
+        private void RemoveMemoryPressure(ulong removedBytes)
+        {
+            if (removedBytes == 0) return;
+
+            if (removedBytes > long.MaxValue)
+            {
+                GC.RemoveMemoryPressure(long.MaxValue);
+                GC.RemoveMemoryPressure((long)(removedBytes - long.MaxValue));
+            }
+            else
+            {
+                GC.RemoveMemoryPressure((long)removedBytes);
+            }
+        }
+
+        [System.Security.SecurityCritical]
+        protected override bool ReleaseHandle()
+        {
+            IntPtr handle = this.handle;
+            this.handle = IntPtr.Zero;
+
+            if (handle != IntPtr.Zero)
+            {
+                RemoveMemoryPressure(ByteLength);
+                Marshal.FreeHGlobal(handle);
+            }
+
+            return true;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/mscorlib/src/System/Runtime/InteropServices/StringBuffer.cs b/src/mscorlib/src/System/Runtime/InteropServices/StringBuffer.cs
new file mode 100644 (file)
index 0000000..15b1b6a
--- /dev/null
@@ -0,0 +1,402 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+namespace System.Runtime.InteropServices
+{
+    /// <summary>
+    /// Native buffer that deals in char size increments. Dispose to free memory. Allows buffers larger
+    /// than a maximum size string to enable working with very large string arrays.  Always makes ordinal
+    /// comparisons.
+    /// 
+    /// A more performant replacement for StringBuilder when performing native interop.
+    /// </summary>
+    /// <remarks>
+    /// Suggested use through P/Invoke: define DllImport arguments that take a character buffer as IntPtr.
+    /// NativeStringBuffer has an implicit conversion to IntPtr.
+    /// </remarks>
+    internal class StringBuffer : NativeBuffer
+    {
+        private uint _length;
+
+        /// <summary>
+        /// Instantiate the buffer with capacity for at least the specified number of characters. Capacity
+        /// includes the trailing null character.
+        /// </summary>
+        public StringBuffer(uint initialCapacity = 0)
+            : base(initialCapacity * (ulong)sizeof(char))
+        {
+        }
+
+        /// <summary>
+        /// Instantiate the buffer with a copy of the specified string.
+        /// </summary>
+        public StringBuffer(string initialContents)
+            : base(0)
+        {
+            // We don't pass the count of bytes to the base constructor, appending will
+            // initialize to the correct size for the specified initial contents.
+            if (initialContents != null)
+            {
+                Append(initialContents);
+            }
+        }
+
+        /// <summary>
+        /// Instantiate the buffer with a copy of the specified StringBuffer.
+        /// </summary>
+        public StringBuffer(StringBuffer initialContents)
+            : base(0)
+        {
+            // We don't pass the count of bytes to the base constructor, appending will
+            // initialize to the correct size for the specified initial contents.
+            if (initialContents != null)
+            {
+                Append(initialContents);
+            }
+        }
+
+        /// <summary>
+        /// Get/set the character at the given index.
+        /// </summary>
+        /// <exception cref="ArgumentOutOfRangeException">Thrown if attempting to index outside of the buffer length.</exception>
+        public unsafe char this[uint index]
+        {
+            [System.Security.SecuritySafeCritical]
+            get
+            {
+                if (index >= _length) throw new ArgumentOutOfRangeException("index");
+                return CharPointer[index];
+            }
+            [System.Security.SecuritySafeCritical]
+            set
+            {
+                if (index >= _length) throw new ArgumentOutOfRangeException("index");
+                CharPointer[index] = value;
+            }
+        }
+
+        /// <summary>
+        /// Character capacity of the buffer. Includes the count for the trailing null character.
+        /// </summary>
+        public uint CharCapacity
+        {
+            [System.Security.SecuritySafeCritical]
+            get
+            {
+                ulong byteCapacity = ByteCapacity;
+                ulong charCapacity = byteCapacity == 0 ? 0 : byteCapacity / sizeof(char);
+                return charCapacity > uint.MaxValue ? uint.MaxValue : (uint)charCapacity;
+            }
+        }
+
+        /// <summary>
+        /// Ensure capacity in characters is at least the given minimum. Capacity includes space for the trailing
+        /// null, which is not part of the Length.
+        /// </summary>
+        /// <exception cref="OutOfMemoryException">Thrown if unable to allocate memory when setting.</exception>
+        [System.Security.SecuritySafeCritical]
+        public void EnsureCharCapacity(uint minCapacity)
+        {
+            EnsureByteCapacity(minCapacity * (ulong)sizeof(char));
+        }
+
+        /// <summary>
+        /// The logical length of the buffer in characters. (Does not include the final null, which is auto appended.) Will automatically attempt to increase capacity.
+        /// This is where the usable data ends.
+        /// </summary>
+        /// <exception cref="OutOfMemoryException">Thrown if unable to allocate memory when setting.</exception>
+        /// <exception cref="ArgumentOutOfRangeException">Thrown if the set size in bytes is uint.MaxValue (as space is implicitly reservced for the trailing null).</exception>
+        public unsafe uint Length
+        {
+            get { return _length; }
+            [System.Security.SecuritySafeCritical]
+            set
+            {
+                if (value == uint.MaxValue) throw new ArgumentOutOfRangeException("Length");
+
+                // Null terminate
+                EnsureCharCapacity(value + 1);
+                CharPointer[value] = '\0';
+
+                _length = value;
+            }
+        }
+
+        /// <summary>
+        /// For use when the native api null terminates but doesn't return a length.
+        /// If no null is found, the length will not be changed.
+        /// </summary>
+        [System.Security.SecuritySafeCritical]
+        public unsafe void SetLengthToFirstNull()
+        {
+            char* buffer = CharPointer;
+            uint capacity = CharCapacity;
+            for (uint i = 0; i < capacity; i++)
+            {
+                if (buffer[i] == '\0')
+                {
+                    _length = i;
+                    break;
+                }
+            }
+        }
+
+        internal unsafe char* CharPointer
+        {
+            [System.Security.SecurityCritical]
+            get
+            {
+                return (char*)VoidPointer;
+            }
+        }
+
+        /// <summary>
+        /// True if the buffer contains the given character.
+        /// </summary>
+        [System.Security.SecurityCritical]
+        public unsafe bool Contains(char value)
+        {
+            char* start = CharPointer;
+            uint length = _length;
+
+            for (uint i = 0; i < length; i++)
+            {
+                if (*start++ == value) return true;
+            }
+
+            return false;
+        }
+
+        /// <summary>
+        /// Returns true if the buffer starts with the given string.
+        /// </summary>
+        [System.Security.SecuritySafeCritical]
+        public bool StartsWith(string value)
+        {
+            if (value == null) throw new ArgumentNullException("value");
+            if (_length < (uint)value.Length) return false;
+            return SubstringEquals(value, startIndex: 0, count: value.Length);
+        }
+
+        /// <summary>
+        /// Returns true if the specified StringBuffer substring equals the given value.
+        /// </summary>
+        /// <param name="value">The value to compare against the specified substring.</param>
+        /// <param name="startIndex">Start index of the sub string.</param>
+        /// <param name="count">Length of the substring, or -1 to check all remaining.</param>
+        /// <exception cref="ArgumentOutOfRangeException">
+        /// Thrown if <paramref name="startIndex"/> or <paramref name="count"/> are outside the range
+        /// of the buffer's length.
+        /// </exception>
+        [System.Security.SecuritySafeCritical]
+        public unsafe bool SubstringEquals(string value, uint startIndex = 0, int count = -1)
+        {
+            if (value == null) return false;
+            if (count < -1) throw new ArgumentOutOfRangeException("count");
+            if (startIndex > _length) throw new ArgumentOutOfRangeException("startIndex");
+
+            uint realCount = count == -1 ? _length - startIndex : (uint)count;
+            if (checked(startIndex + realCount) > _length) throw new ArgumentOutOfRangeException("count");
+
+            int length = value.Length;
+
+            // Check the substring length against the input length
+            if (realCount != (uint)length) return false;
+
+            fixed (char* valueStart = value)
+            {
+                char* bufferStart = CharPointer + startIndex;
+                for (int i = 0; i < length; i++)
+                {
+                    // Note that indexing in this case generates faster code than trying to copy the pointer and increment it
+                    if (*bufferStart++ != valueStart[i]) return false;
+                }
+            }
+
+            return true;
+        }
+
+        /// <summary>
+        /// Append the given string.
+        /// </summary>
+        /// <param name="value">The string to append.</param>
+        /// <param name="startIndex">The index in the input string to start appending from.</param>
+        /// <param name="count">The count of characters to copy from the input string, or -1 for all remaining.</param>
+        /// <exception cref="ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
+        /// <exception cref="ArgumentOutOfRangeException">
+        /// Thrown if <paramref name="startIndex"/> or <paramref name="count"/> are outside the range
+        /// of <paramref name="value"/> characters.
+        /// </exception>
+        [System.Security.SecuritySafeCritical]
+        public void Append(string value, int startIndex = 0, int count = -1)
+        {
+            CopyFrom(
+                bufferIndex: _length,
+                source: value,
+                sourceIndex: startIndex,
+                count: count);
+        }
+
+        /// <summary>
+        /// Append the given buffer.
+        /// </summary>
+        /// <param name="value">The buffer to append.</param>
+        /// <param name="startIndex">The index in the input buffer to start appending from.</param>
+        /// <exception cref="ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
+        /// <exception cref="ArgumentOutOfRangeException">
+        /// Thrown if <paramref name="startIndex"/> is outside the range of <paramref name="value"/> characters.
+        /// </exception>
+        public void Append(StringBuffer value, uint startIndex = 0)
+        {
+            if (value == null) throw new ArgumentNullException("value");
+            if (value.Length == 0) return;
+            value.CopyTo(
+                bufferIndex: startIndex,
+                destination: this,
+                destinationIndex: _length,
+                count: value.Length);
+        }
+
+        /// <summary>
+        /// Append the given buffer.
+        /// </summary>
+        /// <param name="value">The buffer to append.</param>
+        /// <param name="startIndex">The index in the input buffer to start appending from.</param>
+        /// <param name="count">The count of characters to copy from the buffer string.</param>
+        /// <exception cref="ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
+        /// <exception cref="ArgumentOutOfRangeException">
+        /// Thrown if <paramref name="startIndex"/> or <paramref name="count"/> are outside the range
+        /// of <paramref name="value"/> characters.
+        /// </exception>
+        public void Append(StringBuffer value, uint startIndex, uint count)
+        {
+            if (value == null) throw new ArgumentNullException("value");
+            if (count == 0) return;
+            value.CopyTo(
+                bufferIndex: startIndex,
+                destination: this,
+                destinationIndex: _length,
+                count: count);
+        }
+
+        /// <summary>
+        /// Copy contents to the specified buffer. Destination index must be within current destination length.
+        /// Will grow the destination buffer if needed.
+        /// </summary>
+        /// <exception cref="ArgumentOutOfRangeException">
+        /// Thrown if <paramref name="bufferIndex"/> or <paramref name="destinationIndex"/> or <paramref name="count"/> are outside the range
+        /// of <paramref name="value"/> characters.
+        /// </exception>
+        /// <exception cref="ArgumentNullException">Thrown if <paramref name="destination"/> is null.</exception>
+        [System.Security.SecuritySafeCritical]
+        public unsafe void CopyTo(uint bufferIndex, StringBuffer destination, uint destinationIndex, uint count)
+        {
+            if (destination == null) throw new ArgumentNullException("destination");
+            if (destinationIndex > destination._length) throw new ArgumentOutOfRangeException("destinationIndex");
+            if (bufferIndex >= _length) throw new ArgumentOutOfRangeException("bufferIndex");
+            if (_length < checked(bufferIndex + count)) throw new ArgumentOutOfRangeException("count");
+
+            if (count == 0) return;
+            uint lastIndex = checked(destinationIndex + count);
+            if (destination._length < lastIndex) destination.Length = lastIndex;
+
+            Buffer.MemoryCopy(
+                source: CharPointer + bufferIndex,
+                destination: destination.CharPointer + destinationIndex,
+                destinationSizeInBytes: checked((long)(destination.ByteCapacity - (destinationIndex * sizeof(char)))),
+                sourceBytesToCopy: checked((long)count * sizeof(char)));
+        }
+
+        /// <summary>
+        /// Copy contents from the specified string into the buffer at the given index. Start index must be within the current length of
+        /// the buffer, will grow as necessary.
+        /// </summary>
+        /// <exception cref="ArgumentOutOfRangeException">
+        /// Thrown if <paramref name="bufferIndex"/> or <paramref name="sourceIndex"/> or <paramref name="count"/> are outside the range
+        /// of <paramref name="value"/> characters.
+        /// </exception>
+        /// <exception cref="ArgumentNullException">Thrown if <paramref name="source"/> is null.</exception>
+        [System.Security.SecuritySafeCritical]
+        public unsafe void CopyFrom(uint bufferIndex, string source, int sourceIndex = 0, int count = -1)
+        {
+            if (source == null) throw new ArgumentNullException("source");
+            if (bufferIndex > _length) throw new ArgumentOutOfRangeException("bufferIndex");
+            if (sourceIndex < 0 || sourceIndex >= source.Length) throw new ArgumentOutOfRangeException("sourceIndex");
+            if (count == -1) count = source.Length - sourceIndex;
+            if (count < 0 || source.Length - count < sourceIndex) throw new ArgumentOutOfRangeException("count");
+
+            if (count == 0) return;
+            uint lastIndex = bufferIndex + (uint)count;
+            if (_length < lastIndex) Length = lastIndex;
+
+            fixed (char* content = source)
+            {
+                Buffer.MemoryCopy(
+                    source: content + sourceIndex,
+                    destination: CharPointer + bufferIndex,
+                    destinationSizeInBytes: checked((long)(ByteCapacity - (bufferIndex * sizeof(char)))),
+                    sourceBytesToCopy: (long)count * sizeof(char));
+            }
+        }
+
+        /// <summary>
+        /// Trim the specified values from the end of the buffer. If nothing is specified, nothing is trimmed.
+        /// </summary>
+        [System.Security.SecuritySafeCritical]
+        public unsafe void TrimEnd(char[] values)
+        {
+            if (values == null || values.Length == 0 || _length == 0) return;
+
+            char* end = CharPointer + _length - 1;
+
+            while (_length > 0 && Array.IndexOf(values, *end) >= 0)
+            {
+                Length = _length - 1;
+                end--;
+            }
+        }
+
+        /// <summary>
+        /// String representation of the entire buffer. If the buffer is larger than the maximum size string (int.MaxValue) this will throw.
+        /// </summary>
+        /// <exception cref="InvalidOperationException">Thrown if the buffer is too big to fit into a string.</exception>
+        [System.Security.SecuritySafeCritical]
+        public unsafe override string ToString()
+        {
+            if (_length == 0) return string.Empty;
+            if (_length > int.MaxValue) throw new InvalidOperationException();
+            return new string(CharPointer, startIndex: 0, length: (int)_length);
+        }
+
+        /// <summary>
+        /// Get the given substring in the buffer.
+        /// </summary>
+        /// <param name="count">Count of characters to take, or remaining characters from <paramref name="startIndex"/> if -1.</param>
+        /// <exception cref="ArgumentOutOfRangeException">
+        /// Thrown if <paramref name="startIndex"/> or <paramref name="count"/> are outside the range of the buffer's length
+        /// or count is greater than the maximum string size (int.MaxValue).
+        /// </exception>
+        [System.Security.SecuritySafeCritical]
+        public unsafe string Substring(uint startIndex, int count = -1)
+        {
+            if (startIndex > (_length == 0 ? 0 : _length - 1)) throw new ArgumentOutOfRangeException("startIndex");
+            if (count < -1) throw new ArgumentOutOfRangeException("count");
+
+            uint realCount = count == -1 ? _length - startIndex : (uint)count;
+            if (realCount > int.MaxValue || checked(startIndex + realCount) > _length) throw new ArgumentOutOfRangeException("count");
+            if (realCount == 0) return string.Empty;
+
+            // The buffer could be bigger than will fit into a string, but the substring might fit. As the starting
+            // index might be bigger than int we need to index ourselves.
+            return new string(value: CharPointer + startIndex, startIndex: 0, length: (int)realCount);
+        }
+
+        [System.Security.SecuritySafeCritical]
+        public override void Free()
+        {
+            base.Free();
+            _length = 0;
+        }
+    }
+}
\ No newline at end of file
index 6b53ba3..527fbe4 100644 (file)
@@ -111,13 +111,6 @@ namespace System.Runtime.Loader
                 throw new ArgumentException( Environment.GetResourceString("Argument_AbsolutePathRequired"), "nativeImagePath");
             }
 
-            // Check if the nativeImagePath has ".ni.dll" or ".ni.exe" extension
-            if (!(nativeImagePath.EndsWith(".ni.dll", StringComparison.InvariantCultureIgnoreCase) || 
-                  nativeImagePath.EndsWith(".ni.exe", StringComparison.InvariantCultureIgnoreCase)))
-            {
-                throw new ArgumentException("nativeImagePath");
-            }
-
             if (assemblyPath != null && Path.IsRelative(assemblyPath))
             {
                 throw new ArgumentException(Environment.GetResourceString("Argument_AbsolutePathRequired"), "assemblyPath");
@@ -184,7 +177,17 @@ namespace System.Runtime.Loader
         {
             AssemblyLoadContext context = (AssemblyLoadContext)(GCHandle.FromIntPtr(gchManagedAssemblyLoadContext).Target);
             
-            return context.LoadFromAssemblyName(assemblyName);
+            return context.ResolveUsingLoad(assemblyName);
+        }
+        
+        // This method is invoked by the VM to resolve an assembly reference using the Resolving event
+        // after trying assembly resolution via Load override and TPA load context without success.
+        private static Assembly ResolveUsingResolvingEvent(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName)
+        {
+            AssemblyLoadContext context = (AssemblyLoadContext)(GCHandle.FromIntPtr(gchManagedAssemblyLoadContext).Target);
+            
+            // Invoke the AssemblyResolve event callbacks if wired up
+            return context.ResolveUsingEvent(assemblyName);
         }
         
         private Assembly GetFirstResolvedAssembly(AssemblyName assemblyName)
@@ -210,23 +213,8 @@ namespace System.Runtime.Loader
             return resolvedAssembly;
         }
 
-        public Assembly LoadFromAssemblyName(AssemblyName assemblyName)
+        private Assembly ValidateAssemblyNameWithSimpleName(Assembly assembly, string requestedSimpleName)
         {
-            // AssemblyName is mutable. Cache the expected name before anybody gets a chance to modify it.
-            string requestedSimpleName = assemblyName.Name;
-            Assembly assembly = Load(assemblyName);
-            if (assembly == null)
-            {
-                // Invoke the AssemblyResolve event callbacks if wired up
-                assembly = GetFirstResolvedAssembly(assemblyName);
-            }
-
-            if (assembly == null)
-            {
-                throw new FileNotFoundException(Environment.GetResourceString("IO.FileLoad"), requestedSimpleName);
-            }
-            
             // Get the name of the loaded assembly
             string loadedSimpleName = null;
             
@@ -244,7 +232,56 @@ namespace System.Runtime.Loader
                 throw new InvalidOperationException(Environment.GetResourceString("Argument_CustomAssemblyLoadContextRequestedNameMismatch"));
  
             return assembly;
+            
+        }
+        
+        private Assembly ResolveUsingLoad(AssemblyName assemblyName)
+        {
+            string simpleName = assemblyName.Name;
+            Assembly assembly = Load(assemblyName);
+            
+            if (assembly != null)
+            {
+                assembly = ValidateAssemblyNameWithSimpleName(assembly, simpleName);
+            }
+            
+            return assembly;
+        }
+        
+        private Assembly ResolveUsingEvent(AssemblyName assemblyName)
+        {
+            string simpleName = assemblyName.Name;
+            
+            // Invoke the AssemblyResolve event callbacks if wired up
+            Assembly assembly = GetFirstResolvedAssembly(assemblyName);
+            if (assembly != null)
+            {
+                assembly = ValidateAssemblyNameWithSimpleName(assembly, simpleName);
+            }
+            
+            // Since attempt to resolve the assembly via Resolving event is the last option,
+            // throw an exception if we do not find any assembly.
+            if (assembly == null)
+            {
+                throw new FileNotFoundException(Environment.GetResourceString("IO.FileLoad"), simpleName);
+            }
+            
+            return assembly;
+        }
+        
+        public Assembly LoadFromAssemblyName(AssemblyName assemblyName)
+        {
+            // AssemblyName is mutable. Cache the expected name before anybody gets a chance to modify it.
+            string requestedSimpleName = assemblyName.Name;
+            
+            Assembly assembly = ResolveUsingLoad(assemblyName);
+            if (assembly == null)
+            {
+                // Invoke the AssemblyResolve event callbacks if wired up
+                assembly = ResolveUsingEvent(assemblyName);
+            }
 
+            return assembly;
         }
 
         [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
index b751985..7d4628a 100644 (file)
@@ -534,24 +534,18 @@ namespace System
         [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
         [SuppressUnmanagedCodeSecurity]
         private extern static void GetTypeByName(string name, bool throwOnError, bool ignoreCase, bool reflectionOnly, StackCrawlMarkHandle stackMark, 
-#if FEATURE_HOSTED_BINDER
             IntPtr pPrivHostBinder,
-#endif
-            bool loadTypeFromPartialName, ObjectHandleOnStack type);
+            bool loadTypeFromPartialName, ObjectHandleOnStack type, ObjectHandleOnStack keepalive);
 
-#if FEATURE_HOSTED_BINDER
         // Wrapper function to reduce the need for ifdefs.
         internal static RuntimeType GetTypeByName(string name, bool throwOnError, bool ignoreCase, bool reflectionOnly, ref StackCrawlMark stackMark, bool loadTypeFromPartialName)
         {
             return GetTypeByName(name, throwOnError, ignoreCase, reflectionOnly, ref stackMark, IntPtr.Zero, loadTypeFromPartialName);
         }
-#endif
 
         [System.Security.SecuritySafeCritical]  // auto-generated
         internal static RuntimeType GetTypeByName(string name, bool throwOnError, bool ignoreCase, bool reflectionOnly, ref StackCrawlMark stackMark,
-#if FEATURE_HOSTED_BINDER
                                                   IntPtr pPrivHostBinder,
-#endif
                                                   bool loadTypeFromPartialName)
         {
             if (name == null || name.Length == 0)
@@ -564,12 +558,12 @@ namespace System
 
             RuntimeType type = null;
 
+            Object keepAlive = null;
             GetTypeByName(name, throwOnError, ignoreCase, reflectionOnly,
                 JitHelpers.GetStackCrawlMarkHandle(ref stackMark),
-#if FEATURE_HOSTED_BINDER
                 pPrivHostBinder,
-#endif
-                loadTypeFromPartialName, JitHelpers.GetObjectHandleOnStack(ref type));
+                loadTypeFromPartialName, JitHelpers.GetObjectHandleOnStack(ref type), JitHelpers.GetObjectHandleOnStack(ref keepAlive));
+            GC.KeepAlive(keepAlive);
 
             return type;
         }
@@ -925,7 +919,7 @@ namespace System
     }                                       
 
     [Serializable]
-[System.Runtime.InteropServices.ComVisible(true)]
+    [System.Runtime.InteropServices.ComVisible(true)]
     public unsafe struct RuntimeMethodHandle : ISerializable
     {
         // Returns handle for interop with EE. The handle is guaranteed to be non-null.
index 4b6d8b1..57b216e 100644 (file)
@@ -91,7 +91,7 @@ namespace System.Security.Policy {
             List<StrongName> fullTrustList = new List<StrongName>();
             foreach (StrongName strongName in fullTrustAssemblies) {
                 if (strongName == null) {
-                    throw new ArgumentException(Environment.GetResourceString("Argument_NullFullTrustAssembly"));
+                    throw new ArgumentException(Environment.GetResourceString("Argument_NullFullTrustAssembly"), "fullTrustAssemblies");
                 }
 
                 fullTrustList.Add(new StrongName(strongName.PublicKey, strongName.Name, strongName.Version));
@@ -120,7 +120,7 @@ namespace System.Security.Policy {
             }
             set {
                 if (value == null)
-                    throw new ArgumentNullException(Environment.GetResourceString("Argument_InvalidAppId"));
+                    throw new ArgumentNullException("value", Environment.GetResourceString("Argument_InvalidAppId"));
                 Contract.EndContractBlock();
                 m_appId = value;
             }
index e00fae1..cc69bfd 100644 (file)
@@ -1441,6 +1441,16 @@ namespace System {
 
             return s;
         }
+                
+        [System.Security.SecuritySafeCritical]  // auto-generated
+        unsafe internal int GetBytesFromEncoding(byte* pbNativeBuffer, int cbNativeBuffer,Encoding encoding)
+        {
+            // encoding == Encoding.UTF8
+            fixed (char* pwzChar = &this.m_firstChar)
+            {
+                return encoding.GetBytes(pwzChar, m_stringLength, pbNativeBuffer, cbNativeBuffer);
+            }            
+        }
 
         [System.Security.SecuritySafeCritical]  // auto-generated
         unsafe internal int ConvertToAnsi(byte *pbNativeBuffer, int cbNativeBuffer, bool fBestFit, bool fThrowOnUnmappableChar)
@@ -2532,29 +2542,64 @@ namespace System {
         //
         [Pure]
         public String PadLeft(int totalWidth) {
-            return PadHelper(totalWidth, ' ', false);
+            return PadLeft(totalWidth, ' ');
         }
 
         [Pure]
+        [System.Security.SecuritySafeCritical]  // auto-generated
         public String PadLeft(int totalWidth, char paddingChar) {
-            return PadHelper(totalWidth, paddingChar, false);
+            if (totalWidth < 0)
+                throw new ArgumentOutOfRangeException("totalWidth", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+            int oldLength = Length;
+            int count = totalWidth - oldLength;
+            if (count <= 0)
+                return this;
+            String result = FastAllocateString(totalWidth);
+            unsafe
+            {
+                fixed (char* dst = &result.m_firstChar)
+                {
+                    for (int i = 0; i < count; i++)
+                        dst[i] = paddingChar;
+                    fixed (char* src = &m_firstChar)
+                    {
+                        wstrcpy(dst + count, src, oldLength);
+                    }
+                }
+            }
+            return result;
         }
 
         [Pure]
         public String PadRight(int totalWidth) {
-            return PadHelper(totalWidth, ' ', true);
+            return PadRight(totalWidth, ' ');
         }
 
         [Pure]
+        [System.Security.SecuritySafeCritical]  // auto-generated
         public String PadRight(int totalWidth, char paddingChar) {
-            return PadHelper(totalWidth, paddingChar, true);
+            if (totalWidth < 0)
+                throw new ArgumentOutOfRangeException("totalWidth", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
+            int oldLength = Length;
+            int count = totalWidth - oldLength;
+            if (count <= 0)
+                return this;
+            String result = FastAllocateString(totalWidth);
+            unsafe
+            {
+                fixed (char* dst = &result.m_firstChar)
+                {
+                    fixed (char* src = &m_firstChar)
+                    {
+                        wstrcpy(dst, src, oldLength);
+                    }
+                    for (int i = 0; i < count; i++)
+                        dst[oldLength + i] = paddingChar;
+                }
+            }
+            return result;
         }
     
-    
-        [System.Security.SecuritySafeCritical]  // auto-generated
-        [MethodImplAttribute(MethodImplOptions.InternalCall)]
-        private extern String PadHelper(int totalWidth, char paddingChar, bool isRightPadded);
-    
         // Determines whether a specified string is a prefix of the current instance
         //
         [Pure]
index b189fa5..a01a5cd 100644 (file)
@@ -125,6 +125,116 @@ namespace  System.StubHelpers {
         }
     }  // class CSTRMarshaler
 
+    [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
+    internal static class UTF8Marshaler
+    {
+        const int MAX_UTF8_CHAR_SIZE = 3;
+        [System.Security.SecurityCritical]
+        static internal unsafe IntPtr ConvertToNative(int flags, string strManaged, IntPtr pNativeBuffer)
+        {
+            if (null == strManaged)
+            {
+                return IntPtr.Zero;
+            }
+            StubHelpers.CheckStringLength(strManaged.Length);
+
+            int nb;
+            byte* pbNativeBuffer = (byte*)pNativeBuffer;
+
+            // If we are marshaling into a stack buffer allocated by the ILStub
+            // we will use a "1-pass" mode where we convert the string directly into the unmanaged buffer.   
+            // else we will allocate the precise native heap memory.
+            if (pbNativeBuffer != null)
+            {
+                // this is the number of bytes allocated by the ILStub.
+                nb = (strManaged.Length + 1) * MAX_UTF8_CHAR_SIZE;
+
+                // nb is the actual number of bytes written by Encoding.GetBytes.
+                // use nb to de-limit the string since we are allocating more than 
+                // required on stack
+                nb = strManaged.GetBytesFromEncoding(pbNativeBuffer, nb, Encoding.UTF8);
+            }
+            // required bytes > 260 , allocate required bytes on heap
+            else
+            {
+                nb = Encoding.UTF8.GetByteCount(strManaged);
+                // + 1 for the null character.
+                pbNativeBuffer = (byte*)Marshal.AllocCoTaskMem(nb + 1);
+                strManaged.GetBytesFromEncoding(pbNativeBuffer, nb, Encoding.UTF8);
+            }
+            pbNativeBuffer[nb] = 0x0;
+            return (IntPtr)pbNativeBuffer;
+        }
+
+        [System.Security.SecurityCritical]
+        static internal unsafe string ConvertToManaged(IntPtr cstr)
+        {
+            if (IntPtr.Zero == cstr)
+                return null;
+            int nbBytes = StubHelpers.strlen((sbyte*)cstr);
+            return String.CreateStringFromEncoding((byte*)cstr, nbBytes, Encoding.UTF8);
+        }
+
+        [System.Security.SecurityCritical]
+        static internal void ClearNative(IntPtr pNative)
+        {
+            if (pNative != IntPtr.Zero)
+            {
+                Win32Native.CoTaskMemFree(pNative);
+            }
+        }
+    }
+
+    [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
+    internal static class UTF8BufferMarshaler
+    {
+        [System.Security.SecurityCritical]
+        static internal unsafe IntPtr ConvertToNative(StringBuilder sb, IntPtr pNativeBuffer, int flags)
+        {
+            if (null == sb)
+            {
+                return IntPtr.Zero;
+            }
+
+            // Convert to string first  
+            string strManaged = sb.ToString();
+
+            // Get byte count 
+            int nb = Encoding.UTF8.GetByteCount(strManaged);
+
+            // EmitConvertSpaceCLRToNative allocates memory
+            byte* pbNativeBuffer = (byte*)pNativeBuffer;
+            nb = strManaged.GetBytesFromEncoding(pbNativeBuffer, nb, Encoding.UTF8);
+
+            pbNativeBuffer[nb] = 0x0;
+            return (IntPtr)pbNativeBuffer;
+        }
+
+        [System.Security.SecurityCritical]
+        static internal unsafe void ConvertToManaged(StringBuilder sb, IntPtr pNative)
+        {
+            if (pNative == null)
+                return;
+
+            int nbBytes = StubHelpers.strlen((sbyte*)pNative);
+            int numChar = Encoding.UTF8.GetCharCount((byte*)pNative, nbBytes);
+
+            // +1 GetCharCount return 0 if the pNative points to a 
+            // an empty buffer.We still need to allocate an empty 
+            // buffer with a '\0' to distingiush it from null.
+            // Note that pinning on (char *pinned = new char[0])
+            // return null and  Encoding.UTF8.GetChars do not like 
+            // null argument.
+            char[] cCharBuffer = new char[numChar + 1];
+            cCharBuffer[numChar] = '\0';
+            fixed (char* pBuffer = cCharBuffer)
+            {
+                numChar = Encoding.UTF8.GetChars((byte*)pNative, nbBytes, pBuffer, numChar);
+                // replace string builder internal buffer
+                sb.ReplaceBufferInternal(pBuffer, numChar);
+            }
+        }
+    }
 
 #if FEATURE_COMINTEROP
 
@@ -1670,7 +1780,7 @@ namespace  System.StubHelpers {
         {
             if (pHandle == null)
             {
-                throw new ArgumentNullException(Environment.GetResourceString("ArgumentNull_SafeHandle"));
+                throw new ArgumentNullException("pHandle", Environment.GetResourceString("ArgumentNull_SafeHandle"));
             }
             Contract.EndContractBlock();
 
@@ -1686,7 +1796,7 @@ namespace  System.StubHelpers {
         {
             if (pHandle == null)
             {
-                throw new ArgumentNullException(Environment.GetResourceString("ArgumentNull_SafeHandle"));
+                throw new ArgumentNullException("pHandle", Environment.GetResourceString("ArgumentNull_SafeHandle"));
             }
             Contract.EndContractBlock();
 
index 809b515..0c0d120 100644 (file)
@@ -1108,7 +1108,7 @@ namespace System.Text {
                 {
                     return this;
                 }
-                throw new ArgumentNullException(Environment.GetResourceString("ArgumentNull_String"));
+                throw new ArgumentNullException("value", Environment.GetResourceString("ArgumentNull_String"));
             }
 
             //Range check the array.
@@ -1917,7 +1917,7 @@ namespace System.Text {
 
             VerifyClassInvariant();
 
-            if ((minBlockCharCount + Length) > m_MaxCapacity)
+            if ((minBlockCharCount + Length) > m_MaxCapacity || minBlockCharCount + Length < minBlockCharCount)
                 throw new ArgumentOutOfRangeException("requiredLength", Environment.GetResourceString("ArgumentOutOfRange_SmallCapacity"));
 
             // Compute the length of the new block we need 
@@ -1977,7 +1977,7 @@ namespace System.Text {
             VerifyClassInvariant();
             Contract.Assert(count > 0, "Count must be strictly positive");
             Contract.Assert(index >= 0, "Index can't be negative");
-            if (count + Length > m_MaxCapacity)
+            if (count + Length > m_MaxCapacity || count + Length < count)
                 throw new ArgumentOutOfRangeException("requiredLength", Environment.GetResourceString("ArgumentOutOfRange_SmallCapacity"));
 
             chunk = this;
index 34cf0ae..b4213d2 100644 (file)
@@ -46,10 +46,20 @@ namespace System.Threading
         internal ExecutionContext m_ec;
         internal SynchronizationContext m_sc;
 
-        internal void Undo()
+        internal void Undo(Thread currentThread)
         {
-            SynchronizationContext.SetSynchronizationContext(m_sc);
-            ExecutionContext.Restore(m_ec);
+            Contract.Assert(currentThread == Thread.CurrentThread);
+
+            // The common case is that these have not changed, so avoid the cost of a write if not needed.
+            if (currentThread.SynchronizationContext != m_sc)
+            {
+                currentThread.SynchronizationContext = m_sc;
+            }
+            
+            if (currentThread.ExecutionContext != m_ec)
+            {
+                ExecutionContext.Restore(currentThread, m_ec);
+            }
         }
     }
 
@@ -57,10 +67,6 @@ namespace System.Threading
     {
         private static readonly ExecutionContext Default = new ExecutionContext();
 
-        [ThreadStatic]
-        [SecurityCritical]
-        static ExecutionContext t_currentMaybeNull;
-
         private readonly Dictionary<IAsyncLocal, object> m_localValues;
         private readonly IAsyncLocal[] m_localChangeNotifications;
 
@@ -79,19 +85,22 @@ namespace System.Threading
         [SecuritySafeCritical]
         public static ExecutionContext Capture()
         {
-            return t_currentMaybeNull ?? ExecutionContext.Default;
+            return Thread.CurrentThread.ExecutionContext ?? ExecutionContext.Default;
         }
 
         [SecurityCritical]
         [HandleProcessCorruptedStateExceptions]
         public static void Run(ExecutionContext executionContext, ContextCallback callback, Object state)
         {
+            if (executionContext == null)
+                throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_NullContext"));
+
+            Thread currentThread = Thread.CurrentThread;
             ExecutionContextSwitcher ecsw = default(ExecutionContextSwitcher);
             try
             {
-                EstablishCopyOnWriteScope(ref ecsw);
-
-                ExecutionContext.Restore(executionContext);
+                EstablishCopyOnWriteScope(currentThread, ref ecsw);
+                ExecutionContext.Restore(currentThread, executionContext);
                 callback(state);
             }
             catch
@@ -100,38 +109,47 @@ namespace System.Threading
                 // to stop the first pass of EH here.  That way we can restore the previous
                 // context before any of our callers' EH filters run.  That means we need to 
                 // end the scope separately in the non-exceptional case below.
-                ecsw.Undo();
+                ecsw.Undo(currentThread);
                 throw;
             }
-            ecsw.Undo();
+            ecsw.Undo(currentThread);
         }
 
         [SecurityCritical]
-        internal static void Restore(ExecutionContext executionContext)
+        internal static void Restore(Thread currentThread, ExecutionContext executionContext)
         {
-            if (executionContext == null)
-                throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_NullContext"));
-
-            ExecutionContext previous = t_currentMaybeNull ?? Default;
-            t_currentMaybeNull = executionContext;
+            Contract.Assert(currentThread == Thread.CurrentThread);
 
+            ExecutionContext previous = currentThread.ExecutionContext ?? Default;
+            currentThread.ExecutionContext = executionContext;
+            
+            // New EC could be null if that's what ECS.Undo saved off.
+            // For the purposes of dealing with context change, treat this as the default EC
+            executionContext = executionContext ?? Default;
+            
             if (previous != executionContext)
+            {
                 OnContextChanged(previous, executionContext);
+            }
         }
 
         [SecurityCritical]
-        static internal void EstablishCopyOnWriteScope(ref ExecutionContextSwitcher ecsw)
+        static internal void EstablishCopyOnWriteScope(Thread currentThread, ref ExecutionContextSwitcher ecsw)
         {
-            ecsw.m_ec = Capture();
-            ecsw.m_sc = SynchronizationContext.CurrentNoFlow;
+            Contract.Assert(currentThread == Thread.CurrentThread);
+            
+            ecsw.m_ec = currentThread.ExecutionContext; 
+            ecsw.m_sc = currentThread.SynchronizationContext;
         }
 
         [SecurityCritical]
         [HandleProcessCorruptedStateExceptions]
         private static void OnContextChanged(ExecutionContext previous, ExecutionContext current)
         {
-            previous = previous ?? Default;
-
+            Contract.Assert(previous != null);
+            Contract.Assert(current != null);
+            Contract.Assert(previous != current);
+            
             foreach (IAsyncLocal local in previous.m_localChangeNotifications)
             {
                 object previousValue;
@@ -174,7 +192,7 @@ namespace System.Threading
         [SecurityCritical]
         internal static object GetLocalValue(IAsyncLocal local)
         {
-            ExecutionContext current = t_currentMaybeNull;
+            ExecutionContext current = Thread.CurrentThread.ExecutionContext;
             if (current == null)
                 return null;
 
@@ -186,7 +204,7 @@ namespace System.Threading
         [SecurityCritical]
         internal static void SetLocalValue(IAsyncLocal local, object newValue, bool needChangeNotifications)
         {
-            ExecutionContext current = t_currentMaybeNull ?? ExecutionContext.Default;
+            ExecutionContext current = Thread.CurrentThread.ExecutionContext ?? ExecutionContext.Default;
 
             object previousValue;
             bool hadPreviousValue = current.m_localValues.TryGetValue(local, out previousValue);
@@ -223,7 +241,7 @@ namespace System.Threading
                 }
             }
 
-            t_currentMaybeNull = new ExecutionContext(newValues, newChangeNotifications);
+            Thread.CurrentThread.ExecutionContext = new ExecutionContext(newValues, newChangeNotifications);
 
             if (needChangeNotifications)
             {
@@ -321,11 +339,11 @@ namespace System.Threading
 #if FEATURE_CORRUPTING_EXCEPTIONS
         [HandleProcessCorruptedStateExceptions]
 #endif // FEATURE_CORRUPTING_EXCEPTIONS
-        internal bool UndoNoThrow()
+        internal bool UndoNoThrow(Thread currentThread)
         {
             try
             {
-                Undo();
+                Undo(currentThread);
             }
             catch
             {
@@ -336,7 +354,7 @@ namespace System.Threading
         
         [System.Security.SecurityCritical]  // auto-generated
         [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
-        internal void Undo()
+        internal void Undo(Thread currentThread)
         {
             //
             // Don't use an uninitialized switcher, or one that's already been used.
@@ -345,7 +363,6 @@ namespace System.Threading
                 return; // Don't do anything
 
             Contract.Assert(Thread.CurrentThread == this.thread);
-            Thread currentThread = this.thread;
 
             // 
             // Restore the HostExecutionContext before restoring the ExecutionContext.
@@ -972,14 +989,14 @@ namespace System.Threading
             }
             finally
             {
-                ecsw.Undo();
+                ecsw.Undo(currentThread);
             }
         }
 
         [SecurityCritical]
-        static internal void EstablishCopyOnWriteScope(ref ExecutionContextSwitcher ecsw)
+        static internal void EstablishCopyOnWriteScope(Thread currentThread, ref ExecutionContextSwitcher ecsw)
         {
-            EstablishCopyOnWriteScope(Thread.CurrentThread, false, ref ecsw);
+            EstablishCopyOnWriteScope(currentThread, false, ref ecsw);
         }
 
         [SecurityCritical]
@@ -1068,7 +1085,7 @@ namespace System.Threading
             }
             catch
             {
-                ecsw.UndoNoThrow();
+                ecsw.UndoNoThrow(currentThread);
                 throw;
             }
             return ecsw;    
index f690e8c..a3f28d1 100644 (file)
@@ -169,29 +169,26 @@ namespace System.Threading
 
 #if FEATURE_CORECLR
 
-        [ThreadStatic]
-        private static SynchronizationContext s_threadStaticContext;
-
         [System.Security.SecurityCritical]
         public static void SetSynchronizationContext(SynchronizationContext syncContext)
         {
-            s_threadStaticContext = syncContext;
+            Thread.CurrentThread.SynchronizationContext = syncContext;
         }
 
         [System.Security.SecurityCritical]
         public static void SetThreadStaticContext(SynchronizationContext syncContext)
         {
-            s_threadStaticContext = syncContext;
+            Thread.CurrentThread.SynchronizationContext = syncContext;
         }
 
         public static SynchronizationContext Current 
         {
             get      
             {
-                SynchronizationContext context = s_threadStaticContext;
+                SynchronizationContext context = Thread.CurrentThread.SynchronizationContext;
 
 #if FEATURE_APPX
-                if (context == null && Environment.IsWinRTSupported)
+                if (context == null && AppDomain.IsAppXModel())
                     context = GetWinRTContext();
 #endif
 
@@ -244,7 +241,7 @@ namespace System.Threading
             SynchronizationContext context = null;
             
 #if FEATURE_APPX
-            if (context == null && Environment.IsWinRTSupported)
+            if (context == null && AppDomain.IsAppXModel())
                 context = GetWinRTContext();
 #endif
 
@@ -258,13 +255,8 @@ namespace System.Threading
         private static SynchronizationContext GetWinRTContext()
         {
             Contract.Assert(Environment.IsWinRTSupported);
-
-            // Temporary workaround to avoid loading a bunch of DLLs in every managed process.
-            // This disables this feature for non-AppX processes that happen to use CoreWindow/CoreDispatcher,
-            // which is not what we want.
-            if (!AppDomain.IsAppXModel())
-                return null;
-
+            Contract.Assert(AppDomain.IsAppXModel());
+    
             //
             // We call into the VM to get the dispatcher.  This is because:
             //
index bec6032..e62cfae 100644 (file)
@@ -132,8 +132,9 @@ namespace System.Threading {
 #if FEATURE_REMOTING        
         private Context         m_Context;
 #endif 
-#if !FEATURE_CORECLR
         private ExecutionContext m_ExecutionContext;    // this call context follows the logical thread
+#if FEATURE_CORECLR
+        private SynchronizationContext m_SynchronizationContext;    // On CoreCLR, this is maintained separately from ExecutionContext
 #endif
 
         private String          m_Name;
@@ -354,7 +355,19 @@ namespace System.Threading {
         }
 
 
-#if !FEATURE_CORECLR
+#if FEATURE_CORECLR
+        internal ExecutionContext ExecutionContext
+        {
+            get { return m_ExecutionContext; } 
+            set { m_ExecutionContext = value; }
+        }
+
+        internal SynchronizationContext SynchronizationContext
+        {
+            get { return m_SynchronizationContext; }
+            set { m_SynchronizationContext = value; }
+        }      
+#else // !FEATURE_CORECLR
         [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
         internal ExecutionContext.Reader GetExecutionContextReader()
         {
index 30d6872..7703a49 100644 (file)
@@ -281,7 +281,7 @@ namespace System.Threading
         {
             if (waitHandles == null)
             {
-                throw new ArgumentNullException(Environment.GetResourceString("ArgumentNull_Waithandles"));
+                throw new ArgumentNullException("waitHandles", Environment.GetResourceString("ArgumentNull_Waithandles"));
             }
             if(waitHandles.Length == 0)
             {
@@ -297,7 +297,7 @@ namespace System.Threading
 #if FEATURE_CORECLR
                 throw new ArgumentException(Environment.GetResourceString("Argument_EmptyWaithandleArray"));
 #else
-                throw new ArgumentNullException(Environment.GetResourceString("Argument_EmptyWaithandleArray"));
+                throw new ArgumentNullException("waitHandles", Environment.GetResourceString("Argument_EmptyWaithandleArray"));
 #endif
             }
             if (waitHandles.Length > MAX_WAITHANDLES)
@@ -315,7 +315,7 @@ namespace System.Threading
                 WaitHandle waitHandle = waitHandles[i];
 
                 if (waitHandle == null)
-                    throw new ArgumentNullException(Environment.GetResourceString("ArgumentNull_ArrayElement"));
+                    throw new ArgumentNullException("waitHandles[" + i + "]", Environment.GetResourceString("ArgumentNull_ArrayElement"));
 
 #if FEATURE_REMOTING        
                 if (RemotingServices.IsTransparentProxy(waitHandle))
@@ -394,7 +394,7 @@ namespace System.Threading
         {
             if (waitHandles==null)
             {
-                throw new ArgumentNullException(Environment.GetResourceString("ArgumentNull_Waithandles"));
+                throw new ArgumentNullException("waitHandles", Environment.GetResourceString("ArgumentNull_Waithandles"));
             }
             if(waitHandles.Length == 0)
             {
@@ -415,7 +415,7 @@ namespace System.Threading
                 WaitHandle waitHandle = waitHandles[i];
 
                 if (waitHandle == null)
-                    throw new ArgumentNullException(Environment.GetResourceString("ArgumentNull_ArrayElement"));
+                    throw new ArgumentNullException("waitHandles[" + i + "]", Environment.GetResourceString("ArgumentNull_ArrayElement"));
 
 #if FEATURE_REMOTING        
                 if (RemotingServices.IsTransparentProxy(waitHandle))
index 7ec7b79..eb35d91 100644 (file)
@@ -53,6 +53,7 @@
 #define ERROR_CANNOT_MAKE 82L
 #define ERROR_INVALID_PARAMETER 87L
 #define ERROR_NET_WRITE_FAULT 88L
+#define ERROR_TOO_MANY_SEMAPHORES 100L
 #define ERROR_DRIVE_LOCKED 108L
 #define ERROR_BROKEN_PIPE 109L
 #define ERROR_OPEN_FAILED 110L
index e901a0d..48079b3 100644 (file)
@@ -312,34 +312,6 @@ CorUnix::InternalOpen(
 
 
 /*++
-InternalDeleteFile
-
-Wrapper that does the same thing as unlink, except that
-it uses the SYS_Delete system call present on Apple instead of unlink.
-
-Input parameters:
-
-szPath = a symbolic link or a hard link to a file
-
-Return value:
-    Returns 0 on success and -1 on failure
---*/
-int
-CorUnix::InternalDeleteFile(
-    const char *szPath
-    )
-{
-    int nRet = -1;
-#if defined(__APPLE__) && defined(SYS_delete)
-    nRet = syscall(SYS_delete, szPath);
-#else
-    nRet = unlink(szPath);
-#endif // defined(__APPLE__) && defined(SYS_delete)
-    return nRet;
-}
-
-
-/*++
 PAL_rename
 
 Wrapper function for rename.
index 6232677..b0c0b00 100644 (file)
@@ -94,6 +94,10 @@ struct sigaction g_previous_sigint;
 struct sigaction g_previous_sigquit;
 struct sigaction g_previous_sigterm;
 
+#ifdef INJECT_ACTIVATION_SIGNAL
+struct sigaction g_previous_activation;
+#endif
+
 /* public function definitions ************************************************/
 
 /*++
@@ -135,7 +139,7 @@ BOOL SEHInitializeSignals()
     handle_signal(SIGTERM, sigterm_handler, &g_previous_sigterm);
 
 #ifdef INJECT_ACTIVATION_SIGNAL
-    handle_signal(INJECT_ACTIVATION_SIGNAL, inject_activation_handler, NULL);
+    handle_signal(INJECT_ACTIVATION_SIGNAL, inject_activation_handler, &g_previous_activation);
 #endif
 
     /* The default action for SIGPIPE is process termination.
@@ -171,8 +175,6 @@ void SEHCleanupSignals()
 {
     TRACE("Restoring default signal handlers\n");
 
-    // Do not remove handlers for SIGUSR1 and SIGUSR2. They must remain so threads can be suspended
-    // during cleanup after this function has been called.
     restore_signal(SIGILL, &g_previous_sigill);
     restore_signal(SIGTRAP, &g_previous_sigtrap);
     restore_signal(SIGFPE, &g_previous_sigfpe);
@@ -181,6 +183,10 @@ void SEHCleanupSignals()
     restore_signal(SIGINT, &g_previous_sigint);
     restore_signal(SIGQUIT, &g_previous_sigquit);
     restore_signal(SIGTERM, &g_previous_sigterm);
+
+#ifdef INJECT_ACTIVATION_SIGNAL
+    restore_signal(INJECT_ACTIVATION_SIGNAL, &g_previous_activation);
+#endif
 }
 
 /* internal function definitions **********************************************/
@@ -432,28 +438,29 @@ Parameters :
 static void inject_activation_handler(int code, siginfo_t *siginfo, void *context)
 {
     // Only accept activations from the current process
-    if (siginfo->si_pid == getpid())
+    if (g_activationFunction != NULL && siginfo->si_pid == getpid())
     {
-        if (g_activationFunction != NULL)
-        {
-            _ASSERTE(g_safeActivationCheckFunction != NULL);
-
-            native_context_t *ucontext = (native_context_t *)context;
+        _ASSERTE(g_safeActivationCheckFunction != NULL);
 
-            CONTEXT winContext;
-            CONTEXTFromNativeContext(
-                ucontext, 
-                &winContext, 
-                CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT);
+        native_context_t *ucontext = (native_context_t *)context;
 
-            if (g_safeActivationCheckFunction(CONTEXTGetPC(&winContext), /* checkingCurrentThread */ TRUE))
-            {
-                g_activationFunction(&winContext);
-            }
+        CONTEXT winContext;
+        CONTEXTFromNativeContext(
+            ucontext, 
+            &winContext, 
+            CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT);
 
-            // Activation function may have modified the context, so update it.
-            CONTEXTToNativeContext(&winContext, ucontext);
+        if (g_safeActivationCheckFunction(CONTEXTGetPC(&winContext), /* checkingCurrentThread */ TRUE))
+        {
+            g_activationFunction(&winContext);
         }
+
+        // Activation function may have modified the context, so update it.
+        CONTEXTToNativeContext(&winContext, ucontext);
+    }
+    else if (g_previous_activation.sa_sigaction != NULL)
+    {
+        g_previous_activation.sa_sigaction(code, siginfo, context);
     }
 }
 #endif
index 1d4dd43..8e54f94 100644 (file)
@@ -134,12 +134,6 @@ RemoveDirectoryHelper (
 
     FILEDosToUnixPathA( lpPathName );
 
-    if ( !FILEGetFileNameFromSymLink(lpPathName))
-    {
-        FILEGetProperNotFoundError( lpPathName, dwLastError );
-        goto done;
-    }
-
     if ( rmdir(lpPathName) != 0 )
     {
         TRACE("Removal of directory [%s] was unsuccessful, errno = %d.\n",
@@ -177,7 +171,6 @@ RemoveDirectoryHelper (
         bRet = TRUE;
     }
 
-done:
     return bRet;
 }
 
index 6cb4a93..2a0d55b 100644 (file)
@@ -1094,7 +1094,6 @@ DeleteFileA(
         IN LPCSTR lpFileName)
 {
     PAL_ERROR palError = NO_ERROR;
-    DWORD dwShareMode = SHARE_MODE_NOT_INITALIZED;
     CPalThread *pThread;
     int     result;
     BOOL    bRet = FALSE;
@@ -1115,12 +1114,6 @@ DeleteFileA(
     
     FILEDosToUnixPathA( lpunixFileName );
     
-    if ( !FILEGetFileNameFromSymLink(lpunixFileName))
-    {
-        dwLastError = FILEGetLastErrorFromErrnoAndFilename(lpunixFileName);
-        goto done;
-    }
-    
     // Compute the absolute pathname to the file.  This pathname is used
     // to determine if two file names represent the same file.
     palError = InternalCanonicalizeRealPath(lpunixFileName, lpFullunixFileName);
@@ -1133,31 +1126,9 @@ DeleteFileA(
         }
     }
 
-    palError = g_pFileLockManager->GetFileShareModeForFile(lpFullunixFileName, &dwShareMode);
-
-    // Use unlink if we succesfully found the file to be opened with
-    // a FILE_SHARE_DELETE mode.
-    // Note that there is a window here where a race condition can occur:
-    //   the check for the sharing mode and the unlink are two separate actions
-    //   (not a single atomic action). So it's possible that between the check
-    //   happening and the unlink happening, the file may have been closed. If 
-    //   it is just closed and not re-opened, no problems.
-    //   If it is closed and re-opened without any sharing, we should be calling
-    //   InternalDelete instead which would have failed.
-    //   Instead, we call unlink which will succeed.
-
-    if (palError == NO_ERROR &&
-    dwShareMode != SHARE_MODE_NOT_INITALIZED &&
-    (dwShareMode & FILE_SHARE_DELETE) != 0)
-    {
-      result = unlink( lpFullunixFileName );
-    }
-    else
-    {
-      result = InternalDeleteFile( lpFullunixFileName );
-    }
+    result = unlink( lpFullunixFileName );
 
-    if ( result < 0 )
+    if (result < 0)
     {
         TRACE("unlink returns %d\n", result);
         dwLastError = FILEGetLastErrorFromErrnoAndFilename(lpFullunixFileName);
@@ -1172,12 +1143,12 @@ done:
     {
         pThread->SetLastError( dwLastError );
     }
+
     LOGEXIT("DeleteFileA returns BOOL %d\n", bRet);
     PERF_EXIT(DeleteFileA);
     return bRet;
 }
 
-
 /*++
 Function:
   DeleteFileW
@@ -1350,15 +1321,8 @@ MoveFileExA(
         dwLastError = ERROR_NOT_ENOUGH_MEMORY;
         goto done;
     }
-    
-    FILEDosToUnixPathA( dest );
 
-    if ( !FILEGetFileNameFromSymLink(source))
-    {
-        TRACE( "FILEGetFileNameFromSymLink failed\n" );
-        dwLastError = FILEGetLastErrorFromErrnoAndFilename(source);
-        goto done;
-    }
+    FILEDosToUnixPathA( dest );
 
     if ( !(dwFlags & MOVEFILE_REPLACE_EXISTING) )
     {
@@ -1440,9 +1404,9 @@ MoveFileExA(
         case ENOENT:
             {
                 struct stat buf;
-                if (stat(source, &buf) == -1)
+                if (lstat(source, &buf) == -1)
                 {
-                    FILEGetProperNotFoundError(dest, &dwLastError);
+                    FILEGetProperNotFoundError(source, &dwLastError);
                 }
                 else
                 {
@@ -4754,7 +4718,6 @@ fail:
     return FALSE;
 }
 
-
 /*++
 FILECleanupStdHandles
 
@@ -4794,44 +4757,6 @@ void FILECleanupStdHandles(void)
     }
 }
 
-
-/*++
-FILEGetFileNameFromSymLink
-
-Input parameters:
-
-source  = path to the file on input, path to the file with all 
-          symbolic links traversed on return
-
-Return value:
-    TRUE on success, FALSE on failure
---*/
-BOOL FILEGetFileNameFromSymLink(PathCharString& source)
-{
-    int ret;
-    PathCharString sLinkDataString;
-    struct stat sb;
-
-    do
-    {
-        if (lstat(source, &sb) == -1) 
-        {
-            break;
-        }
-        
-        char * sLinkData = sLinkDataString.OpenStringBuffer(sb.st_size);
-        ret = readlink(source, sLinkData, sb.st_size);
-        if (ret > 0)
-        {
-            sLinkDataString.CloseBuffer(ret);
-            source.Set(sLinkDataString);
-        }
-    } while (ret > 0);
-
-    return (errno == EINVAL);
-}
-
-
 /*++
 Function:
   GetFileInformationByHandle
index 32174cb..93c8ad9 100644 (file)
@@ -159,20 +159,6 @@ Close promary handles for stdin, stdout and stderr
 void FILECleanupStdHandles(void);
 
 /*++
-FILEGetFileNameFromSymLink
-
-Input paramters:
-
-source  = path to the file on input, path to the file with all 
-          symbolic links traversed on return
-
-
-Return value:
-    TRUE on success, FALSE on failure
---*/
-BOOL FILEGetFileNameFromSymLink(PathCharString& source);
-
-/*++
 
 Function : 
     FILEGetProperNotFoundError
index cc9eb1e..5acccb0 100644 (file)
@@ -192,15 +192,6 @@ namespace CorUnix
         );
 
     /*++
-    InternalDeleteFile
-    Wraps SYS_delete
-    --*/
-    int 
-    InternalDeleteFile(
-        const char *szPath
-        );
-
-    /*++
     InternalFgets
     Wraps fgets
     --*/
@@ -356,20 +347,6 @@ Close primary handles for stdin, stdout and stderr
 void FILECleanupStdHandles(void);
 
 /*++
-FILEGetFileNameFromSymLink
-
-Input paramters:
-
-source  = path to the file on input, path to the file with all 
-          symbolic links traversed on return
-
-
-Return value:
-    TRUE on success, FALSE on failure
-BOOL FILEGetFileNameFromSymLink(PathCharString& source);
---*/
-
-/*++
 
 Function : 
     FILEGetProperNotFoundError
index acb7427..e1e85e2 100644 (file)
@@ -360,11 +360,6 @@ namespace CorUnix
                 DWORD *pdwSuspendCount
             );
 
-#if !HAVE_MACH_EXCEPTIONS
-            static 
-            VOID InitializeSignalSets();
-#endif // !HAVE_MACH_EXCEPTIONS
-
             VOID InitializeSuspensionLock();
 
             void SetBlockingPipe(
index f445591..701b93d 100644 (file)
@@ -1518,6 +1518,9 @@ public:
             case EEXIST:
                 pe = ERROR_ALREADY_EXISTS;
                 break;
+            case ENOSPC:
+                pe = ERROR_TOO_MANY_SEMAPHORES;
+                break;
             default:
                 pe = ERROR_INVALID_PARAMETER;
                 break;
@@ -1546,7 +1549,7 @@ public:
         TRACE("PAL_RuntimeStartupHelper.Register startup sem '%s'\n", startupSemName);
 
         // Create the debuggee startup semaphore so the runtime (debuggee) knows to wait for a debugger connection.
-        m_startupSem = sem_open(startupSemName, O_CREAT | O_EXCL | O_RDWR, S_IRWXU, 0);
+        m_startupSem = sem_open(startupSemName, O_CREAT | O_EXCL, S_IRWXU, 0);
         if (m_startupSem == SEM_FAILED)
         {
             TRACE("sem_open(startup) failed: errno is %d (%s)\n", errno, strerror(errno));
@@ -1661,7 +1664,7 @@ public:
         TRACE("StartupHelperThread continue sem '%s'\n", continueSemName);
 
         // Does the continue semaphore exists? If it does, the runtime is ready to be debugged.
-        continueSem = sem_open(continueSemName, O_RDWR);
+        continueSem = sem_open(continueSemName, 0);
         if (continueSem != SEM_FAILED)
         {
             TRACE("StartupHelperThread continue sem exists - invoking callback\n");
@@ -1673,7 +1676,7 @@ public:
             if (sem_wait(m_startupSem) == 0)
             {
                 // The continue semaphore should exists now and is needed to wake up the runtimes below
-                continueSem = sem_open(continueSemName, O_RDWR);
+                continueSem = sem_open(continueSemName, 0);
                 if (continueSem != SEM_FAILED) 
                 {
                     TRACE("StartupHelperThread continue sem exists after wait - invoking callback\n");
@@ -1833,7 +1836,7 @@ PAL_NotifyRuntimeStarted()
     TRACE("PAL_NotifyRuntimeStarted opening continue (old) '%s' startup '%s'\n", g_continueSemName, startupSemName);
 
     // For backwards compatibility with RC2 (see issue #4410) first OPEN the continue semaphore with the old name "clrcoXXXX".
-    g_continueSem = sem_open(g_continueSemName, O_RDWR);
+    g_continueSem = sem_open(g_continueSemName, 0);
     if (g_continueSem == SEM_FAILED)
     {
         // Create the new continue semaphore name "clrctXXXX"
@@ -1842,7 +1845,7 @@ PAL_NotifyRuntimeStarted()
         TRACE("PAL_NotifyRuntimeStarted creating continue '%s'\n", g_continueSemName);
 
         // Create the continue semaphore. This tells dbgshim that coreclr is initialized and ready.
-        g_continueSem = sem_open(g_continueSemName, O_CREAT | O_EXCL | O_RDWR, S_IRWXU, 0);
+        g_continueSem = sem_open(g_continueSemName, O_CREAT | O_EXCL, S_IRWXU, 0);
         if (g_continueSem == SEM_FAILED)
         {
             ASSERT("sem_open(%s) failed: %d (%s)\n", g_continueSemName, errno, strerror(errno));
@@ -1853,7 +1856,7 @@ PAL_NotifyRuntimeStarted()
 
     // Open the debugger startup semaphore. If it doesn't exists, then we do nothing and
     // the function is successful.
-    startupSem = sem_open(startupSemName, O_RDWR);
+    startupSem = sem_open(startupSemName, 0);
     if (startupSem == SEM_FAILED)
     {
         TRACE("sem_open(%s) failed: %d (%s)\n", startupSemName, errno, strerror(errno));
index 0a8e41c..159c451 100644 (file)
@@ -1783,14 +1783,6 @@ CorUnix::InitializeGlobalThreadData(
         InternalFree(pszStackSize);
     }
 
-#if !HAVE_MACH_EXCEPTIONS
-    //
-    // Initialize the thread suspension signal sets.
-    //
-    
-    CThreadSuspensionInfo::InitializeSignalSets();
-#endif // !HAVE_MACH_EXCEPTIONS
-
     return palError;
 }
 
index 0e92ec5..b31b88d 100644 (file)
@@ -63,10 +63,6 @@ performing one suspension or resumption in the PAL at a time. */
 static LONG g_ssSuspensionLock = 0;
 #endif
 
-#if !HAVE_MACH_EXCEPTIONS
-static sigset_t smDefaultmask; // masks signals that the PAL handles as exceptions.
-#endif // !HAVE_MACH_EXCEPTIONS
-
 /*++
 Function:
   InternalSuspendNewThreadFromData
@@ -769,56 +765,6 @@ CThreadSuspensionInfo::WaitOnResumeSemaphore()
 #endif // USE_POSIX_SEMAPHORES
 }
 
-#if !HAVE_MACH_EXCEPTIONS
-/*++
-Function:
-  InitializeSignalSets
-  
-InitializeSignalSets initializes the signal masks used for thread
-suspension operations. Each thread's signal mask is initially set
-to smDefaultMask in InitializePreCreate. This mask blocks SIGUSR2,
-and SIGUSR1 if suspension using signals is off. This mask
-also blocks common signals so they will be handled by the PAL's
-signal handling thread. 
---*/
-VOID
-CThreadSuspensionInfo::InitializeSignalSets()
-{
-    sigemptyset(&smDefaultmask);
-
-#ifndef DO_NOT_USE_SIGNAL_HANDLING_THREAD
-    // The default signal mask masks all common signals except those that represent 
-    // synchronous exceptions in the PAL or are used by the system (e.g. SIGPROF on BSD).
-    // Note that SIGPROF is used by the BSD thread scheduler and masking it caused a 
-    // significant reduction in performance. Note that SIGCHLD is used by Linux
-    // for parent->child process notifications, and masking it caused parents
-    // not to recognize their children had died. Masking SIGTSTP and SIGCONT causes
-    // problems for job management.
-    sigaddset(&smDefaultmask, SIGHUP);
-    sigaddset(&smDefaultmask, SIGABRT);
-#ifdef SIGEMT
-    sigaddset(&smDefaultmask, SIGEMT);
-#endif
-    sigaddset(&smDefaultmask, SIGSYS);
-    sigaddset(&smDefaultmask, SIGALRM);
-    sigaddset(&smDefaultmask, SIGURG);
-    sigaddset(&smDefaultmask, SIGTTIN);
-    sigaddset(&smDefaultmask, SIGTTOU);
-    sigaddset(&smDefaultmask, SIGIO);
-    sigaddset(&smDefaultmask, SIGXCPU);
-    sigaddset(&smDefaultmask, SIGXFSZ);
-    sigaddset(&smDefaultmask, SIGVTALRM);
-    sigaddset(&smDefaultmask, SIGWINCH);
-#ifdef SIGINFO
-    sigaddset(&smDefaultmask, SIGINFO);
-#endif
-    sigaddset(&smDefaultmask, SIGPIPE);
-    sigaddset(&smDefaultmask, SIGUSR1);
-    sigaddset(&smDefaultmask, SIGUSR2);
-#endif // DO_NOT_USE_SIGNAL_HANDLING_THREAD
-}
-#endif // !HAVE_MACH_EXCEPTIONS
-
 /*++
 Function:
   InitializeSuspensionLock
@@ -987,25 +933,6 @@ CThreadSuspensionInfo::InitializePreCreate()
     m_fSemaphoresInitialized = TRUE;
 #endif // USE_POSIX_SEMAPHORES
 
-#if !HAVE_MACH_EXCEPTIONS
-    // This signal mask blocks SIGUSR2 when signal suspension is turned on
-    // (SIGUSR2 must be blocked for signal suspension), and masks other signals
-    // when the signal waiting thread is turned on. We must use SIG_SETMASK 
-    // so all threads start with the same signal mask. Otherwise, issues can arise.
-    // For example, on BSD using suspension with signals, the control handler 
-    // routine thread, spawned from the signal handling thread, inherits the 
-    // signal handling thread's mask which blocks SIGUSR1. Thus, the
-    // control handler routine thread cannot be suspended. Using SETMASK 
-    // ensures that SIGUSR1 is not blocked.
-    
-    iError = pthread_sigmask(SIG_SETMASK, &smDefaultmask, NULL);
-    if (iError != 0)
-    {
-        ASSERT("pthread sigmask(SIG_SETMASK, &smDefaultmask) returned %d\n", iError);
-        goto InitializePreCreateExit;
-    }
-#endif // !HAVE_MACH_EXCEPTIONS
-
     // Initialization was successful.
     palError = NO_ERROR;
     
index 3efdbbb..b979c20 100644 (file)
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8.12.2)
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 
 set(SOURCES
-  DeleteFileA.c
+  DeleteFileA.cpp
 )
 
 add_executable(paltest_deletefilea_test1
 //  delete a file without proper permissions
 //
 
+#define PAL_STDCPP_COMPAT
 #include <palsuite.h>
+#undef PAL_STDCPP_COMPAT
 
+#include <unistd.h>
+#include <sys/stat.h>
 
 
 int __cdecl main(int argc, char *argv[])
@@ -35,7 +39,7 @@ int __cdecl main(int argc, char *argv[])
     }
 
     //
-    // deleting an existing file
+    // create a test file
     //
     tempFile = fopen("testFile01.txt", "w");
     if (tempFile == NULL)
@@ -51,6 +55,34 @@ int __cdecl main(int argc, char *argv[])
             " testFile01.txt\"\n");
     }
 
+    //
+    // delete a symlink to an existing file
+    //
+    if (symlink("testFile01.txt", "testFile01_symlink") != 0)
+    {
+        Fail("DeleteFileA: ERROR: Failed to create a symlink to testFile01.txt.\n");
+    }
+
+    bRc = DeleteFileA("testFile01_symlink");
+    if (bRc != TRUE)
+    {
+        Fail ("DeleteFileA: ERROR: Couldn't delete symlink!\n Error is %d\n", GetLastError());
+    }
+
+    struct stat statBuffer;
+    if (lstat("testFile01.txt", &statBuffer) != 0)
+    {
+        Fail("DeleteFileA: ERROR: Deleting a symlink deleted the file it was pointing to.\n");
+    }
+
+    if (lstat("testFile01_symlink", &statBuffer) == 0)
+    {
+        Fail("DeleteFileA: ERROR: Failed to delete a symlink.\n");
+    }
+
+    //
+    // deleting an existing file
+    //
     bRc = DeleteFileA("testFile01.txt");
     if (bRc != TRUE)
     {
index 3935d04..7a8d1c9 100644 (file)
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8.12.2)
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 
 set(SOURCES
-  RemoveDirectoryA.c
+  RemoveDirectoryA.cpp
 )
 
 add_executable(paltest_removedirectorya_test1
 **===================================================================*/
 
 
+#define PAL_STDCPP_COMPAT
 #include <palsuite.h>
+#undef PAL_STDCPP_COMPAT
+
+#include <unistd.h>
 
 
 int __cdecl main(int argc, char *argv[])
@@ -36,38 +40,57 @@ int __cdecl main(int argc, char *argv[])
     bRc = RemoveDirectoryA(NULL);
     if (bRc != FALSE)
     {
-               Fail("Error[%ul]:RemoveDirectoryA: Failed since it was able to remove a"
+        Fail("Error[%ul]:RemoveDirectoryA: Failed since it was able to remove a"
             " NULL directory name\n", GetLastError());
     }
 
     /* 
      * remove a directory that does not exist 
      */
-       szTemp = (char *) malloc (sizeof("test_directory"));
+    szTemp = (char *) malloc (sizeof("test_directory"));
     sprintf(szTemp, "test_directory");
-       bRc = RemoveDirectoryA(szTemp);
+    bRc = RemoveDirectoryA(szTemp);
     if (bRc != FALSE)
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed since it was able to remove"
+        Fail("Error[%ul]:RemoveDirectoryA: Failed since it was able to remove"
             " the non-existant directory \"test_directory\"\n", GetLastError());
     }
 
     /* 
-     * remove a directory that exists 
+     * remove a symlink to a directory
      */
     bRc = CreateDirectoryA(szTemp, NULL);
     if (bRc != TRUE)
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to create the directory "
-            "\"test_directory\" when it exists already.\n", GetLastError());
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to create the directory "
+            "\"test_directory\".\n", GetLastError());
+    }
+
+    char *szSymlinkName = (char *) malloc (sizeof("test_directory_symlink"));
+    sprintf(szSymlinkName, "test_directory_symlink");
+    if (symlink(szTemp, szSymlinkName) != 0)
+    {
+        Fail("Error:RemoveDirectoryA: Failed to create a symlink to the directory \"test_directory\".\n");
+    }
+
+    bRc = RemoveDirectoryA(szSymlinkName);
+    if (bRc != FALSE)
+    {
+        Fail("Error:RemoveDirectoryA: RemoveDirectoryA should return FALSE when passed a symlink.\n");
     }
+
+    unlink(szSymlinkName);
+
+    /* 
+     * remove a directory that exists 
+     */
     bRc = RemoveDirectoryA(szTemp);
     if (bRc == FALSE)
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryW: Failed to remove the directory "
+        Fail("Error[%ul]:RemoveDirectoryW: Failed to remove the directory "
             "\"test_directory\"\n",
             GetLastError());
     }
@@ -75,7 +98,7 @@ int __cdecl main(int argc, char *argv[])
     if( -1 != GetFileAttributesA(szTemp) )
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Able to get the attributes of "
+        Fail("Error[%ul]:RemoveDirectoryA: Able to get the attributes of "
              "the removed directory\n" , GetLastError());
     }
     free(szTemp);
@@ -86,21 +109,21 @@ int __cdecl main(int argc, char *argv[])
     curDirLen = GetCurrentDirectoryA(0, NULL) + 1;
     memset(szDirName, 0, 252);
     memset(szDirName, 'a', 245 - curDirLen);
-       szTemp = (char *) malloc (sizeof(szDirName));
-       szTemp = strncpy(szTemp, szDirName, strlen(szDirName) + 1);
+    szTemp = (char *) malloc (sizeof(szDirName));
+    szTemp = strncpy(szTemp, szDirName, strlen(szDirName) + 1);
 
     bRc = CreateDirectoryA(szTemp, NULL);
     if (bRc == FALSE)
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to create a directory name "
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to create a directory name "
             "245 chars long\n" , GetLastError());
     }
     bRc = RemoveDirectoryA(szTemp);
     if (bRc == FALSE)
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to remove a 245 char "
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to remove a 245 char "
             "long directory\n", GetLastError());
     }
 
@@ -108,7 +131,7 @@ int __cdecl main(int argc, char *argv[])
     if( -1 != GetFileAttributesA(szTemp) )
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Able to get the attributes of "
+        Fail("Error[%ul]:RemoveDirectoryA: Able to get the attributes of "
              "the removed directory\n", GetLastError());
     }
     free(szTemp);
@@ -118,27 +141,27 @@ int __cdecl main(int argc, char *argv[])
      */
     memset(szDirName, 0, 252);
     sprintf(szDirName, ".dotDirectory");
-       szTemp = (char *) malloc (sizeof(szDirName));
-       szTemp = strncpy(szTemp, szDirName, strlen(szDirName) + 1);
+    szTemp = (char *) malloc (sizeof(szDirName));
+    szTemp = strncpy(szTemp, szDirName, strlen(szDirName) + 1);
 
-       bRc = CreateDirectoryA(szTemp, NULL);
+    bRc = CreateDirectoryA(szTemp, NULL);
     if (bRc == FALSE)
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to create \"%s\"\n", GetLastError(), szDirName);
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to create \"%s\"\n", GetLastError(), szDirName);
     }
     bRc = RemoveDirectoryA(szTemp);
     if (bRc == FALSE)
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to remove \"%s\"\n", GetLastError(), szDirName);
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to remove \"%s\"\n", GetLastError(), szDirName);
     }
 
     /* Make sure the directory was removed */
     if( -1 != GetFileAttributesA(szTemp) )
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Able to get the attributes of "
+        Fail("Error[%ul]:RemoveDirectoryA: Able to get the attributes of "
              "the removed directory\n", GetLastError());
     }
     free(szTemp);
@@ -148,14 +171,14 @@ int __cdecl main(int argc, char *argv[])
      */
     memset(szDirName, 0, 252);
     sprintf(szDirName, "removedirectoryw.c");
-       szTemp = (char *) malloc (sizeof(szDirName));
-       szTemp = strncpy(szTemp, szDirName, strlen(szDirName) + 1);
+    szTemp = (char *) malloc (sizeof(szDirName));
+    szTemp = strncpy(szTemp, szDirName, strlen(szDirName) + 1);
 
     bRc = RemoveDirectoryA(szTemp);
     free(szTemp);
     if (bRc != FALSE)
     {
-               Fail("Error[%ul]:RemoveDirectoryA: should have failed when "
+        Fail("Error[%ul]:RemoveDirectoryA: should have failed when "
              "called with a valid file name", GetLastError() );
     }
 
@@ -178,21 +201,21 @@ int __cdecl main(int argc, char *argv[])
     }
 
     /* Create non_empty_dir */
-       sprintf( szDirName, "non_empty_dir");
-       szTemp = (char *) malloc (sizeof(szDirName));
-       szTemp = strncpy(szTemp, szDirName, strlen(szDirName) + 1);
+    sprintf( szDirName, "non_empty_dir");
+    szTemp = (char *) malloc (sizeof(szDirName));
+    szTemp = strncpy(szTemp, szDirName, strlen(szDirName) + 1);
     bRc = CreateDirectoryA(szTemp, NULL);
     if (bRc != TRUE)
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to create the directory "
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to create the directory "
              "\"non_empty_dir\" when it exists already.\n", GetLastError());
     }
 
     if( 0 == SetCurrentDirectoryA(szTemp) )
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to set current directory to "
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to set current directory to "
             "\"non_empty_dir\" with SetCurrentDirectoryA.\n", GetLastError());
     }
 
@@ -201,20 +224,20 @@ int __cdecl main(int argc, char *argv[])
     if( 0 == GetCurrentDirectoryA(MAX_PATH, szwSubDir) )
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to get current directory "
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to get current directory "
             "with GetCurrentDirectoryA.\n", GetLastError());
     }
 
     /* Create sub_dir */
-       sprintf (szDirName, "sub_dir");
-       szTemp2 = (char *) malloc (sizeof(szDirName));
-       szTemp2 = strncpy(szTemp2, szDirName, strlen(szDirName) + 1);
+    sprintf (szDirName, "sub_dir");
+    szTemp2 = (char *) malloc (sizeof(szDirName));
+    szTemp2 = strncpy(szTemp2, szDirName, strlen(szDirName) + 1);
     bRc = CreateDirectoryA(szTemp2, NULL);
     if (bRc != TRUE)
     {
         free(szTemp);
         free(szTemp2);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to create the directory "
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to create the directory "
             "\"sub_dir\" when it exists already.\n", GetLastError());
     }
 
@@ -223,7 +246,7 @@ int __cdecl main(int argc, char *argv[])
     {
         free(szTemp);
         free(szTemp2);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to set current directory to "
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to set current directory to "
             "\"non_empty_dir\" with SetCurrentDirectoryA.\n", GetLastError());
     }
 
@@ -233,7 +256,7 @@ int __cdecl main(int argc, char *argv[])
     {
         free(szTemp);
         free(szTemp2);
-               Fail("Error[%ul]:RemoveDirectoryA: shouldn't have been able to remove "
+        Fail("Error[%ul]:RemoveDirectoryA: shouldn't have been able to remove "
              "the non empty directory \"non_empty_dir\"\n", GetLastError());
     }
 
@@ -242,7 +265,7 @@ int __cdecl main(int argc, char *argv[])
     {
         free(szTemp);
         free(szTemp2);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to set current directory to "
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to set current directory to "
             "\"non_empty_dir\" with SetCurrentDirectoryA.\n", GetLastError());
     }
 
@@ -251,7 +274,7 @@ int __cdecl main(int argc, char *argv[])
     {
         free(szTemp);
         free(szTemp2);
-               Fail("Error[%ul]:RemoveDirectoryA: unable to remove "
+        Fail("Error[%ul]:RemoveDirectoryA: unable to remove "
              "directory \"sub_dir\" \n",
              GetLastError());
     }
@@ -267,7 +290,7 @@ int __cdecl main(int argc, char *argv[])
     if( 0 == SetCurrentDirectoryA(szwCurrentDir) )
     {
         free(szTemp);
-               Fail("Error[%ul]:RemoveDirectoryA: Failed to set current directory to "
+        Fail("Error[%ul]:RemoveDirectoryA: Failed to set current directory to "
             "\"..\non_empty_dir\" with SetCurrentDirectoryA.\n", GetLastError());
     }
     bRc = RemoveDirectoryA(szTemp);
@@ -281,7 +304,7 @@ int __cdecl main(int argc, char *argv[])
     /* Make sure the directory was removed */
     if( -1 != GetFileAttributesA(szTemp) )
     {
-               Fail("Error[%ul]:RemoveDirectoryA: Able to get the attributes of "
+        Fail("Error[%ul]:RemoveDirectoryA: Able to get the attributes of "
              "the removed directory\n", GetLastError());
     }
     free(szTemp); 
index 8bba4a9..468e06a 100644 (file)
@@ -1,13 +1,22 @@
 SET (CMAKE_C_FLAGS_INIT                "-Wall -std=c11")
 SET (CMAKE_C_FLAGS_DEBUG_INIT          "-g -O0")
 SET (CLR_C_FLAGS_CHECKED_INIT          "-g -O2")
-SET (CMAKE_C_FLAGS_RELEASE_INIT        "-g -O3")
+# Todo: Replace -O1 with -O3 after fixing Clang/LLVM for __thread on Linux/ARM
+if(CMAKE_SYSTEM_NAME STREQUAL Linux AND CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l)
+    SET (CMAKE_C_FLAGS_RELEASE_INIT        "-g -O1")
+else()
+    SET (CMAKE_C_FLAGS_RELEASE_INIT        "-g -O3")
+endif()
 SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-g -O2")
 
 SET (CMAKE_CXX_FLAGS_INIT                "-Wall -Wno-null-conversion -std=c++11")
 SET (CMAKE_CXX_FLAGS_DEBUG_INIT          "-g -O0")
 SET (CLR_CXX_FLAGS_CHECKED_INIT          "-g -O2")
-SET (CMAKE_CXX_FLAGS_RELEASE_INIT        "-g -O3")
+if(CMAKE_SYSTEM_NAME STREQUAL Linux AND CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l)
+    SET (CMAKE_CXX_FLAGS_RELEASE_INIT        "-g -O1")
+else()
+    SET (CMAKE_CXX_FLAGS_RELEASE_INIT        "-g -O3")
+endif()
 SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-g -O2")
 
 SET (CLR_DEFINES_DEBUG_INIT              DEBUG _DEBUG _DBG URTBLDENV_FRIENDLY=Checked BUILDENV_CHECKED=1)
index 50643d4..bcfe74a 100644 (file)
@@ -685,25 +685,14 @@ BYTE * ClrVirtualAllocWithinRange(const BYTE *pMinAddr,
 // NumaNodeInfo 
 //******************************************************************************
 #if !defined(FEATURE_REDHAWK) && !defined(FEATURE_PAL)
-#if !defined(FEATURE_CORESYSTEM)
-/*static*/ NumaNodeInfo::PGNPN    NumaNodeInfo::m_pGetNumaProcessorNode = NULL;
-#endif
 /*static*/ NumaNodeInfo::PGNHNN NumaNodeInfo::m_pGetNumaHighestNodeNumber = NULL;
 /*static*/ NumaNodeInfo::PVAExN NumaNodeInfo::m_pVirtualAllocExNuma = NULL;
 
-#if !defined(FEATURE_CORESYSTEM)
-/*static*/ BOOL NumaNodeInfo::GetNumaProcessorNode(UCHAR proc_no, PUCHAR node_no)
-{
-    return (*m_pGetNumaProcessorNode)(proc_no, node_no);
-}
-#endif
-
 /*static*/ LPVOID NumaNodeInfo::VirtualAllocExNuma(HANDLE hProc, LPVOID lpAddr, SIZE_T dwSize,
                                     DWORD allocType, DWORD prot, DWORD node)
 {
     return (*m_pVirtualAllocExNuma)(hProc, lpAddr, dwSize, allocType, prot, node);
 }
-#if !defined(FEATURE_CORECLR) || defined(FEATURE_CORESYSTEM)
 /*static*/ NumaNodeInfo::PGNPNEx NumaNodeInfo::m_pGetNumaProcessorNodeEx = NULL;
 
 /*static*/ BOOL NumaNodeInfo::GetNumaProcessorNodeEx(PPROCESSOR_NUMBER proc_no, PUSHORT node_no)
@@ -711,7 +700,6 @@ BYTE * ClrVirtualAllocWithinRange(const BYTE *pMinAddr,
     return (*m_pGetNumaProcessorNodeEx)(proc_no, node_no);
 }
 #endif
-#endif
 
 /*static*/ BOOL NumaNodeInfo::m_enableGCNumaAware = FALSE;
 /*static*/ BOOL NumaNodeInfo::InitNumaNodeInfoAPI()
@@ -736,17 +724,9 @@ BYTE * ClrVirtualAllocWithinRange(const BYTE *pMinAddr,
     if (!m_pGetNumaHighestNodeNumber(&highest) || (highest == 0))
         return FALSE;
 
-#if !defined(FEATURE_CORESYSTEM)
-    m_pGetNumaProcessorNode = (PGNPN) GetProcAddress(hMod, "GetNumaProcessorNode");
-    if (m_pGetNumaProcessorNode == NULL)
-        return FALSE;
-#endif
-
-#if !defined(FEATURE_CORECLR) || defined(FEATURE_CORESYSTEM)
     m_pGetNumaProcessorNodeEx = (PGNPNEx) GetProcAddress(hMod, "GetNumaProcessorNodeEx");
     if (m_pGetNumaProcessorNodeEx == NULL)
         return FALSE;
-#endif
 
     m_pVirtualAllocExNuma = (PVAExN) GetProcAddress(hMod, "VirtualAllocExNuma");
     if (m_pVirtualAllocExNuma == NULL)
@@ -775,10 +755,8 @@ BYTE * ClrVirtualAllocWithinRange(const BYTE *pMinAddr,
 /*static*/ CPUGroupInfo::PGLPIEx CPUGroupInfo::m_pGetLogicalProcessorInformationEx = NULL;
 /*static*/ CPUGroupInfo::PSTGA   CPUGroupInfo::m_pSetThreadGroupAffinity = NULL;
 /*static*/ CPUGroupInfo::PGTGA   CPUGroupInfo::m_pGetThreadGroupAffinity = NULL;
-#if !defined(FEATURE_CORESYSTEM) && !defined(FEATURE_CORECLR)
 /*static*/ CPUGroupInfo::PGCPNEx CPUGroupInfo::m_pGetCurrentProcessorNumberEx = NULL;
 /*static*/ CPUGroupInfo::PGST    CPUGroupInfo::m_pGetSystemTimes = NULL;
-#endif
 /*static*/ //CPUGroupInfo::PNTQSIEx CPUGroupInfo::m_pNtQuerySystemInformationEx = NULL;
 
 /*static*/ BOOL CPUGroupInfo::GetLogicalProcessorInformationEx(DWORD relationship,
@@ -801,14 +779,12 @@ BYTE * ClrVirtualAllocWithinRange(const BYTE *pMinAddr,
     return (*m_pGetThreadGroupAffinity)(h, groupAffinity);
 }
 
-#if !defined(FEATURE_CORESYSTEM) && !defined(FEATURE_CORECLR)
 /*static*/ BOOL CPUGroupInfo::GetSystemTimes(FILETIME *idleTime, FILETIME *kernelTime, FILETIME *userTime)
 {
     LIMITED_METHOD_CONTRACT;
     return (*m_pGetSystemTimes)(idleTime, kernelTime, userTime);
 }
 #endif
-#endif
 
 /*static*/ BOOL  CPUGroupInfo::m_enableGCCPUGroups = FALSE;
 /*static*/ BOOL  CPUGroupInfo::m_threadUseAllCpuGroups = FALSE;
@@ -845,7 +821,6 @@ BYTE * ClrVirtualAllocWithinRange(const BYTE *pMinAddr,
     if (m_pGetThreadGroupAffinity == NULL)
         return FALSE;
 
-#if !defined(FEATURE_CORESYSTEM) && !defined(FEATURE_CORECLR)
     m_pGetCurrentProcessorNumberEx = (PGCPNEx)GetProcAddress(hMod, "GetCurrentProcessorNumberEx");
     if (m_pGetCurrentProcessorNumberEx == NULL)
         return FALSE;
@@ -853,7 +828,6 @@ BYTE * ClrVirtualAllocWithinRange(const BYTE *pMinAddr,
     m_pGetSystemTimes = (PGST)GetProcAddress(hMod, "GetSystemTimes");
     if (m_pGetSystemTimes == NULL)
         return FALSE;
-#endif
 
     return TRUE;
 #else
@@ -973,10 +947,10 @@ BYTE * ClrVirtualAllocWithinRange(const BYTE *pMinAddr,
 
 #if !defined(FEATURE_REDHAWK) && defined(_TARGET_AMD64_) && !defined(FEATURE_PAL)
     BOOL enableGCCPUGroups     = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_GCCpuGroup) != 0;
-       BOOL threadUseAllCpuGroups = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_Thread_UseAllCpuGroups) != 0;
+    BOOL threadUseAllCpuGroups = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_Thread_UseAllCpuGroups) != 0;
 
-       if (!enableGCCPUGroups)
-               return;
+    if (!enableGCCPUGroups)
+        return;
 
     if (!InitCPUGroupInfoAPI())
         return;
@@ -1085,7 +1059,7 @@ retry:
     }
     CONTRACTL_END;
 
-#if !defined(FEATURE_REDHAWK) && !defined(FEATURE_CORESYSTEM) && !defined(FEATURE_CORECLR) && defined(_TARGET_AMD64_) && !defined(FEATURE_PAL)
+#if !defined(FEATURE_REDHAWK) && defined(_TARGET_AMD64_) && !defined(FEATURE_PAL)
     // m_enableGCCPUGroups and m_threadUseAllCpuGroups must be TRUE
     _ASSERTE(m_enableGCCPUGroups && m_threadUseAllCpuGroups);
 
@@ -1106,7 +1080,7 @@ retry:
 #endif
 }
 
-#if !defined(FEATURE_REDHAWK) && !defined(FEATURE_CORESYSTEM) && !defined(FEATURE_CORECLR) && !defined(FEATURE_PAL)
+#if !defined(FEATURE_REDHAWK) && !defined(FEATURE_PAL)
 //Lock ThreadStore before calling this function, so that updates of weights/counts are consistent
 /*static*/ void CPUGroupInfo::ChooseCPUGroupAffinity(GROUP_AFFINITY *gf)
 {
@@ -1203,7 +1177,7 @@ int GetCurrentProcessCpuCount()
     if (cCPUs != 0)
         return cCPUs;
 
-#if !defined(FEATURE_CORESYSTEM)
+#ifndef FEATURE_PAL
 
     DWORD_PTR pmask, smask;
 
@@ -1238,14 +1212,14 @@ int GetCurrentProcessCpuCount()
             
     return count;
 
-#else // !FEATURE_CORESYSTEM
+#else // !FEATURE_PAL
 
     SYSTEM_INFO sysInfo;
     ::GetSystemInfo(&sysInfo);
     cCPUs = sysInfo.dwNumberOfProcessors;
     return sysInfo.dwNumberOfProcessors;
 
-#endif // !FEATURE_CORESYSTEM
+#endif // !FEATURE_PAL
 }
 
 DWORD_PTR GetCurrentProcessCpuMask()
@@ -1258,7 +1232,7 @@ DWORD_PTR GetCurrentProcessCpuMask()
     }
     CONTRACTL_END;
 
-#if !defined(FEATURE_CORESYSTEM)
+#ifndef FEATURE_PAL
     DWORD_PTR pmask, smask;
 
     if (!GetProcessAffinityMask(GetCurrentProcess(), &pmask, &smask))
index 32d1c35..7ce3c83 100644 (file)
@@ -978,10 +978,18 @@ HighCharHelper::HighCharTable[]= {
     TRUE, /* 0x7, .*/
     TRUE, /* 0x8, .*/
     FALSE, /* 0x9,   */
+#ifdef PLATFORM_UNIX
+    TRUE, /* 0xA,  */
+#else    
     FALSE, /* 0xA,  */
+#endif // PLATFORM_UNIX
     FALSE, /* 0xB, .*/
     FALSE, /* 0xC, .*/
+#ifdef PLATFORM_UNIX
+    TRUE, /* 0xD,  */
+#else    
     FALSE, /* 0xD,  */
+#endif // PLATFORM_UNIX
     TRUE, /* 0xE, .*/
     TRUE, /* 0xF, .*/
     TRUE, /* 0x10, .*/
index a83c166..e972ae8 100644 (file)
@@ -953,9 +953,16 @@ PCODE DynamicHelpers::CreateHelper(LoaderAllocator * pAllocator, TADDR arg, PCOD
     END_DYNAMIC_HELPER_EMIT();
 }
 
-PCODE DynamicHelpers::CreateHelperWithArg(LoaderAllocator * pAllocator, TADDR arg, PCODE target)
+void DynamicHelpers::EmitHelperWithArg(BYTE*& p, LoaderAllocator * pAllocator, TADDR arg, PCODE target)
 {
-    BEGIN_DYNAMIC_HELPER_EMIT(15);
+    CONTRACTL
+    {
+        GC_NOTRIGGER;
+        PRECONDITION(p != NULL && target != NULL);
+    }
+    CONTRACTL_END;
+
+    // Move an an argument into the second argument register and jump to a target function.
 
 #ifdef UNIX_AMD64_ABI
     *(UINT16 *)p = 0xBE48; // mov rsi, XXXXXX
@@ -969,6 +976,13 @@ PCODE DynamicHelpers::CreateHelperWithArg(LoaderAllocator * pAllocator, TADDR ar
     *p++ = X86_INSTR_JMP_REL32; // jmp rel32
     *(INT32 *)p = rel32UsingJumpStub((INT32 *)p, target, NULL, pAllocator);
     p += 4;
+}
+
+PCODE DynamicHelpers::CreateHelperWithArg(LoaderAllocator * pAllocator, TADDR arg, PCODE target)
+{
+    BEGIN_DYNAMIC_HELPER_EMIT(15);
+
+    EmitHelperWithArg(p, pAllocator, arg, target);
 
     END_DYNAMIC_HELPER_EMIT();
 }
@@ -1126,6 +1140,97 @@ PCODE DynamicHelpers::CreateHelperWithTwoArgs(LoaderAllocator * pAllocator, TADD
     END_DYNAMIC_HELPER_EMIT();
 }
 
+PCODE DynamicHelpers::CreateDictionaryLookupHelper(LoaderAllocator * pAllocator, CORINFO_RUNTIME_LOOKUP * pLookup)
+{
+    STANDARD_VM_CONTRACT;
+
+    // TODO: fix codegen for correct Unix ABI...
+
+    // It's available only via the run-time helper function
+    if (pLookup->indirections == CORINFO_USEHELPER)
+    {
+        BEGIN_DYNAMIC_HELPER_EMIT(15);
+
+        // rcx contains the generic context parameter
+        // mov rdx,pLookup->signature
+        // jmp pLookup->helper
+        EmitHelperWithArg(p, pAllocator, (TADDR)pLookup->signature, CEEJitInfo::getHelperFtnStatic(pLookup->helper));
+
+        END_DYNAMIC_HELPER_EMIT();
+    }
+    else
+    {
+        int indirectionsSize = 0;
+        for (WORD i = 0; i < pLookup->indirections; i++)
+            indirectionsSize += (pLookup->offsets[i] >= 0x80 ? 7 : 4);
+
+        int codeSize = indirectionsSize + (pLookup->testForNull ? 30 : 4);
+
+        BEGIN_DYNAMIC_HELPER_EMIT(codeSize);
+
+        if (pLookup->testForNull)
+        {
+            // rcx contains the generic context parameter. Save a copy of it in the rax register
+            // mov rax,rcx
+            *(UINT32*)p = 0x00c88948; p += 3;
+        }
+
+        for (WORD i = 0; i < pLookup->indirections; i++)
+        {
+            // mov rcx,qword ptr [rcx+offset]
+            if (pLookup->offsets[i] >= 0x80)
+            {
+                *(UINT32*)p = 0x00898b48; p += 3;
+                *p = (UINT32)pLookup->offsets[i]; p += 4;
+            }
+            else
+            {
+                *(UINT32*)p = 0x00498b48; p += 3;
+                *p++ = (BYTE)pLookup->offsets[i];
+            }
+        }
+
+        // No null test required
+        if (!pLookup->testForNull)
+        {
+            // No fixups needed for R2R
+
+            // mov rax,rcx
+            *(UINT32*)p = 0x00c88948; p += 3;
+            *p++ = 0xC3;    // ret
+        }
+        else
+        {
+            // rcx contains the value of the dictionary slot entry
+
+            _ASSERTE(pLookup->indirections != 0);
+
+            // test rcx,rcx
+            *(UINT32*)p = 0x00c98548; p += 3;
+
+            // je 'HELPER_CALL' (a jump of 4 bytes)
+            *(UINT16*)p = 0x0474; p += 2;
+
+            // mov rax,rcx
+            *(UINT32*)p = 0x00c88948; p += 3;
+            *p++ = 0xC3;    // ret
+
+            // 'HELPER_CALL'
+            {
+                // Put the generic context back into rcx (was previously saved in rax)
+                // mov rcx,rax
+                *(UINT32*)p = 0x00c18948; p += 3;
+
+                // mov rdx,pLookup->signature
+                // jmp pLookup->helper
+                EmitHelperWithArg(p, pAllocator, (TADDR)pLookup->signature, CEEJitInfo::getHelperFtnStatic(pLookup->helper));
+            }
+        }
+
+        END_DYNAMIC_HELPER_EMIT();
+    }
+}
+
 #endif // FEATURE_READYTORUN
 
 #endif // DACCESS_COMPILE
index a065075..6edcd25 100644 (file)
@@ -110,7 +110,7 @@ LEAF_ENTRY JIT_WriteBarrier, _TEXT
         movabs  rax, 0xF0F0F0F0F0F0F0F0
 
         // Touch the card table entry, if not already dirty.
-        shr     rdi, 0Bh
+        shr     rdi, 0x0B
         cmp     byte ptr [rdi + rax], 0FFh
         .byte 0x75, 0x02
         // jne     UpdateCardTable
@@ -301,7 +301,7 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT
 
         // Check if we need to update the card table
         // Calc pCardByte
-        shr     rcx, 0Bh
+        shr     rcx, 0x0B
         PREPARE_EXTERNAL_VAR g_card_table, rax
         add     rcx, [rax]
 
index 085f85b..6d61b26 100644 (file)
@@ -32,7 +32,7 @@ PATCH_LABEL JIT_WriteBarrier_PreGrow64_Patch_Label_CardTable
         movabs  rax, 0xF0F0F0F0F0F0F0F0
 
         // Touch the card table entry, if not already dirty.
-        shr     rdi, 0Bh
+        shr     rdi, 0x0B
         cmp     byte ptr [rdi + rax], 0FFh
         .byte 0x75, 0x02
         // jne     UpdateCardTable_PreGrow64
@@ -87,7 +87,7 @@ PATCH_LABEL JIT_WriteBarrier_PostGrow64_Patch_Label_CardTable
         movabs  rax, 0xF0F0F0F0F0F0F0F0
 
         // Touch the card table entry, if not already dirty.
-        shr     rdi, 0Bh
+        shr     rdi, 0x0B
         cmp     byte ptr [rdi + rax], 0FFh
         .byte 0x75, 0x02
         // jne     UpdateCardTable_PostGrow64
@@ -125,7 +125,7 @@ LEAF_ENTRY JIT_WriteBarrier_SVR64, _TEXT
 PATCH_LABEL JIT_WriteBarrier_SVR64_PatchLabel_CardTable
         movabs  rax, 0xF0F0F0F0F0F0F0F0
 
-        shr     rdi, 0Bh
+        shr     rdi, 0x0B
 
         cmp     byte ptr [rdi + rax], 0FFh
         .byte 0x75, 0x02
@@ -178,7 +178,7 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_Lower
         // jb      Exit_WriteWatch_PreGrow64
 
         // Touch the card table entry, if not already dirty.
-        shr     rdi, 0Bh
+        shr     rdi, 0x0B
         NOP_2_BYTE // padding for alignment of constant
 PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_CardTable
         movabs  rax, 0xF0F0F0F0F0F0F0F0
@@ -249,7 +249,7 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_CardTable
         movabs  rax, 0xF0F0F0F0F0F0F0F0
 
         // Touch the card table entry, if not already dirty.
-        shr     rdi, 0Bh
+        shr     rdi, 0x0B
         cmp     byte ptr [rdi + rax], 0FFh
         .byte 0x75, 0x02
         // jne     UpdateCardTable_WriteWatch_PostGrow64
@@ -304,7 +304,7 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_SVR64_PatchLabel_CardTable
         mov     byte ptr [rax], 0FFh
 
     CheckCardTable_WriteWatch_SVR64:
-        shr     rdi, 0Bh
+        shr     rdi, 0x0B
         cmp     byte ptr [rdi + r11], 0FFh
         .byte 0x75, 0x02
         // jne     UpdateCardTable_WriteWatch_SVR64
index 6c8d907..0a5da69 100644 (file)
@@ -93,7 +93,7 @@ LEAF_ENTRY JIT_WriteBarrier_Debug, _TEXT
 
         // Check if we need to update the card table
         // Calc pCardByte
-        shr     rdi, 0Bh
+        shr     rdi, 0x0B
         PREPARE_EXTERNAL_VAR g_card_table, r10
         add     rdi, [r10]
 
@@ -111,4 +111,3 @@ LEAF_ENTRY JIT_WriteBarrier_Debug, _TEXT
         REPRET
 LEAF_END_MARKED JIT_WriteBarrier_Debug, _TEXT
 #endif
-
index 9a90371..53c6877 100644 (file)
 #include "../binder/inc/clrprivbindercoreclr.h"
 #endif
 
-#if defined(FEATURE_APPX_BINDER) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_APPX_BINDER)
 #include "appxutil.h"
 #include "clrprivbinderappx.h"
 #endif
 
-#ifdef FEATURE_HOSTED_BINDER
 #include "clrprivtypecachewinrt.h"
-#endif
 
 #ifndef FEATURE_CORECLR
 #include "nlsinfo.h"
@@ -3409,11 +3407,8 @@ int g_fInitializingInitialAD = 0;
 // This routine completes the initialization of the default domaine.
 // After this call mananged code can be executed.
 void SystemDomain::InitializeDefaultDomain(
-    BOOL allowRedirects
-#ifdef FEATURE_HOSTED_BINDER
-    , ICLRPrivBinder * pBinder
-#endif
-    )
+    BOOL allowRedirects,
+    ICLRPrivBinder * pBinder)
 {
     STANDARD_VM_CONTRACT;
 
@@ -3474,7 +3469,6 @@ void SystemDomain::InitializeDefaultDomain(
 
     AppDomain* pDefaultDomain = SystemDomain::System()->DefaultDomain();
 
-#ifdef FEATURE_HOSTED_BINDER
     if (pBinder != nullptr)
     {
         pDefaultDomain->SetLoadContextHostBinder(pBinder);
@@ -3486,7 +3480,6 @@ void SystemDomain::InitializeDefaultDomain(
             pDefaultDomain->SetLoadContextHostBinder(pAppXBinder);
         }
     #endif
-#endif
 
     {
         GCX_COOP();
@@ -5066,7 +5059,6 @@ void AppDomain::Init()
     SetStage( STAGE_CREATING);
 
 
-#ifdef FEATURE_HOSTED_BINDER
     // The lock is taken also during stack walking (GC or profiler)
     //  - To prevent deadlock with GC thread, we cannot trigger GC while holding the lock
     //  - To prevent deadlock with profiler thread, we cannot allow thread suspension
@@ -5076,7 +5068,6 @@ void AppDomain::Init()
                     | CRST_DEBUGGER_THREAD 
                     INDEBUG(| CRST_DEBUG_ONLY_CHECK_FORBID_SUSPEND_THREAD)));
     m_crstHostAssemblyMapAdd.Init(CrstHostAssemblyMapAdd);
-#endif //FEATURE_HOSTED_BINDER
 
     m_dwId = SystemDomain::GetNewAppDomainId(this);
 
@@ -7637,7 +7628,6 @@ DomainAssembly * AppDomain::FindAssembly(PEAssembly * pFile, FindAssemblyOptions
 
     const bool includeFailedToLoad = (options & FindAssemblyOptions_IncludeFailedToLoad) != 0;
 
-#ifdef FEATURE_HOSTED_BINDER
     if (pFile->HasHostAssembly())
     {
         DomainAssembly * pDA = FindAssembly(pFile->GetHostAssembly());
@@ -7647,7 +7637,6 @@ DomainAssembly * AppDomain::FindAssembly(PEAssembly * pFile, FindAssemblyOptions
         }
         return nullptr;
     }
-#endif
 
     AssemblyIterator i = IterateAssembliesEx((AssemblyIterationFlags)(
         kIncludeLoaded | 
@@ -8194,7 +8183,6 @@ BOOL AppDomain::PostBindResolveAssembly(AssemblySpec  *pPrePolicySpec,
     return fFailure;
 }
 
-#ifdef FEATURE_HOSTED_BINDER
 //----------------------------------------------------------------------------------------
 // Helper class for hosted binder
 
@@ -8477,7 +8465,6 @@ AppDomain::BindHostedPrivAssembly(
 
     return S_OK;
 } // AppDomain::BindHostedPrivAssembly
-#endif // FEATURE_HOSTED_BINDER
 
 //---------------------------------------------------------------------------------------------------------------------
 PEAssembly * AppDomain::BindAssemblySpec(
@@ -8498,7 +8485,7 @@ PEAssembly * AppDomain::BindAssemblySpec(
 
     BOOL fForceReThrow = FALSE;
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#if defined(FEATURE_APPX_BINDER)
     //
     // If there is a host binder available and this is an unparented bind within the
     // default load context, then the bind will be delegated to the domain-wide host
@@ -8626,8 +8613,8 @@ EndTry1:;
         return pAssembly.Extract();
     }
     else
-#endif //FEATURE_HOSTED_BINDER && FEATURE_APPX_BINDER
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_COMINTEROP)
+#endif // FEATURE_APPX_BINDER
+#if defined(FEATURE_COMINTEROP)
     // Handle WinRT assemblies in the classic/hybrid scenario. If this is an AppX process,
     // then this case will be handled by the previous block as part of the full set of
     // available binding hosts.
@@ -8709,7 +8696,7 @@ EndTry2:;
         return pAssembly.Extract();
     }
     else
-#endif // FEATURE_HOSTED_BINDER && FEATURE_COMINTEROP
+#endif // FEATURE_COMINTEROP
     if (pSpec->HasUniqueIdentity())
     {
         HRESULT hrBindResult = S_OK;
@@ -14227,7 +14214,7 @@ BOOL RuntimeCanUseAppPathAssemblyResolver(DWORD adid)
 }
 
 // Returns S_OK if the assembly was successfully loaded
-HRESULT RuntimeInvokeHostAssemblyResolver(INT_PTR pManagedAssemblyLoadContextToBindWithin, IAssemblyName *pIAssemblyName, ICLRPrivAssembly **ppLoadedAssembly)
+HRESULT RuntimeInvokeHostAssemblyResolver(INT_PTR pManagedAssemblyLoadContextToBindWithin, IAssemblyName *pIAssemblyName, CLRPrivBinderCoreCLR *pTPABinder, BINDER_SPACE::AssemblyName *pAssemblyName, ICLRPrivAssembly **ppLoadedAssembly)
 {
     CONTRACTL
     {
@@ -14256,6 +14243,8 @@ HRESULT RuntimeInvokeHostAssemblyResolver(INT_PTR pManagedAssemblyLoadContextToB
         
         GCPROTECT_BEGIN(_gcRefs);
         
+        ICLRPrivAssembly *pAssemblyBindingContext = NULL;
+        
         // Prepare to invoke System.Runtime.Loader.AssemblyLoadContext.Resolve method.
         //
         // First, initialize an assembly spec for the requested assembly
@@ -14264,7 +14253,9 @@ HRESULT RuntimeInvokeHostAssemblyResolver(INT_PTR pManagedAssemblyLoadContextToB
         hr = spec.Init(pIAssemblyName);
         if (SUCCEEDED(hr))
         {
-            // Next, allocate an AssemblyName managed object
+            // Step 2 (of CLRPrivBinderAssemblyLoadContext::BindUsingAssemblyName) - Invoke Load method
+            //
+            // Allocate an AssemblyName managed object
             _gcRefs.oRefAssemblyName = (ASSEMBLYNAMEREF) AllocateObject(MscorlibBinder::GetClass(CLASS__ASSEMBLY_NAME));
             
             // Initialize the AssemblyName object from the AssemblySpec
@@ -14281,10 +14272,63 @@ HRESULT RuntimeInvokeHostAssemblyResolver(INT_PTR pManagedAssemblyLoadContextToB
                 ObjToArgSlot(_gcRefs.oRefAssemblyName), // AssemblyName instance
             };
 
+            bool fResolvedAssembly = true;
+            bool fResolvedAssemblyViaTPALoadContext = false;
+            
             // Make the call
             _gcRefs.oRefLoadedAssembly = (ASSEMBLYREF) methLoadAssembly.Call_RetOBJECTREF(args);
-            if (_gcRefs.oRefLoadedAssembly != NULL)
+            if (_gcRefs.oRefLoadedAssembly == NULL)
+            {
+                fResolvedAssembly = false;
+            }
+            
+            if (!fResolvedAssembly)
+            {
+                // Step 3 (of CLRPrivBinderAssemblyLoadContext::BindUsingAssemblyName)
+                //
+                // If we could not resolve the assembly using Load method, then bind using TPA binder if present in its
+                // load context.
+                if (pTPABinder != NULL)
+                {
+                    // Switch to pre-emp mode before calling into the binder
+                    GCX_PREEMP();
+                    BINDER_SPACE::Assembly *pCoreCLRFoundAssembly = NULL;
+                    hr = pTPABinder->BindAssemblyByNameWorker(pAssemblyName, &pCoreCLRFoundAssembly, true /* excludeAppPaths */);
+                    if (SUCCEEDED(hr))
+                    {
+                        pAssemblyBindingContext = pCoreCLRFoundAssembly;
+                        fResolvedAssembly = true;
+                        fResolvedAssemblyViaTPALoadContext = true;
+                    }
+                }
+            }
+            
+            if (!fResolvedAssembly)
+            {
+                // Step 4 (of CLRPrivBinderAssemblyLoadContext::BindUsingAssemblyName)
+                //
+                // If we couldnt resolve the assembly using TPA LoadContext as well, then
+                // attempt to resolve it using the Resolving event.
+                // Finally, setup arguments for invocation
+                BinderMethodID idHAR_ResolveUsingEvent = METHOD__ASSEMBLYLOADCONTEXT__RESOLVEUSINGEVENT;
+                MethodDescCallSite methLoadAssembly(idHAR_ResolveUsingEvent);
+                
+                // Setup the arguments for the call
+                ARG_SLOT args[2] =
+                {
+                    PtrToArgSlot(pManagedAssemblyLoadContextToBindWithin), // IntPtr for managed assembly load context instance
+                    ObjToArgSlot(_gcRefs.oRefAssemblyName), // AssemblyName instance
+                };
+
+                // Make the call
+                _gcRefs.oRefLoadedAssembly = (ASSEMBLYREF) methLoadAssembly.Call_RetOBJECTREF(args);
+            }
+            
+            if (fResolvedAssembly && !fResolvedAssemblyViaTPALoadContext)
             {
+                // If we are here, assembly was successfully resolved via Load or Resolving events.
+                _ASSERTE(_gcRefs.oRefLoadedAssembly != NULL);
+                    
                 // We were able to get the assembly loaded. Now, get its name since the host could have
                 // performed the resolution using an assembly with different name.
                 DomainAssembly *pDomainAssembly = _gcRefs.oRefLoadedAssembly->GetDomainAssembly();
@@ -14315,23 +14359,23 @@ HRESULT RuntimeInvokeHostAssemblyResolver(INT_PTR pManagedAssemblyLoadContextToB
                 
                 // Is the assembly already bound using a binding context that will be incompatible?
                 // An example is attempting to consume an assembly bound to WinRT binder.
-                ICLRPrivAssembly *pAssemblyBindingContext = pLoadedPEAssembly->GetHostAssembly();
-
+                pAssemblyBindingContext = pLoadedPEAssembly->GetHostAssembly();
+            }
+            
 #ifdef FEATURE_COMINTEROP
-                if (AreSameBinderInstance(pAssemblyBindingContext, GetAppDomain()->GetWinRtBinder()))
-                {
-                    // It is invalid to return an assembly bound to an incompatible binder
-                    *ppLoadedAssembly = NULL;
-                    SString name;
-                    spec.GetFileOrDisplayName(0, name);
-                    COMPlusThrowHR(COR_E_INVALIDOPERATION, IDS_HOST_ASSEMBLY_RESOLVER_INCOMPATIBLE_BINDING_CONTEXT, name);
-                }
+            if (AreSameBinderInstance(pAssemblyBindingContext, GetAppDomain()->GetWinRtBinder()))
+            {
+                // It is invalid to return an assembly bound to an incompatible binder
+                *ppLoadedAssembly = NULL;
+                SString name;
+                spec.GetFileOrDisplayName(0, name);
+                COMPlusThrowHR(COR_E_INVALIDOPERATION, IDS_HOST_ASSEMBLY_RESOLVER_INCOMPATIBLE_BINDING_CONTEXT, name);
+            }
 #endif // FEATURE_COMINTEROP
 
-                // Get the ICLRPrivAssembly reference to return back to.
-                *ppLoadedAssembly = clr::SafeAddRef(pLoadedPEAssembly->GetHostAssembly());
-                hr = S_OK;
-            }
+            // Get the ICLRPrivAssembly reference to return back to.
+            *ppLoadedAssembly = clr::SafeAddRef(pAssemblyBindingContext);
+            hr = S_OK;
         }
         
         GCPROTECT_END();
@@ -14625,7 +14669,6 @@ TypeEquivalenceHashTable * AppDomain::GetTypeEquivalenceCache()
 
 #endif //FEATURE_TYPEEQUIVALENCE
 
-#if defined(FEATURE_HOSTED_BINDER)
 #if !defined(DACCESS_COMPILE)
 
 //---------------------------------------------------------------------------------------------------------------------
@@ -14835,8 +14878,6 @@ PTR_DomainAssembly AppDomain::FindAssembly(PTR_ICLRPrivAssembly pHostAssembly)
     }
 }
 
-#endif //FEATURE_HOSTED_BINDER
-
 #if !defined(DACCESS_COMPILE) && defined(FEATURE_CORECLR) && defined(FEATURE_NATIVE_IMAGE_GENERATION)
 
 void ZapperSetBindingPaths(ICorCompilationDomain *pDomain, SString &trustedPlatformAssemblies, SString &platformResourceRoots, SString &appPaths, SString &appNiPaths)
index cad939c..97e8438 100644 (file)
@@ -2529,7 +2529,6 @@ public:
         AssemblyLoadSecurity *pLoadSecurity = NULL,
         BOOL fUseHostBinderIfAvailable = TRUE) DAC_EMPTY_RET(NULL);
 
-#ifdef FEATURE_HOSTED_BINDER
     HRESULT BindAssemblySpecForHostedBinder(
         AssemblySpec *   pSpec, 
         IAssemblyName *  pAssemblyName, 
@@ -2542,7 +2541,6 @@ public:
         IAssemblyName *    pAssemblyName, 
         PEAssembly **      ppAssembly, 
         BOOL               fIsIntrospectionOnly = FALSE) DAC_EMPTY_RET(S_OK);
-#endif // FEATURE_HOSTED_BINDER
 
 #ifdef FEATURE_REFLECTION_ONLY_LOAD    
     virtual DomainAssembly *BindAssemblySpecForIntrospectionDependencies(AssemblySpec *pSpec) DAC_EMPTY_RET(NULL);
@@ -3949,7 +3947,6 @@ public:
     COMNlsHashProvider *m_pNlsHashProvider;
 #endif // !FEATURE_CORECLR
 
-#ifdef FEATURE_HOSTED_BINDER
 private:
     // This is the root-level default load context root binder. If null, then
     // the Fusion binder is used; otherwise this binder is used.
@@ -4154,7 +4151,6 @@ private:
         DomainAssembly* pAssembly);
 #endif // DACCESS_COMPILE
 
-#endif //FEATURE_HOSTED_BINDER
 #ifdef FEATURE_PREJIT
     friend void DomainFile::InsertIntoDomainFileWithNativeImageList();
     Volatile<DomainFile *> m_pDomainFileWithNativeImageList;
@@ -4372,12 +4368,7 @@ public:
 #endif
     static void ActivateApplication(int *pReturnValue);
 
-    static void InitializeDefaultDomain(
-        BOOL allowRedirects
-#ifdef FEATURE_HOSTED_BINDER
-        , ICLRPrivBinder * pBinder = NULL
-#endif
-        );
+    static void InitializeDefaultDomain(BOOL allowRedirects, ICLRPrivBinder * pBinder = NULL);
     static void SetupDefaultDomain();
     static HRESULT SetupDefaultDomainNoThrow();
 
index ccdc31a..a96c643 100644 (file)
 #if defined(FEATURE_APPX)
 #include "appxutil.h"
 #endif // FEATURE_APPX
-#if defined(FEATURE_APPX_BINDER) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_APPX_BINDER)
 #include "clrprivbinderappx.h"
 #include "clrprivtypecachewinrt.h"
-#endif // FEATURE_APPX_BINDER && FEATURE_HOSTED_BINDER
+#endif // FEATURE_APPX_BINDER
 #ifdef FEATURE_VERSIONING
 #include "../binder/inc/clrprivbindercoreclr.h"
 #endif
@@ -1728,7 +1728,7 @@ FCIMPL0(INT64, AppDomainNative::GetLastSurvivedProcessMemorySize)
 FCIMPLEND
 #endif // FEATURE_APPDOMAIN_RESOURCE_MONITORING
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#if defined(FEATURE_APPX_BINDER)
 ICLRPrivBinder * QCALLTYPE AppDomainNative::CreateDesignerContext(LPCWSTR *rgPaths, 
                                                             UINT cPaths,
                                                             BOOL fShared)
@@ -1778,5 +1778,5 @@ void QCALLTYPE AppDomainNative::SetCurrentDesignerContext(BOOL fDesignerContext,
 
     END_QCALL;
 }
-#endif // defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#endif // defined(FEATURE_APPX_BINDER)
 
index 47bbc6f..ee3af20 100644 (file)
@@ -141,7 +141,7 @@ public:
     void QCALLTYPE RegisterWithHost(IUnknown *punkAppDomainManager);
 #endif // FEATURE_APPDOMAINMANAGER_INITOPTIONS
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#if defined(FEATURE_APPX_BINDER)
     static
     ICLRPrivBinder * QCALLTYPE CreateDesignerContext(LPCWSTR *rgPaths, UINT cPaths, BOOL fShared);
 
index 715dce8..7b614e7 100644 (file)
@@ -314,10 +314,12 @@ LOCAL_LABEL(LNullThis):
         push                {r0-r3,r12}
         PROLOG_STACK_SAVE_OFFSET   r7, #28
 
-        //GBLA UMThunkStub_HiddenArg // offset of saved UMEntryThunk *
-        //GBLA UMThunkStub_StackArgs // offset of original stack args (total size of UMThunkStub frame)
-UMThunkStub_HiddenArg = 4*4
-UMThunkStub_StackArgs = 10*4
+        //GBLA UMThunkStub_HiddenArgOffest // offset of saved UMEntryThunk *
+        //GBLA UMThunkStub_StackArgsOffest // offset of original stack args
+        //GBLA UMThunkStub_StackArgsSize   // total size of UMThunkStub frame
+UMThunkStub_HiddenArgOffset = (-3)*4
+UMThunkStub_StackArgsOffset = 3*4
+UMThunkStub_StackArgsSize = 10*4
 
         CHECK_STACK_ALIGNMENT
 
@@ -336,7 +338,7 @@ LOCAL_LABEL(UMThunkStub_HaveThread):
         cbnz                r3, LOCAL_LABEL(UMThunkStub_DoTrapReturningThreads)
 
 LOCAL_LABEL(UMThunkStub_InCooperativeMode):
-        ldr                 r12, [r7, #UMThunkStub_HiddenArg]
+        ldr                 r12, [r7, #UMThunkStub_HiddenArgOffset]
 
         ldr                 r0, [r5, #Thread__m_pDomain]
         ldr                 r1, [r12, #UMEntryThunk__m_dwDomainId]
@@ -348,7 +350,7 @@ LOCAL_LABEL(UMThunkStub_InCooperativeMode):
         ldr                 r2, [r3, #UMThunkMarshInfo__m_cbActualArgSize]
         cbz                 r2, LOCAL_LABEL(UMThunkStub_ArgumentsSetup)
 
-        add                 r0, r7, #UMThunkStub_StackArgs // Source pointer
+        add                 r0, r7, #UMThunkStub_StackArgsOffset // Source pointer
         add                 r0, r0, r2
         lsr                 r1, r2, #2      // Count of stack slots to copy
 
@@ -365,7 +367,8 @@ LOCAL_LABEL(UMThunkStub_ArgumentsSetup):
         ldr                 r4, [r3, #UMThunkMarshInfo__m_pILStub]
 
         // reload argument registers
-        ldm                 r7, {r0-r3}
+        sub                 r0, r7, #28
+        ldm                 r0, {r0-r3}
 
         CHECK_STACK_ALIGNMENT
 
@@ -391,7 +394,7 @@ LOCAL_LABEL(UMThunkStub_DoTrapReturningThreads):
         sub                 sp, #SIZEOF__FloatArgumentRegisters
         vstm                sp, {d0-d7}
         mov                 r0, r5              // Thread* pThread
-        ldr                 r1, [r7, #UMThunkStub_HiddenArg]  // UMEntryThunk* pUMEntry
+        ldr                 r1, [r7, #UMThunkStub_HiddenArgOffset]  // UMEntryThunk* pUMEntry
         bl                  C_FUNC(UMThunkStubRareDisableWorker)
         vldm                sp, {d0-d7}
         add                 sp, #SIZEOF__FloatArgumentRegisters
@@ -401,7 +404,7 @@ LOCAL_LABEL(UMThunkStub_WrongAppDomain):
         sub                 sp, #SIZEOF__FloatArgumentRegisters
         vstm                sp, {d0-d7}
 
-        ldr                 r0, [r7, #UMThunkStub_HiddenArg]  // UMEntryThunk* pUMEntry
+        ldr                 r0, [r7, #UMThunkStub_HiddenArgOffset]  // UMEntryThunk* pUMEntry
         mov                 r2, r7              // void * pArgs
         // remaining arguments are unused
         bl                  C_FUNC(UM2MDoADCallBack)
@@ -441,7 +444,7 @@ LOCAL_LABEL(UMThunkStub_WrongAppDomain):
         ldr                 r2, [r3, #UMThunkMarshInfo__m_cbActualArgSize]
         cbz                 r2, LOCAL_LABEL(UM2MThunk_WrapperHelper_ArgumentsSetup)
 
-        add                 r0, r5, #UMThunkStub_StackArgs // Source pointer
+        add                 r0, r5, #UMThunkStub_StackArgsSize // Source pointer
         add                 r0, r0, r2
         lsr                 r1, r2, #2      // Count of stack slots to copy
 
index c32a06b..88afc43 100644 (file)
@@ -114,7 +114,9 @@ OFFSET_OF_FRAME=(4 + SIZEOF__GSCookie)
         // Save the SP of this function
         str sp, [r3]
         // apply the non-volatiles corresponding to the CrawlFrame
-        ldm r2, {r4-r11}
+        ldm r2!, {r4-r6}
+        add r2, r2, #4
+        ldm r2!, {r8-r11}
         // Invoke the funclet
         blx r1
 
@@ -129,7 +131,6 @@ OFFSET_OF_FRAME=(4 + SIZEOF__GSCookie)
 
         PROLOG_PUSH  "{r7, lr}"
         PROLOG_STACK_SAVE r7
-        alloc_stack  4
 
         // On entry:
         //
@@ -143,7 +144,6 @@ OFFSET_OF_FRAME=(4 + SIZEOF__GSCookie)
         // Invoke the filter funclet
         blx r2
 
-        free_stack   4
         EPILOG_POP   "{r7, pc}"
 
         NESTED_END CallEHFilterFunclet, _TEXT
index 3ab4034..decedc0 100644 (file)
@@ -22,9 +22,9 @@
         ldr r3, [r0]
         ldr r3, [r1]
         
-        push {lr}
+        push {r7, lr} // r7 as a dummy to make SP aligned
         blx C_FUNC(memcpy)
-        pop {lr}
+        pop {r7, lr}
 
 LOCAL_LABEL(GC_POLL):
         ldr r0, =g_TrapReturningThreads
index 2f1377f..432b11a 100644 (file)
@@ -3922,6 +3922,13 @@ PCODE DynamicHelpers::CreateHelperWithTwoArgs(LoaderAllocator * pAllocator, TADD
     END_DYNAMIC_HELPER_EMIT();
 }
 
+PCODE DynamicHelpers::CreateDictionaryLookupHelper(LoaderAllocator * pAllocator, CORINFO_RUNTIME_LOOKUP * pLookup)
+{
+    STANDARD_VM_CONTRACT;
+
+    // TODO (NYI)
+    ThrowHR(E_NOTIMPL);
+}
 #endif // FEATURE_READYTORUN
 
 #endif // CROSSGEN_COMPILE
index 2a3cddb..0d49f0e 100644 (file)
@@ -1606,6 +1606,8 @@ VOID StubLinkerCPU::EmitShuffleThunk(ShuffleEntry *pShuffleEntryArray)
     // field and save it in x9. Tailcall to the target method after re-arranging the arguments
     // ldr x9, [x0, #offsetof(DelegateObject, _methodPtrAux)]
     EmitLoadStoreRegImm(eLOAD, IntReg(9), IntReg(0), DelegateObject::GetOffsetOfMethodPtrAux());
+    //add x11, x0, DelegateObject::GetOffsetOfMethodPtrAux() - load the indirection cell into x11 used by ResolveWorkerAsmStub
+    EmitAddImm(IntReg(11), IntReg(0), DelegateObject::GetOffsetOfMethodPtrAux());
 
     for (ShuffleEntry* pEntry = pShuffleEntryArray; pEntry->srcofs != ShuffleEntry::SENTINEL; pEntry++)
     {
@@ -1707,53 +1709,291 @@ void StubLinkerCPU::EmitUnboxMethodStub(MethodDesc *pMD)
     EmitCallManagedMethod(pMD, TRUE /* tail call */);
 }
 
-#endif // CROSSGEN_COMPILE
+#ifdef FEATURE_READYTORUN
 
-#endif // #ifndef DACCESS_COMPILE
+//
+// Allocation of dynamic helpers
+//
+
+#define DYNAMIC_HELPER_ALIGNMENT sizeof(TADDR)
+
+#define BEGIN_DYNAMIC_HELPER_EMIT(size) \
+    SIZE_T cb = size; \
+    SIZE_T cbAligned = ALIGN_UP(cb, DYNAMIC_HELPER_ALIGNMENT); \
+    BYTE * pStart = (BYTE *)(void *)pAllocator->GetDynamicHelpersHeap()->AllocAlignedMem(cbAligned, DYNAMIC_HELPER_ALIGNMENT); \
+    BYTE * p = pStart;
+
+#define END_DYNAMIC_HELPER_EMIT() \
+    _ASSERTE(pStart + cb == p); \
+    while (p < pStart + cbAligned) { *(DWORD*)p = 0xBADC0DF0; p += 4; }\
+    ClrFlushInstructionCache(pStart, cbAligned); \
+    return (PCODE)pStart
+
+// Uses x8 as scratch register to store address of data label
+// After load x8 is increment to point to next data
+// only accepts positive offsets
+static void LoadRegPair(BYTE* p, int reg1, int reg2, UINT32 offset)
+{
+    LIMITED_METHOD_CONTRACT;
+
+    // adr x8, <label>
+    *(DWORD*)(p + 0) = 0x10000008 | ((offset >> 2) << 5);
+    // ldp reg1, reg2, [x8], #16 ; postindex & wback
+    *(DWORD*)(p + 4) = 0xa8c10100 | (reg2 << 10) | reg1;
+}
 
-#ifdef FEATURE_READYTORUN
 PCODE DynamicHelpers::CreateHelper(LoaderAllocator * pAllocator, TADDR arg, PCODE target)
 {
-    UNREACHABLE();
+    STANDARD_VM_CONTRACT;
+
+    BEGIN_DYNAMIC_HELPER_EMIT(32);
+
+    // adr x8, <label>
+    // ldp x0, x12, [x8]
+    LoadRegPair(p, 0, 12, 16);
+    p += 8;
+    // br x12
+    *(DWORD*)p = 0xd61f0180;
+    p += 4;
+
+    // padding to make 8 byte aligned
+    *(DWORD*)p = 0xBADC0DF0; p += 4;
+    
+    // label:
+    // arg
+    *(TADDR*)p = arg;
+    p += 8;
+    // target
+    *(PCODE*)p = target;
+    p += 8;
+    
+    END_DYNAMIC_HELPER_EMIT();
 }
 
 PCODE DynamicHelpers::CreateHelperWithArg(LoaderAllocator * pAllocator, TADDR arg, PCODE target)
 {
-    UNREACHABLE();
+    STANDARD_VM_CONTRACT;
+
+    BEGIN_DYNAMIC_HELPER_EMIT(32);
+    
+    // adr x8, <label>
+    // ldp x1, x12, [x8]
+    LoadRegPair(p, 1, 12, 16);
+    p += 8;
+
+    // br x12
+    *(DWORD*)p = 0xd61f0180;
+    p += 4; 
+
+    // padding to make 8 byte aligned
+    *(DWORD*)p = 0xBADC0DF0; p += 4;
+    
+    // label:
+    // arg
+    *(TADDR*)p = arg;
+    p += 8;
+    // target
+    *(PCODE*)p = target;
+    p += 8;
+    
+    END_DYNAMIC_HELPER_EMIT();  
 }
 
 PCODE DynamicHelpers::CreateHelper(LoaderAllocator * pAllocator, TADDR arg, TADDR arg2, PCODE target)
 {
-    UNREACHABLE();
+    STANDARD_VM_CONTRACT;
+
+    BEGIN_DYNAMIC_HELPER_EMIT(40);
+    
+    // adr x8, <label>
+    // ldp x0, x1, [x8] ; wback
+    LoadRegPair(p, 0, 1, 16);
+    p += 8;
+
+    // ldr x12, [x8]
+    *(DWORD*)p = 0xf940010c;
+    p += 4;
+    // br x12
+    *(DWORD*)p = 0xd61f0180;
+    p += 4;     
+    // label:
+    // arg
+    *(TADDR*)p = arg;
+    p += 8;
+    // arg2
+    *(TADDR*)p = arg2;
+    p += 8;
+    // target
+    *(TADDR*)p = target;
+    p += 8;
+
+    END_DYNAMIC_HELPER_EMIT();      
 }
 
 PCODE DynamicHelpers::CreateHelperArgMove(LoaderAllocator * pAllocator, TADDR arg, PCODE target)
 {
-    UNREACHABLE();
+    STANDARD_VM_CONTRACT;
+
+    BEGIN_DYNAMIC_HELPER_EMIT(32);
+    
+    // mov x1, x0
+    *(DWORD*)p = 0x91000001;
+    p += 4;
+
+    // adr x8, <label>
+    // ldp x0, x12, [x8]
+    LoadRegPair(p, 0, 12, 12);
+    p += 8;
+
+    // br x12
+    *(DWORD*)p = 0xd61f0180;
+    p += 4;     
+
+    // label:
+    // arg
+    *(TADDR*)p = arg;
+    p += 8; 
+    // target
+    *(TADDR*)p = target;
+    p += 8;
+    
+    END_DYNAMIC_HELPER_EMIT();          
 }
 
 PCODE DynamicHelpers::CreateReturn(LoaderAllocator * pAllocator)
 {
-    UNREACHABLE();
+    STANDARD_VM_CONTRACT;
+
+    BEGIN_DYNAMIC_HELPER_EMIT(4);
+    
+    // br lr
+    *(DWORD*)p = 0xd61f03c0;
+    p += 4;
+    END_DYNAMIC_HELPER_EMIT();              
 }
 
 PCODE DynamicHelpers::CreateReturnConst(LoaderAllocator * pAllocator, TADDR arg)
 {
-    UNREACHABLE();
+    STANDARD_VM_CONTRACT;
+
+    BEGIN_DYNAMIC_HELPER_EMIT(16);
+    // ldr x0, <lable>
+    *(DWORD*)p = 0x58000040;
+    p += 4;
+    
+    // br lr
+    *(DWORD*)p = 0xd61f03c0;
+    p += 4;
+
+    // label:
+    // arg
+    *(TADDR*)p = arg;
+    p += 8; 
+
+    END_DYNAMIC_HELPER_EMIT();              
 }
 
 PCODE DynamicHelpers::CreateReturnIndirConst(LoaderAllocator * pAllocator, TADDR arg, INT8 offset)
 {
-    UNREACHABLE();
+    STANDARD_VM_CONTRACT;
+
+    BEGIN_DYNAMIC_HELPER_EMIT(24);
+    
+    // ldr x0, <label>
+    *(DWORD*)p = 0x58000080;
+    p += 4;
+
+    // ldr x0, [x0]
+    *(DWORD*)p = 0xf9400000;
+    p += 4;
+    
+    // add x0, x0, offset
+    *(DWORD*)p = 0x91000000 | (offset << 10);
+    p += 4;
+    
+    // br lr
+    *(DWORD*)p = 0xd61f03c0;
+    p += 4;
+    
+    // label:
+    // arg
+    *(TADDR*)p = arg;
+    p += 8; 
+    
+    END_DYNAMIC_HELPER_EMIT();              
 }
 
 PCODE DynamicHelpers::CreateHelperWithTwoArgs(LoaderAllocator * pAllocator, TADDR arg, PCODE target)
 {
-    UNREACHABLE();
+    STANDARD_VM_CONTRACT;
+
+    BEGIN_DYNAMIC_HELPER_EMIT(32);
+    
+    // adr x8, <label>
+    // ldp x2, x12, [x8]
+    LoadRegPair(p, 2, 12, 16);
+    p += 8;
+
+    // br x12
+    *(DWORD*)p = 0xd61f0180;
+    p += 4; 
+
+    // padding to make 8 byte aligned
+    *(DWORD*)p = 0xBADC0DF0; p += 4;
+    
+    // label:
+    // arg
+    *(TADDR*)p = arg;
+    p += 8; 
+
+    // target
+    *(TADDR*)p = target;
+    p += 8;
+    END_DYNAMIC_HELPER_EMIT();              
 }
 
 PCODE DynamicHelpers::CreateHelperWithTwoArgs(LoaderAllocator * pAllocator, TADDR arg, TADDR arg2, PCODE target)
 {
-    UNREACHABLE();
+    STANDARD_VM_CONTRACT;
+
+    BEGIN_DYNAMIC_HELPER_EMIT(40);
+    
+    // adr x8, <label>
+    // ldp x2, x3, [x8]; wback
+    LoadRegPair(p, 2, 3, 16);
+    p += 8;
+    
+    // ldr x12, [x8]
+    *(DWORD*)p = 0xf940010c;
+    p += 4;
+
+    // br x12
+    *(DWORD*)p = 0xd61f0180;
+    p += 4;     
+
+    // label:
+    // arg
+    *(TADDR*)p = arg;
+    p += 8;
+    // arg2
+    *(TADDR*)p = arg2;
+    p += 8;
+    // target
+    *(TADDR*)p = target;
+    p += 8;
+    END_DYNAMIC_HELPER_EMIT();              
 }
-#endif
+
+PCODE DynamicHelpers::CreateDictionaryLookupHelper(LoaderAllocator * pAllocator, CORINFO_RUNTIME_LOOKUP * pLookup)
+{
+    STANDARD_VM_CONTRACT;
+
+    // TODO (NYI)
+    ThrowHR(E_NOTIMPL);
+}
+#endif // FEATURE_READYTORUN
+
+#endif // CROSSGEN_COMPILE
+
+#endif // #ifndef DACCESS_COMPILE
index 244bedd..072f8b1 100644 (file)
@@ -1128,7 +1128,7 @@ void GenerateArrayOpScript(ArrayMethodDesc *pMD, ArrayOpScript *paos)
     MetaSig msig(pMD);
     _ASSERTE(!msig.IsVarArg());     // No array signature is varargs, code below does not expect it.
 
-    switch (pcls->GetArrayElementType())
+    switch (pMT->GetApproxArrayElementTypeHandle().GetInternalCorElementType())
     {
         // These are all different because of sign extension
 
index 96fd939..c825171 100644 (file)
@@ -52,7 +52,7 @@
 #include "assemblynativeresource.h"
 #endif // !FEATURE_CORECLR
 
-#if defined(FEATURE_HOSTED_BINDER) && !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_CORECLR)
 #include "clrprivbinderloadfile.h" 
 #endif
 
@@ -137,7 +137,6 @@ FCIMPL1(FC_BOOL_RET, AssemblyNative::IsNewPortableAssembly, AssemblyNameBaseObje
 FCIMPLEND
 #endif // FEATURE_FUSION
 
-#ifdef FEATURE_HOSTED_BINDER
 FCIMPL9(Object*, AssemblyNative::Load, AssemblyNameBaseObject* assemblyNameUNSAFE, 
         StringObject* codeBaseUNSAFE, 
         Object* securityUNSAFE, 
@@ -147,16 +146,6 @@ FCIMPL9(Object*, AssemblyNative::Load, AssemblyNameBaseObject* assemblyNameUNSAF
         CLR_BOOL fThrowOnFileNotFound,
         CLR_BOOL fForIntrospection,
         CLR_BOOL fSuppressSecurityChecks)
-#else // !FEATURE_HOSTED_BINDER
-FCIMPL8(Object*, AssemblyNative::Load, AssemblyNameBaseObject* assemblyNameUNSAFE, 
-        StringObject* codeBaseUNSAFE, 
-        Object* securityUNSAFE, 
-        AssemblyBaseObject* requestingAssemblyUNSAFE,
-        StackCrawlMark* stackMark,
-        CLR_BOOL fThrowOnFileNotFound,
-        CLR_BOOL fForIntrospection,
-        CLR_BOOL fSuppressSecurityChecks)
-#endif // FEATURE_HOSTED_BINDER
 {
     FCALL_CONTRACT;
 
@@ -200,11 +189,9 @@ FCIMPL8(Object*, AssemblyNative::Load, AssemblyNameBaseObject* assemblyNameUNSAF
     }
     else if (!fForIntrospection)
     {
-#ifdef FEATURE_HOSTED_BINDER
         // name specified, if immersive ignore the codebase
         if (GetThread()->GetDomain()->HasLoadContextHostBinder())
             gc.codeBase = NULL;
-#endif //FEATURE_HOSTED_BINDER
 
         // Compute parent assembly
         Assembly * pRefAssembly;
@@ -243,13 +230,11 @@ FCIMPL8(Object*, AssemblyNative::Load, AssemblyNameBaseObject* assemblyNameUNSAF
         EEFileLoadException::Throw(&spec, COR_E_NOTSUPPORTED);
     }
     
-#ifdef FEATURE_HOSTED_BINDER
     if (pPrivHostBinder != NULL)
     {
         pParentAssembly = NULL;
         spec.SetHostBinder(pPrivHostBinder);
     }
-#endif // FEATURE_HOSTED_BINDER
     
     if (gc.codeBase != NULL)
         spec.SetCodeBase(&(pThread->m_MarshalAlloc), &gc.codeBase);
@@ -385,12 +370,12 @@ Assembly* AssemblyNative::LoadFromBuffer(BOOL fForIntrospection, const BYTE* pAs
 
         CLRPrivBinderLoadFile* pBinderToUse = NULL;
 
-#if defined(FEATURE_HOSTED_BINDER) && !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_CORECLR)
         if (GetAppDomain()->HasLoadContextHostBinder())
         {
             pBinderToUse = CLRPrivBinderLoadFile::GetOrCreateBinder();
         }
-#endif //  FEATURE_HOSTED_BINDER && !FEATURE_CORECLR
+#endif // !FEATURE_CORECLR
 
         pFile = PEAssembly::OpenMemory(pCallersAssembly->GetManifestFile(),
                                                   pAssemblyData, (COUNT_T)uAssemblyLength, 
@@ -1170,7 +1155,7 @@ FCIMPL1(FC_BOOL_RET, AssemblyNative::IsReflectionOnly, AssemblyBaseObject *pAsse
 }
 FCIMPLEND
 
-void QCALLTYPE AssemblyNative::GetType(QCall::AssemblyHandle pAssembly, LPCWSTR wszName, BOOL bThrowOnError, BOOL bIgnoreCase, QCall::ObjectHandleOnStack retType)
+void QCALLTYPE AssemblyNative::GetType(QCall::AssemblyHandle pAssembly, LPCWSTR wszName, BOOL bThrowOnError, BOOL bIgnoreCase, QCall::ObjectHandleOnStack retType, QCall::ObjectHandleOnStack keepAlive)
 {
     CONTRACTL
     {
@@ -1186,27 +1171,17 @@ void QCALLTYPE AssemblyNative::GetType(QCall::AssemblyHandle pAssembly, LPCWSTR
     if (!wszName)
         COMPlusThrowArgumentNull(W("name"), W("ArgumentNull_String"));
 
-    GCX_COOP();
+    BOOL prohibitAsmQualifiedName = TRUE;
 
-    OBJECTREF keepAlive = NULL;
-    GCPROTECT_BEGIN(keepAlive);
-
-    {
-        GCX_PREEMP();
-
-        BOOL prohibitAsmQualifiedName = TRUE;
-
-        // Load the class from this assembly (fail if it is in a different one).
-        retTypeHandle = TypeName::GetTypeManaged(wszName, pAssembly, bThrowOnError, bIgnoreCase, pAssembly->IsIntrospectionOnly(), prohibitAsmQualifiedName, NULL, FALSE, &keepAlive);
-    }
+    // Load the class from this assembly (fail if it is in a different one).
+    retTypeHandle = TypeName::GetTypeManaged(wszName, pAssembly, bThrowOnError, bIgnoreCase, pAssembly->IsIntrospectionOnly(), prohibitAsmQualifiedName, NULL, FALSE, (OBJECTREF*)keepAlive.m_ppObject);
 
     if (!retTypeHandle.IsNull())
     {
-        retType.Set(retTypeHandle.GetManagedClassObject());
+         GCX_COOP();
+         retType.Set(retTypeHandle.GetManagedClassObject());
     }
 
-    GCPROTECT_END();
-
     END_QCALL;
 
     return;
index 0c0df02..6309ffc 100644 (file)
@@ -50,7 +50,6 @@ public:
                                                                 Object* securityUNSAFE);
     static FCDECL6(Object*,         LoadImage,                  U1Array* PEByteArrayUNSAFE, U1Array* SymByteArrayUNSAFE, Object* securityUNSAFE, StackCrawlMark* stackMark, CLR_BOOL fForIntrospection, SecurityContextSource securityContextSource);
 
-#ifdef FEATURE_HOSTED_BINDER
     static FCDECL9(Object*,         Load,                       AssemblyNameBaseObject* assemblyNameUNSAFE, 
                                                                 StringObject* codeBaseUNSAFE, 
                                                                 Object* securityUNSAFE, 
@@ -61,17 +60,6 @@ public:
                                                                 CLR_BOOL fForIntrospection,
                                                                 CLR_BOOL fSuppressSecurityChecks);
 
-#else //!FEATURE_HOSTED_BINDER
-    static FCDECL8(Object*,         Load,                       AssemblyNameBaseObject* assemblyNameUNSAFE, 
-                                                                StringObject* codeBaseUNSAFE, 
-                                                                Object* securityUNSAFE, 
-                                                                AssemblyBaseObject* requestingAssemblyUNSAFE,
-                                                                StackCrawlMark* stackMark,
-                                                                CLR_BOOL fThrowOnFileNotFound,
-                                                                CLR_BOOL fForIntrospection,
-                                                                CLR_BOOL fSuppressSecurityChecks);
-#endif // FEATURE_HOSTED_BINDER
-
     static FCDECL1(FC_BOOL_RET, IsFrameworkAssembly, AssemblyNameBaseObject* refAssemblyNameUNSAFE);
     static FCDECL1(FC_BOOL_RET, IsNewPortableAssembly, AssemblyNameBaseObject* refAssemblyNameUNSAFE);
 
@@ -131,7 +119,7 @@ public:
                                              QCall::ObjectHandleOnStack retModule);
 
     static 
-    void QCALLTYPE GetType(QCall::AssemblyHandle pAssembly, LPCWSTR wszName, BOOL bThrowOnError, BOOL bIgnoreCase, QCall::ObjectHandleOnStack retType);
+    void QCALLTYPE GetType(QCall::AssemblyHandle pAssembly, LPCWSTR wszName, BOOL bThrowOnError, BOOL bIgnoreCase, QCall::ObjectHandleOnStack retType, QCall::ObjectHandleOnStack keepAlive);
     
     static 
     INT32 QCALLTYPE GetManifestResourceInfo(QCall::AssemblyHandle pAssembly, LPCWSTR wszName, QCall::ObjectHandleOnStack retAssembly, QCall::StringHandleOnStack retFileName, QCall::StackCrawlMarkHandle stackMark);
index b324645..b3707d7 100644 (file)
@@ -1403,7 +1403,6 @@ DomainAssembly *AssemblySpec::LoadDomainAssembly(FileLoadLevel targetLevel,
 
     DomainAssembly *pAssembly = nullptr;
 
-#ifdef FEATURE_HOSTED_BINDER
     ICLRPrivBinder * pBinder = GetHostBinder();
     
     // If no binder was explicitly set, check if parent assembly has a binder.
@@ -1430,7 +1429,7 @@ DomainAssembly *AssemblySpec::LoadDomainAssembly(FileLoadLevel targetLevel,
             pAssembly = pDomain->FindAssembly(pPrivAssembly);
         }
     }
-#endif
+
     if ((pAssembly == nullptr) && CanUseWithBindingCache())
     {
         pAssembly = pDomain->FindCachedAssembly(this);
@@ -1551,7 +1550,6 @@ HRESULT AssemblySpec::EmitToken(
         NOTHROW;
         GC_NOTRIGGER;
         INJECT_FAULT(return E_OUTOFMEMORY;);
-        PRECONDITION(HasUniqueIdentity() || AppDomain::GetCurrentDomain()->IsCompilationDomain());
     }
     CONTRACTL_END;
 
@@ -2091,10 +2089,8 @@ BOOL AssemblySpecBindingCache::StoreAssembly(AssemblySpec *pSpec, DomainAssembly
         THROWS;
         GC_TRIGGERS;
         MODE_ANY;
-#ifdef FEATURE_HOSTED_BINDER
         // Host binder based assembly spec's cannot currently be safely inserted into caches.
         PRECONDITION(pSpec->GetHostBinder() == nullptr);
-#endif // FEATURE_HOSTED_BINDER
         POSTCONDITION(UnsafeContains(this, pSpec));
         POSTCONDITION(UnsafeVerifyLookupAssembly(this, pSpec, pAssembly));
         INJECT_FAULT(COMPlusThrowOM(););
@@ -2176,10 +2172,8 @@ BOOL AssemblySpecBindingCache::StoreFile(AssemblySpec *pSpec, PEAssembly *pFile)
         THROWS;
         GC_TRIGGERS;
         MODE_ANY;
-#ifdef FEATURE_HOSTED_BINDER
         // Host binder based assembly spec's cannot currently be safely inserted into caches.
         PRECONDITION(pSpec->GetHostBinder() == nullptr);
-#endif // FEATURE_HOSTED_BINDER
         POSTCONDITION((!RETVAL) || (UnsafeContains(this, pSpec) && UnsafeVerifyLookupFile(this, pSpec, pFile)));
         INJECT_FAULT(COMPlusThrowOM(););
     }
@@ -2251,10 +2245,8 @@ BOOL AssemblySpecBindingCache::StoreException(AssemblySpec *pSpec, Exception* pE
         THROWS;
         GC_TRIGGERS;
         MODE_ANY;
-#ifdef FEATURE_HOSTED_BINDER
         // Host binder based assembly spec's cannot currently be safely inserted into caches.
         PRECONDITION(pSpec->GetHostBinder() == nullptr);
-#endif // FEATURE_HOSTED_BINDER
         DISABLED(POSTCONDITION(UnsafeContains(this, pSpec))); //<TODO>@todo: Getting violations here - StoreExceptions could happen anywhere so this is possibly too aggressive.</TODO>
         INJECT_FAULT(COMPlusThrowOM(););
     }
@@ -2341,7 +2333,7 @@ BOOL AssemblySpecBindingCache::CompareSpecs(UPTR u1, UPTR u2)
     AssemblySpec *a1 = (AssemblySpec *) (u1 << 1);
     AssemblySpec *a2 = (AssemblySpec *) u2;
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#if defined(FEATURE_APPX_BINDER)
     _ASSERTE(a1->GetAppDomain() == a2->GetAppDomain());
     if (a1->GetAppDomain()->HasLoadContextHostBinder())
         return (CLRPrivBinderUtil::CompareHostBinderSpecs(a1,a2));
@@ -2363,7 +2355,7 @@ BOOL DomainAssemblyCache::CompareBindingSpec(UPTR spec1, UPTR spec2)
     AssemblySpec* pSpec1 = (AssemblySpec*) (spec1 << 1);
     AssemblyEntry* pEntry2 = (AssemblyEntry*) spec2;
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_FUSION)
+#if defined(FEATURE_FUSION)
     AssemblySpec* pSpec2 = &pEntry2->spec;
     _ASSERTE(pSpec1->GetAppDomain() == pSpec2->GetAppDomain());
     if (pSpec1->GetAppDomain()->HasLoadContextHostBinder())
@@ -2462,11 +2454,9 @@ LPCVOID AssemblySpec::GetParentAssemblyPtr()
     LIMITED_METHOD_CONTRACT;
     if(m_pParentAssembly)
     {
-#ifdef FEATURE_HOSTED_BINDER
         if (m_pParentAssembly->GetFile()->HasHostAssembly())
             return m_pParentAssembly->GetFile()->GetHostAssembly();
         else
-#endif
             return m_pParentAssembly->GetFile()->GetFusionAssembly();
     }
     return NULL;
index 89779de..4a7130b 100644 (file)
@@ -150,9 +150,7 @@ class AssemblySpec  : public BaseAssemblySpec
 #ifdef FEATURE_FUSION
         if (pAssembly)
         {
-#ifdef FEATURE_HOSTED_BINDER
             _ASSERTE(GetHostBinder() == nullptr);
-#endif // FEATURE_HOSTED_BINDER
             m_fParentLoadContext=pAssembly->GetFile()->GetLoadContext();
         }
         else
@@ -330,14 +328,13 @@ class AssemblySpec  : public BaseAssemblySpec
     inline BOOL CanUseWithBindingCache() const
     {
         STATIC_CONTRACT_LIMITED_METHOD;
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#if defined(FEATURE_APPX_BINDER)
         return (GetHostBinder() == nullptr) && HasUniqueIdentity();
 #else
         return HasUniqueIdentity(); 
 #endif
     }
 
-#ifdef FEATURE_HOSTED_BINDER
     inline ICLRPrivBinder *GetHostBinder() const
     {
         LIMITED_METHOD_CONTRACT;
@@ -349,7 +346,6 @@ class AssemblySpec  : public BaseAssemblySpec
         LIMITED_METHOD_CONTRACT;
         m_pHostBinder = pHostBinder;
     }
-#endif
 
 };
 
index 5f582ea..0a21d95 100644 (file)
@@ -33,9 +33,7 @@ protected:
 #endif
     LPCSTR                      m_szWinRtTypeNamespace;
     LPCSTR                      m_szWinRtTypeClassName;
-#ifdef FEATURE_HOSTED_BINDER
     ICLRPrivBinder             *m_pHostBinder;
-#endif
     int                         m_ownedFlags;
     BOOL                        m_fIntrospectionOnly;
 #if defined(FEATURE_CORECLR)
index 0bce7df..53c312f 100644 (file)
@@ -260,9 +260,7 @@ inline void BaseAssemblySpec::CopyFrom(const BaseAssemblySpec *pSpec)
     
     m_context = pSpec->m_context;
 
-#ifdef FEATURE_HOSTED_BINDER
     m_pHostBinder = pSpec->m_pHostBinder;
-#endif
 
 #ifdef FEATURE_CORECLR
     if ((pSpec->m_ownedFlags & BAD_NAME_OWNED) != 0)
index 62cc8f8..6dab63e 100644 (file)
@@ -83,9 +83,9 @@
 #include "peimagelayout.inl"
 #include "ildbsymlib.h"
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#if defined(FEATURE_APPX_BINDER)
 #include "clrprivbinderappx.h"
-#endif //defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#endif // defined(FEATURE_APPX_BINDER)
 
 #if defined(PROFILING_SUPPORTED)
 #include "profilermetadataemitvalidator.h"
@@ -3022,7 +3022,6 @@ BOOL Module::GetNeutralResourcesLanguage(LPCUTF8 * cultureName, ULONG * cultureN
 }
 
 
-#ifndef FEATURE_CORECLR
 BOOL Module::HasDefaultDllImportSearchPathsAttribute()
 {
     CONTRACTL
@@ -3052,7 +3051,6 @@ BOOL Module::HasDefaultDllImportSearchPathsAttribute()
 
     return (m_dwPersistedFlags & DEFAULT_DLL_IMPORT_SEARCH_PATHS_STATUS) != 0 ;
 }
-#endif // !FEATURE_CORECLR
 
 // Returns a BOOL to indicate if we have computed whether compiler has instructed us to
 // wrap the non-CLS compliant exceptions or not.
@@ -5636,13 +5634,10 @@ Assembly * Module::GetAssemblyIfLoadedFromNativeAssemblyRefWithRefDefMismatch(md
             // This extended check is designed only to find assemblies loaded via an AssemblySpecBindingCache based binder. Verify that's what we found.
             if(pAssemblyCandidate != NULL)
             {
-#ifdef FEATURE_HOSTED_BINDER
                 if (!pAssemblyCandidate->GetManifestFile()->HasHostAssembly())
-#endif // FEATURE_HOSTED_BINDER
                 {
                     pAssembly = pAssemblyCandidate;
                 }
-#ifdef FEATURE_HOSTED_BINDER
                 else
                 {
                     DWORD binderFlags = 0;
@@ -5661,7 +5656,6 @@ Assembly * Module::GetAssemblyIfLoadedFromNativeAssemblyRefWithRefDefMismatch(md
                         _ASSERTE("Non-AssemblySpecBindingCache based assembly found with extended search" && !(IsStackWalkerThread() || IsGCThread()) && IsGenericInstantiationLookupCompareThread());
                     }
                 }
-#endif // FEATURE_HOSTED_BINDER
             }
         }
     }
@@ -5762,7 +5756,6 @@ Module::GetAssemblyIfLoaded(
                 _ASSERTE(szWinRtClassName != NULL);
                 
                 CLRPrivBinderWinRT * pWinRtBinder = pAppDomainExamine->GetWinRtBinder();
-#ifdef FEATURE_HOSTED_BINDER
                 if (pWinRtBinder == nullptr)
                 {   // We are most likely in AppX mode (calling AppX::IsAppXProcess() for verification is painful in DACCESS)
 #ifndef DACCESS_COMPILE
@@ -5799,7 +5792,6 @@ Module::GetAssemblyIfLoaded(
 #endif // defined(FEATURE_APPX_BINDER)
                     }
                 }
-#endif //FEATURE_HOSTED_BINDER
                 
                 if (pWinRtBinder != nullptr)
                 {
@@ -9954,9 +9946,7 @@ void Module::Save(DataImage *image)
     GetReliabilityContract();
     IsPreV4Assembly();
 
-#ifndef FEATURE_CORECLR
     HasDefaultDllImportSearchPathsAttribute();
-#endif
 
     // Precompute property information to avoid runtime metadata lookup
     PopulatePropertyInfoMap();
index 7f85d70..353be2d 100644 (file)
@@ -1599,9 +1599,7 @@ private:
     // IL stub cache with fabricated MethodTable parented by this module.
     ILStubCache                *m_pILStubCache;
 
-#ifndef FEATURE_CORECLR
     ULONG m_DefaultDllImportSearchPathsAttributeValue;
-#endif
 
      LPCUTF8 m_pszCultureName;
      ULONG m_CultureNameLength;
@@ -3353,7 +3351,6 @@ public:
     //-----------------------------------------------------------------------------------------
     BOOL                    IsRuntimeWrapExceptions();
 
-#ifndef FEATURE_CORECLR
     BOOL                    HasDefaultDllImportSearchPathsAttribute();
 
     BOOL IsDefaultDllImportSearchPathsAttributeCached()
@@ -3373,7 +3370,6 @@ public:
         LIMITED_METHOD_CONTRACT;
         return (m_DefaultDllImportSearchPathsAttributeValue & 0x2) != 0;
     }
-#endif // !FEATURE_CORECLR
 
     //-----------------------------------------------------------------------------------------
     // True iff metadata version string is 1.* or 2.*.
index ffdfc9d..5f8ef46 100644 (file)
@@ -8,7 +8,6 @@
 // 
 //=====================================================================================================================
 
-#ifdef FEATURE_HOSTED_BINDER
 #ifdef FEATURE_REFLECTION_ONLY_LOAD
 
 #pragma once
@@ -294,4 +293,3 @@ private:
 };  // class CLRPrivAssemblyReflectionOnlyWinRT
 
 #endif //FEATURE_REFLECTION_ONLY_LOAD
-#endif //FEATURE_HOSTED_BINDER
index 438e967..caaefff 100644 (file)
@@ -9,8 +9,6 @@
 // 
 //=============================================================================================
 
-#ifdef FEATURE_HOSTED_BINDER
-
 #pragma once
 
 #include "holder.h"
@@ -463,5 +461,3 @@ private:
     BOOL m_fShareable;
     Volatile<DWORD> m_dwImageTypes;
 };  // class CLRPrivAssemblyWinRT
-
-#endif //FEATURE_HOSTED_BINDER
index 6d0183a..a605c3d 100644 (file)
@@ -8,7 +8,6 @@
 // 
 //=====================================================================================================================
 
-#ifdef FEATURE_HOSTED_BINDER
 #ifdef FEATURE_REFLECTION_ONLY_LOAD
 
 #pragma once
@@ -57,4 +56,3 @@ public:
 };  // class CLRPrivTypeCaheReflectionOnlyWinRT
 
 #endif //FEATURE_REFLECTION_ONLY_LOAD
-#endif // FEATURE_HOSTED_BINDER
index c7fe733..8199773 100644 (file)
@@ -8,8 +8,6 @@
 // 
 //=====================================================================================================================
 
-#ifdef FEATURE_HOSTED_BINDER
-
 #pragma once
 
 #include "internalunknownimpl.h"
@@ -70,5 +68,3 @@ private:
 };  // class CLRPrivTypeCaheWinRT
 
 typedef DPTR(CLRPrivTypeCacheWinRT) PTR_CLRPrivTypeCacheWinRT;
-
-#endif // FEATURE_HOSTED_BINDER
index 2fa83f7..9e5d028 100644 (file)
@@ -987,7 +987,7 @@ PTR_VOID GetUnwindDataBlob(TADDR moduleBase, PTR_RUNTIME_FUNCTION pRuntimeFuncti
     _ASSERTE((pRuntimeFunction->UnwindData & 0x3) == 0);
 
     // compute the size of the unwind info
-    PTR_TADDR xdata = dac_cast<PTR_TADDR>(pRuntimeFunction->UnwindData + moduleBase);
+    PTR_ULONG xdata = dac_cast<PTR_ULONG>(pRuntimeFunction->UnwindData + moduleBase);
 
     ULONG epilogScopes = 0;
     ULONG unwindWords = 0;
@@ -1016,6 +1016,46 @@ PTR_VOID GetUnwindDataBlob(TADDR moduleBase, PTR_RUNTIME_FUNCTION pRuntimeFuncti
 
     *pSize = size;
     return xdata;
+
+#elif defined(_TARGET_ARM64_)
+       // if this function uses packed unwind data then at least one of the two least significant bits
+       // will be non-zero.  if this is the case then there will be no xdata record to enumerate.
+       _ASSERTE((pRuntimeFunction->UnwindData & 0x3) == 0);
+
+    // compute the size of the unwind info
+    PTR_ULONG xdata    = dac_cast<PTR_ULONG>(pRuntimeFunction->UnwindData + moduleBase);
+    ULONG epilogScopes = 0;
+    ULONG unwindWords  = 0;
+    ULONG size = 0;
+
+    //If both Epilog Count and Code Word is not zero
+    //Info of Epilog and Unwind scopes are given by 1 word header
+    //Otherwise this info is given by a 2 word header
+    if ((xdata[0] >> 27) != 0) 
+    {
+        size = 4;
+        epilogScopes = (xdata[0] >> 22) & 0x1f;
+        unwindWords = (xdata[0] >> 27) & 0x0f;
+    }
+    else 
+    {
+        size = 8;
+        epilogScopes = xdata[1] & 0xffff;
+        unwindWords = (xdata[1] >> 16) & 0xff;
+    }
+
+    if (!(xdata[0] & (1 << 21))) 
+        size += 4 * epilogScopes;
+
+    size += 4 * unwindWords;
+
+    _ASSERTE(xdata[0] & (1 << 20)); // personality routine should be always present
+    size += 4;                      // exception handler RVA
+
+    *pSize = size;
+    return xdata;
+
+
 #else
     PORTABILITY_ASSERT("GetUnwindDataBlob");
     return NULL;
@@ -1439,6 +1479,8 @@ static void LoadAndInitializeJIT(LPCWSTR pwzJitName, OUT HINSTANCE* phJit, OUT I
 
         EX_TRY
         {
+            bool fContinueToLoadJIT = false;
+#if !defined(FEATURE_CORECLR)
             typedef void (__stdcall* psxsJitStartup) (CoreClrCallbacks const &);
             psxsJitStartup sxsJitStartupFn = (psxsJitStartup) GetProcAddress(*phJit, "sxsJitStartup");
 
@@ -1450,7 +1492,16 @@ static void LoadAndInitializeJIT(LPCWSTR pwzJitName, OUT HINSTANCE* phJit, OUT I
                 (*sxsJitStartupFn) (cccallbacks);
 
                 pJitLoadData->jld_status = JIT_LOAD_STATUS_DONE_CALL_SXSJITSTARTUP;
+                fContinueToLoadJIT = true;
+            }
+#else // FEATURE_CORECLR
+            // For CoreCLR, we never use "sxsJitStartup" as that is Desktop utilcode initialization
+            // specific. Thus, assume we always got 
+            fContinueToLoadJIT = true;
+#endif // !defined(FEATURE_CORECLR)
 
+            if (fContinueToLoadJIT)
+            {
                 typedef void (__stdcall* pjitStartup)(ICorJitHost*);
                 pjitStartup jitStartupFn = (pjitStartup) GetProcAddress(*phJit, "jitStartup");
 
index 7cab6b5..bb3e479 100644 (file)
@@ -845,7 +845,7 @@ mdTypeSpec QCALLTYPE COMModule::GetTokenFromTypeSpec(QCall::ModuleHandle pModule
 // GetType
 // Given a class name, this method will look for that class
 //  with in the module. 
-void QCALLTYPE COMModule::GetType(QCall::ModuleHandle pModule, LPCWSTR wszName, BOOL bThrowOnError, BOOL bIgnoreCase, QCall::ObjectHandleOnStack retType)
+void QCALLTYPE COMModule::GetType(QCall::ModuleHandle pModule, LPCWSTR wszName, BOOL bThrowOnError, BOOL bIgnoreCase, QCall::ObjectHandleOnStack retType, QCall::ObjectHandleOnStack keepAlive)
 {
     CONTRACTL
     {
@@ -858,22 +858,13 @@ void QCALLTYPE COMModule::GetType(QCall::ModuleHandle pModule, LPCWSTR wszName,
 
     BEGIN_QCALL;
 
-    GCX_COOP();
-
     DomainAssembly *pAssembly = pModule->GetDomainAssembly();
     _ASSERTE(pAssembly);
 
-    OBJECTREF keepAlive = NULL;
-    GCPROTECT_BEGIN(keepAlive);
-
-    {
-        GCX_PREEMP();
-
-        BOOL prohibitAsmQualifiedName = TRUE;
+    BOOL prohibitAsmQualifiedName = TRUE;
 
-        // Load the class from this assembly (fail if it is in a different one).
-        retTypeHandle = TypeName::GetTypeManaged(wszName, pAssembly, bThrowOnError, bIgnoreCase, pAssembly->IsIntrospectionOnly(), prohibitAsmQualifiedName, NULL, FALSE, &keepAlive);
-    }
+    // Load the class from this assembly (fail if it is in a different one).
+    retTypeHandle = TypeName::GetTypeManaged(wszName, pAssembly, bThrowOnError, bIgnoreCase, pAssembly->IsIntrospectionOnly(), prohibitAsmQualifiedName, NULL, FALSE, (OBJECTREF*)keepAlive.m_ppObject);
 
     // Verify that it's in 'this' module
     // But, if it's in a different assembly than expected, that's okay, because
@@ -890,8 +881,7 @@ void QCALLTYPE COMModule::GetType(QCall::ModuleHandle pModule, LPCWSTR wszName,
         GCX_COOP();
         retType.Set(retTypeHandle.GetManagedClassObject());
     }
-    GCPROTECT_END();
-
     END_QCALL;
 
     return;
index 5f52043..255b22d 100644 (file)
@@ -91,7 +91,7 @@ public:
     // Given a class type, this method will look for that type
     //  with in the module.
     static
-    void QCALLTYPE GetType(QCall::ModuleHandle pModule, LPCWSTR wszName, BOOL bThrowOnError, BOOL bIgnoreCase, QCall::ObjectHandleOnStack retType);
+    void QCALLTYPE GetType(QCall::ModuleHandle pModule, LPCWSTR wszName, BOOL bThrowOnError, BOOL bIgnoreCase, QCall::ObjectHandleOnStack retType, QCall::ObjectHandleOnStack keepAlive);
 
     // Get class will return an array contain all of the classes
     //  that are defined within this Module.
index 36bba43..67d4886 100644 (file)
 #include "cgensys.h"
 #include "peimagelayout.inl"
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#if defined(FEATURE_APPX_BINDER)
 #include "appxutil.h"
 #include "clrprivbinderappx.h"
 #include "clrprivtypecachewinrt.h"
-#endif // defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#endif // defined(FEATURE_APPX_BINDER)
 
 #ifdef FEATURE_COMINTEROP
 #include "clrprivbinderwinrt.h"
@@ -163,7 +163,7 @@ HRESULT CEECompileInfo::CreateDomain(ICorCompilationDomain **ppDomain,
     if (pEmitter)
         pCompilationDomain->SetDependencyEmitter(pEmitter);
     
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#if defined(FEATURE_APPX_BINDER)
     if (AppX::IsAppXProcess())
     {
         HRESULT hr = S_OK;
@@ -173,7 +173,7 @@ HRESULT CEECompileInfo::CreateDomain(ICorCompilationDomain **ppDomain,
         IfFailThrow(pBinder->QueryInterface(IID_ICLRPrivBinder, &pBinderInterface));
         pCompilationDomain->SetLoadContextHostBinder(pBinderInterface);
     }
-#endif // defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#endif // defined(FEATURE_APPX_BINDER)
 
 #ifdef DEBUGGING_SUPPORTED 
     // Notify the debugger here, before the thread transitions into the
index 3ab4a38..a0755e6 100644 (file)
@@ -1454,10 +1454,13 @@ FCIMPL5(VOID, Buffer::BlockCopy, ArrayBase *src, int srcOffset, ArrayBase *dst,
     }
     else
     {
-        const CorElementType dstET = dst->GetArrayElementType();
-        if (!CorTypeInfo::IsPrimitiveType_NoThrow(dstET))
-            FCThrowArgumentVoid(W("dest"), W("Arg_MustBePrimArray"));
         dstLen = dst->GetNumComponents() * dst->GetComponentSize();
+        if (dst->GetMethodTable() != src->GetMethodTable())
+        {
+            const CorElementType dstET = dst->GetArrayElementType();
+            if (!CorTypeInfo::IsPrimitiveType_NoThrow(dstET))
+                FCThrowArgumentVoid(W("dest"), W("Arg_MustBePrimArray"));
+        }
     }
 
     if (srcOffset < 0 || dstOffset < 0 || count < 0) {
index 7fbd0ca..c229a0e 100644 (file)
@@ -50,7 +50,7 @@
 #include "winrttypenameconverter.h"
 #endif
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX_BINDER)
+#if defined(FEATURE_APPX_BINDER)
 #include "clrprivbinderappx.h"
 #include "clrprivtypecachewinrt.h"
 #endif
@@ -1545,7 +1545,6 @@ HRESULT CorHost2::ExecuteInAppDomain(DWORD dwAppDomainId,
     return hr;
 }
 
-#if defined(FEATURE_CORECLR) || defined(FEATURE_HOSTED_BINDER)
 #define EMPTY_STRING_TO_NULL(s) {if(s && s[0] == 0) {s=NULL;};}
 
 HRESULT CorHost2::_CreateAppDomain(
@@ -1556,7 +1555,7 @@ HRESULT CorHost2::_CreateAppDomain(
     int nProperties, 
     LPCWSTR* pPropertyNames, 
     LPCWSTR* pPropertyValues,
-#if defined(FEATURE_HOSTED_BINDER) && !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_CORECLR)
     ICLRPrivBinder* pBinder,
 #endif
     DWORD* pAppDomainID)
@@ -1632,7 +1631,7 @@ HRESULT CorHost2::_CreateAppDomain(
     if (dwFlags & APPDOMAIN_FORCE_TRIVIAL_WAIT_OPERATIONS)
         pDomain->SetForceTrivialWaitOperations();
 
-#if defined(FEATURE_HOSTED_BINDER) && !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_CORECLR)
     if (pBinder != NULL)
         pDomain->SetLoadContextHostBinder(pBinder);
 #endif
@@ -1875,8 +1874,6 @@ HRESULT CorHost2::_CreateDelegate(
     return hr;
 }
 
-#endif // defined(FEATURE_CORECLR) || defined(FEATURE_HOSTED_BINDER)
-
 #ifdef FEATURE_CORECLR
 HRESULT CorHost2::CreateAppDomainWithManager(
     LPCWSTR wszFriendlyName,
@@ -2259,7 +2256,7 @@ STARTUP_FLAGS CorHost2::GetStartupFlags()
 
 #ifndef DACCESS_COMPILE
 
-#if defined(FEATURE_HOSTED_BINDER) && !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_CORECLR)
 /*************************************************************************************
  ** ICLRPrivRuntime Methods
  *************************************************************************************/
@@ -2508,9 +2505,6 @@ VOID CorHost2::ExecuteMainInner(Assembly* pRootAssembly)
     PAL_ENDTRY
 }
 
-#endif // FEATURE_HOSTED_BINDER
-
-#ifndef FEATURE_CORECLR
 // static
 HRESULT CorHost2::SetFlagsAndHostConfig(STARTUP_FLAGS dwStartupFlags, LPCWSTR pwzHostConfigFile, BOOL fFinalize)
 {
@@ -3666,7 +3660,7 @@ HRESULT CorHost2::QueryInterface(REFIID riid, void **ppUnk)
 
         *ppUnk = static_cast<ICLRExecutionManager *>(this);
     }
-#if defined(FEATURE_HOSTED_BINDER) && !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_CORECLR)
     else if (riid == __uuidof(ICLRPrivRuntime))
     {
         ULONG version = 2;
@@ -8734,9 +8728,7 @@ HRESULT STDMETHODCALLTYPE DllGetActivationFactoryImpl(LPCWSTR wszAssemblyName,
 #ifndef FEATURE_CORECLR // coreclr uses winrt binder which does not allow redirects
     {
         BaseDomain::LockHolder lh(pDomain);
-#ifdef FEATURE_HOSTED_BINDER
         if (!pDomain->HasLoadContextHostBinder())
-#endif
         {
             // don't allow redirects
             SystemDomain::InitializeDefaultDomain(FALSE);
index 9d5d27f..574e32a 100644 (file)
@@ -6563,7 +6563,6 @@ private:
     DWORD   m_priorityOfLastError;
 };  // class LoadLibErrorTracker
 
-
 //  Local helper function for the LoadLibraryModule function below
 static HMODULE LocalLoadLibraryHelper( LPCWSTR name, DWORD flags, LoadLibErrorTracker *pErrorTracker )
 {
@@ -6572,14 +6571,14 @@ static HMODULE LocalLoadLibraryHelper( LPCWSTR name, DWORD flags, LoadLibErrorTr
     HMODULE hmod = NULL;
 
 #ifndef FEATURE_PAL
-    
+
     if ((flags & 0xFFFFFF00) != 0
 #ifndef FEATURE_CORESYSTEM
         && NDirect::SecureLoadLibrarySupported()
 #endif // !FEATURE_CORESYSTEM
         )
     {
-        hmod = CLRLoadLibraryEx( name, NULL, flags & 0xFFFFFF00);
+        hmod = CLRLoadLibraryEx(name, NULL, flags & 0xFFFFFF00);
         if(hmod != NULL)
         {
             return hmod;
@@ -6594,11 +6593,11 @@ static HMODULE LocalLoadLibraryHelper( LPCWSTR name, DWORD flags, LoadLibErrorTr
     }
 
     hmod = CLRLoadLibraryEx(name, NULL, flags & 0xFF);
-
+    
 #else // !FEATURE_PAL
     hmod = CLRLoadLibrary(name);
 #endif // !FEATURE_PAL
-
+        
     if (hmod == NULL)
     {
         pErrorTracker->TrackErrorCode(GetLastError());
@@ -7047,7 +7046,6 @@ HINSTANCE NDirect::LoadLibraryModule(NDirectMethodDesc * pMD, LoadLibErrorTracke
     bool libNameIsRelativePath = Path::IsRelative(wszLibName);
     if (hmod == NULL)
     {
-#ifndef FEATURE_CORECLR
         // First checks if the method has DefaultDllImportSearchPathsAttribute. If method has the attribute
         // then dllImportSearchPathFlag is set to its value.
         // Otherwise checks if the assembly has the attribute. 
@@ -7072,11 +7070,12 @@ HINSTANCE NDirect::LoadLibraryModule(NDirectMethodDesc * pMD, LoadLibErrorTracke
             }
         }
 
+#ifndef FEATURE_CORECLR
         if (!attributeIsFound)
         {
             CheckUnificationList(pMD, &dllImportSearchPathFlag, &searchAssemblyDirectory);
         }
-#endif // !FEATURE_CORECLR
+#endif
 
         if (!libNameIsRelativePath)
         {
index 9ccf46e..2353712 100644 (file)
@@ -1901,13 +1901,11 @@ DomainAssembly::~DomainAssembly()
     }
     CONTRACTL_END;
 
-    #ifdef FEATURE_HOSTED_BINDER
     if (m_fHostAssemblyPublished)
     {
         // Remove association first.
         GetAppDomain()->UnPublishHostedAssembly(this);
     }
-    #endif
 
     ModuleIterator i = IterateModules(kModIterIncludeLoading);
     while (i.Next())
@@ -2273,11 +2271,9 @@ void DomainAssembly::Begin()
         AppDomain::LoadLockHolder lock(m_pDomain);
         m_pDomain->AddAssembly(this);
     }
-#ifdef FEATURE_HOSTED_BINDER
     // Make it possible to find this DomainAssembly object from associated ICLRPrivAssembly.
     GetAppDomain()->PublishHostedAssembly(this);
     m_fHostAssemblyPublished = true;
-#endif
 }
 
 #ifdef FEATURE_PREJIT
@@ -2331,11 +2327,8 @@ void DomainAssembly::FindNativeImage()
 #ifdef FEATURE_FUSION
     DomainAssembly * pDomainAssembly = GetDomainAssembly();
     if (pDomainAssembly->GetSecurityDescriptor()->HasAdditionalEvidence() ||
-        !(pDomainAssembly->GetFile()->IsContextLoad()
-#ifdef FEATURE_HOSTED_BINDER
-        || pDomainAssembly->GetFile()->HasHostAssembly()
-#endif
-        ))
+        !(pDomainAssembly->GetFile()->IsContextLoad() ||
+        pDomainAssembly->GetFile()->HasHostAssembly()))
     {
         m_pFile->SetCannotUseNativeImage();
     }
@@ -2895,13 +2888,11 @@ Retry:
     fInsertIntoAssemblySpecBindingCache = GetFile()->GetLoadContext() == LOADCTX_TYPE_DEFAULT;
 #endif
     
-#if defined(FEATURE_HOSTED_BINDER)
 #if defined(FEATURE_APPX_BINDER)
     fInsertIntoAssemblySpecBindingCache = fInsertIntoAssemblySpecBindingCache && !GetFile()->HasHostAssembly();
 #else
     fInsertIntoAssemblySpecBindingCache = fInsertIntoAssemblySpecBindingCache && GetFile()->CanUseWithBindingCache();
 #endif
-#endif
 
     if (fInsertIntoAssemblySpecBindingCache)
     {
index d746d9f..18ff564 100644 (file)
@@ -105,11 +105,7 @@ inline void DomainAssembly::UpdatePEFile(PTR_PEFile pFile)
     }
     CONTRACTL_END;
 
-#ifdef FEATURE_HOSTED_BINDER
     GetAppDomain()->UpdatePublishHostedAssembly(this, pFile);
-#else
-    this->UpdatePEFileWorker(pFile);
-#endif
 }
 
 #ifdef FEATURE_MULTIMODULE_ASSEMBLIES
index 8520cf9..4307019 100644 (file)
@@ -220,8 +220,8 @@ FCFuncStart(gStringFuncs)
     FCFuncElementSig(COR_CTOR_METHOD_NAME, &gsig_IM_PtrSByt_Int_Int_RetVoid, COMString::StringInitCharPtrPartial)
 #ifndef FEATURE_CORECLR
     FCFuncElementSig(COR_CTOR_METHOD_NAME, &gsig_IM_PtrSByt_Int_Int_Encoding_RetVoid, COMString::StringInitSBytPtrPartialEx)
-    FCFuncElement("IsFastSort", COMString::IsFastSort)
 #endif // FEATURE_CORECLR
+    FCFuncElement("IsFastSort", COMString::IsFastSort)
     FCFuncElement("nativeCompareOrdinalIgnoreCaseWC", COMString::FCCompareOrdinalIgnoreCaseWC)
     FCIntrinsic("get_Length", COMString::Length, CORINFO_INTRINSIC_StringLength)
     FCIntrinsic("get_Chars", COMString::GetCharAt, CORINFO_INTRINSIC_StringGetChar)
@@ -232,7 +232,6 @@ FCFuncStart(gStringFuncs)
     FCFuncElement("LastIndexOf", COMString::LastIndexOfChar)
     FCFuncElement("LastIndexOfAny", COMString::LastIndexOfCharArray)
     FCFuncElementSig("ReplaceInternal", &gsig_IM_Str_Str_RetStr, COMString::ReplaceString)
-    FCFuncElement("PadHelper", COMString::PadHelper)
 #ifdef FEATURE_COMINTEROP
     FCFuncElement("SetTrailByte", COMString::FCSetTrailByte)
     FCFuncElement("TryGetTrailByte", COMString::FCTryGetTrailByte)
index 3353e66..2708829 100644 (file)
@@ -5013,7 +5013,6 @@ VOID ETW::InfoLog::RuntimeInformation(INT32 type)
 
 VOID ETW::CodeSymbolLog::EmitCodeSymbols(Module* pModule)
 {
-#if  !defined(FEATURE_PAL) //UNIXTODO: Enable EmitCodeSymbols
     CONTRACTL {
         NOTHROW;
         GC_NOTRIGGER;
@@ -5043,14 +5042,15 @@ VOID ETW::CodeSymbolLog::EmitCodeSymbols(Module* pModule)
                     // estmate. 
                     static const DWORD maxDataSize = 63000;
 
-                    ldiv_t qr = ldiv(length, maxDataSize);
-
+                    DWORD quot = length / maxDataSize;
+                    
                     // We do not allow pdbs of size greater than 2GB for now, 
                     // so totalChunks should fit in 16 bits.
-                    if (qr.quot < UINT16_MAX)
+                    if (quot < UINT16_MAX)
                     {
                         // If there are trailing bits in the last chunk, then increment totalChunks by 1
-                        UINT16 totalChunks = (UINT16)(qr.quot + ((qr.rem != 0) ? 1 : 0));
+                        DWORD rem = length % maxDataSize;
+                        UINT16 totalChunks = (UINT16)(quot + ((rem != 0) ? 1 : 0));
                         NewArrayHolder<BYTE> chunk(new BYTE[maxDataSize]);
                         DWORD offset = 0;
                         for (UINT16 chunkNum = 0; offset < length; chunkNum++)
@@ -5071,7 +5071,6 @@ VOID ETW::CodeSymbolLog::EmitCodeSymbols(Module* pModule)
             }
         }
     } EX_CATCH{} EX_END_CATCH(SwallowAllExceptions);
-#endif//  !defined(FEATURE_PAL)
 }
 
 /* Returns the length of an in-memory symbol stream
index 200e052..672f315 100644 (file)
@@ -8678,10 +8678,6 @@ void UnwindAndContinueRethrowHelperInsideCatch(Frame* pEntryFrame, Exception* pE
     // policy here. Do we want to let such funcitons throw, etc.? Right now, we believe that there are no such
     // frames on the stack to be unwound, so the SetFrame is alright (see the first comment above.) At the very
     // least, we should add some way to assert that.
-    //
-    // ~FrameWithCookieHolder is also calling SetFrame() and if UnwindAndContinueRethrowHelperInsideCatch is ever changed
-    // to not call SetFrame then the change should be reflected in the FrameWithCookieHolder as well.
-    //
     pThread->SetFrame(pEntryFrame);
 
 #ifdef _DEBUG
index 37ad39e..23cbe18 100644 (file)
@@ -770,6 +770,10 @@ do                                                      \
                         case NATIVE_TYPE_LPWSTR:
                             INITFIELDMARSHALER(NFT_STRINGUNI, FieldMarshaler_StringUni, ());
                             break;
+                        
+                        case NATIVE_TYPE_LPUTF8STR:
+                                                       INITFIELDMARSHALER(NFT_STRINGUTF8, FieldMarshaler_StringUtf8, ());
+                                                       break;
 
                         case NATIVE_TYPE_LPTSTR:
                             // We no longer support Win9x so LPTSTR always maps to a Unicode string.
@@ -3158,7 +3162,113 @@ VOID FieldMarshaler_StringAnsi::DestroyNativeImpl(LPVOID pNativeValue) const
         CoTaskMemFree(sz);
 }
 
+//=======================================================================
+// CoTask Utf8 <--> System.String
+// See FieldMarshaler for details.
+//=======================================================================
+VOID FieldMarshaler_StringUtf8::UpdateNativeImpl(OBJECTREF* pCLRValue, LPVOID pNativeValue, OBJECTREF *ppCleanupWorkListOnStack) const
+{
+    CONTRACTL
+    {
+        THROWS;
+        GC_TRIGGERS;
+        MODE_COOPERATIVE;
+        INJECT_FAULT(COMPlusThrowOM());
+        PRECONDITION(CheckPointer(pNativeValue));
+    }
+    CONTRACTL_END;
+
+    STRINGREF pString = (STRINGREF)(*pCLRValue);
+    if (pString == NULL)
+    {
+        MAYBE_UNALIGNED_WRITE(pNativeValue, _PTR, NULL);
+    }
+    else
+    {
+        DWORD nc = pString->GetStringLength();
+        if (nc > MAX_SIZE_FOR_INTEROP)
+            COMPlusThrow(kMarshalDirectiveException, IDS_EE_STRING_TOOLONG);
+
+        // Characters would be # of characters + 1 in case left over high surrogate is ?
+        // Max 3 bytes per char for basic multi-lingual plane.
+        nc = (nc + 1) * MAX_UTF8_CHAR_SIZE;
+        // +1 for '\0'
+        LPUTF8  lpBuffer = (LPUTF8)CoTaskMemAlloc(nc + 1);
+        if (!lpBuffer)
+        {
+            COMPlusThrowOM();
+        }
+
+        // UTF8Marshaler.ConvertToNative
+        MethodDescCallSite convertToNative(METHOD__CUTF8MARSHALER__CONVERT_TO_NATIVE);
+        
+        ARG_SLOT args[] =
+        {
+            ((ARG_SLOT)(CLR_I4)0),
+            ObjToArgSlot(*pCLRValue),
+            PtrToArgSlot(lpBuffer)
+        };
+        convertToNative.Call(args);
+        MAYBE_UNALIGNED_WRITE(pNativeValue, _PTR, lpBuffer);
+    }
+}
+
 
+//=======================================================================
+// CoTask Utf8 <--> System.String
+// See FieldMarshaler for details.
+//=======================================================================
+VOID FieldMarshaler_StringUtf8::UpdateCLRImpl(const VOID *pNativeValue, OBJECTREF *ppProtectedCLRValue, OBJECTREF *ppProtectedOldCLRValue) const
+{
+    CONTRACTL
+    {
+        THROWS;
+        GC_TRIGGERS;
+        MODE_COOPERATIVE;
+        INJECT_FAULT(COMPlusThrowOM());
+        PRECONDITION(CheckPointer(pNativeValue));
+        PRECONDITION(CheckPointer(ppProtectedCLRValue));
+    }
+    CONTRACTL_END;
+
+    STRINGREF pString = NULL;
+    LPCUTF8  sz = (LPCUTF8)MAYBE_UNALIGNED_READ(pNativeValue, _PTR);
+    if (!sz)
+    {
+        pString = NULL;
+    }
+    else
+    {
+        MethodDescCallSite convertToManaged(METHOD__CUTF8MARSHALER__CONVERT_TO_MANAGED);
+        ARG_SLOT args[] =
+        {
+            PtrToArgSlot(pNativeValue),
+        };
+        pString = convertToManaged.Call_RetSTRINGREF(args);
+    }
+    *((STRINGREF*)ppProtectedCLRValue) = pString;
+}
+
+//=======================================================================
+// CoTask Utf8 <--> System.String
+// See FieldMarshaler for details.
+//=======================================================================
+VOID FieldMarshaler_StringUtf8::DestroyNativeImpl(LPVOID pNativeValue) const
+{
+    CONTRACTL
+    {
+        NOTHROW;
+        GC_NOTRIGGER;
+        MODE_ANY;
+        PRECONDITION(CheckPointer(pNativeValue));
+    }
+    CONTRACTL_END;
+
+    LPCUTF8 lpBuffer = (LPCUTF8)MAYBE_UNALIGNED_READ(pNativeValue, _PTR);
+    MAYBE_UNALIGNED_WRITE(pNativeValue, _PTR, NULL);
+    if (lpBuffer)
+        CoTaskMemFree((LPVOID)lpBuffer);
+}
 
 //=======================================================================
 // FixedString <--> System.String
@@ -4607,6 +4717,7 @@ VOID NStructFieldTypeToString(FieldMarshaler* pFM, SString& strNStructFieldType)
         switch (GetNStructFieldType()) { \
         case NFT_STRINGUNI: rettype ((FieldMarshaler_StringUni*)this)->name##Impl args; break; \
         case NFT_STRINGANSI: rettype ((FieldMarshaler_StringAnsi*)this)->name##Impl args; break; \
+        case NFT_STRINGUTF8: rettype ((FieldMarshaler_StringUtf8*)this)->name##Impl args; break; \
         case NFT_FIXEDSTRINGUNI: rettype ((FieldMarshaler_FixedStringUni*)this)->name##Impl args; break; \
         case NFT_FIXEDSTRINGANSI: rettype ((FieldMarshaler_FixedStringAnsi*)this)->name##Impl args; break; \
         case NFT_FIXEDCHARARRAYANSI: rettype ((FieldMarshaler_FixedCharArrayAnsi*)this)->name##Impl args; break; \
@@ -4649,6 +4760,7 @@ VOID NStructFieldTypeToString(FieldMarshaler* pFM, SString& strNStructFieldType)
         switch (GetNStructFieldType()) { \
         case NFT_STRINGUNI: rettype ((FieldMarshaler_StringUni*)this)->name##Impl args; break; \
         case NFT_STRINGANSI: rettype ((FieldMarshaler_StringAnsi*)this)->name##Impl args; break; \
+        case NFT_STRINGUTF8: rettype ((FieldMarshaler_StringUtf8*)this)->name##Impl args; break; \
         case NFT_FIXEDSTRINGUNI: rettype ((FieldMarshaler_FixedStringUni*)this)->name##Impl args; break; \
         case NFT_FIXEDSTRINGANSI: rettype ((FieldMarshaler_FixedStringAnsi*)this)->name##Impl args; break; \
         case NFT_FIXEDCHARARRAYANSI: rettype ((FieldMarshaler_FixedCharArrayAnsi*)this)->name##Impl args; break; \
index 3c06528..9ec7e87 100644 (file)
@@ -757,6 +757,19 @@ public:
     ELEMENT_SIZE_IMPL(sizeof(LPWSTR), sizeof(LPWSTR))
 };
 
+//=======================================================================
+// LPUTF8STR <--> System.String
+//=======================================================================
+class FieldMarshaler_StringUtf8 : public FieldMarshaler
+{
+public:
+
+       VOID UpdateNativeImpl(OBJECTREF* pCLRValue, LPVOID pNativeValue, OBJECTREF *ppCleanupWorkListOnStack) const;
+       VOID UpdateCLRImpl(const VOID *pNativeValue, OBJECTREF *ppProtectedCLRValue, OBJECTREF *ppProtectedOldCLRValue) const;
+       VOID DestroyNativeImpl(LPVOID pNativeValue) const;
+
+       ELEMENT_SIZE_IMPL(sizeof(LPSTR), sizeof(LPSTR))
+};
 
 //=======================================================================
 // LPSTR <--> System.String
index 41e35bf..7b55c36 100644 (file)
@@ -3679,70 +3679,6 @@ public:
     DEFINE_VTABLE_GETTER_AND_CTOR_AND_DTOR(SecurityContextFrame)
 };
 
-
-// This holder is defined for addressing a very specific issue:
-// Frames that use GCPROTECT_BEGIN/GCPROTECT_END can end up referencing corrupted object refs
-// when an exception is thrown until the point where the Frame is actually popped from the thread's Frame-chain.
-// Stack space allocated for OBJECTREFs in a try block may be reused in the catch block by other structures, 
-// corrupting our protected OBJECTREFs and the Frame containing them. While the Frame is still on the callstack
-// a GC may occur, detecting the corrupt OBJECTREF and taking down the process. The FrameWithCookieHolder 
-// forces the Frame to be popped out when exiting the current scope, therefore before the OBJECTREF is corrupted.
-//
-// This holder explicitly calls Thread::SetFrame, therefore potentially removing Frames from the thread's frame 
-// chain without properly calling their corresponding ExceptionUnwind() method. This is extremely dangerous to 
-// use unless it is backed by a call to UnwindAndContinueRethrowHelperInsideCatch() which does the same thing
-// (and has been vetted to be correct in doing so). Using this holder in any other circumstances may lead to bugs that 
-// are extremely difficult to track down.
-template <typename TYPE>
-class FrameWithCookieHolder 
-{
-    protected:
-               FrameWithCookie<TYPE>   m_frame;
-
-       public:
-               FORCEINLINE FrameWithCookieHolder()
-                       : m_frame()
-               {
-               }
-
-               //      GCFrame 
-               FORCEINLINE     FrameWithCookieHolder(OBJECTREF *pObjRefs, UINT numObjRefs, BOOL maybeInterior)
-                       : m_frame(pObjRefs, numObjRefs, maybeInterior)
-               {
-               }
-
-               FORCEINLINE ~FrameWithCookieHolder()
-               {
-#ifndef DACCESS_COMPILE
-
-                       Thread* pThread = GetThread();
-                       if (pThread)
-                       {
-                           GCX_COOP();
-                           pThread->SetFrame(&m_frame);
-                           m_frame.Pop();
-                       }
-
-#endif // #ifndef DACCESS_COMPILE
-               }
-
-};
-
-#ifndef DACCESS_COMPILE
-// Restrictions from FrameWithCookieHolder are also applying for GCPROTECT_HOLDER. 
-// Please read the FrameWithCookieHolder comments before using GCPROTECT_HOLDER.  
-#define        GCPROTECT_HOLDER(ObjRefStruct)                                                                  \
-                FrameWithCookieHolder<GCFrame> __gcframe((OBJECTREF*)&(ObjRefStruct),  \
-                        sizeof(ObjRefStruct)/sizeof(OBJECTREF),         \
-                        FALSE);                                          
-
-#else // #ifndef DACCESS_COMPILE
-
-#define        GCPROTECT_HOLDER(ObjRefStruct)
-
-#endif // #ifndef DACCESS_COMPILE
-
-
 //------------------------------------------------------------------------
 // These macros GC-protect OBJECTREF pointers on the EE's behalf.
 // In between these macros, the GC can move but not discard the protected
index 5580ae0..de87e05 100644 (file)
@@ -340,15 +340,29 @@ uint32_t GCToOSInterface::GetCurrentProcessCpuCount()
     return ::GetCurrentProcessCpuCount();
 }
 
+// Return the size of the user-mode portion of the virtual address space of this process.
+// Return:
+//  non zero if it has succeeded, 0 if it has failed
+size_t GCToOSInterface::GetVirtualMemoryLimit()
+{
+    MEMORYSTATUSEX memStatus;
+    ::GetProcessMemoryLoad(&memStatus);
+
+    return (size_t)memStatus.ullTotalVirtual;
+}
+
+
 #ifndef FEATURE_PAL
+
 typedef BOOL (WINAPI *PGET_PROCESS_MEMORY_INFO)(HANDLE handle, PROCESS_MEMORY_COUNTERS* memCounters, uint32_t cb);
 static PGET_PROCESS_MEMORY_INFO GCGetProcessMemoryInfo = 0;
 
+static size_t g_RestrictedPhysicalMemoryLimit = (size_t)MAX_PTR;
+
 typedef BOOL (WINAPI *PIS_PROCESS_IN_JOB)(HANDLE processHandle, HANDLE jobHandle, BOOL* result);
 typedef BOOL (WINAPI *PQUERY_INFORMATION_JOB_OBJECT)(HANDLE jobHandle, JOBOBJECTINFOCLASS jobObjectInfoClass, void* lpJobObjectInfo, DWORD cbJobObjectInfoLength, LPDWORD lpReturnLength);
-#endif 
 
-#if defined(FEATURE_CORECLR) && !defined(FEATURE_PAL)
+#ifdef FEATURE_CORECLR
 // For coresys we need to look for an API in some apiset dll on win8 if we can't find it  
 // in the traditional dll.
 HINSTANCE LoadDllForAPI(WCHAR* dllTraditional, WCHAR* dllApiSet)
@@ -365,20 +379,14 @@ HINSTANCE LoadDllForAPI(WCHAR* dllTraditional, WCHAR* dllApiSet)
 }
 #endif
 
-// If the process's memory is restricted (ie, beyond what's available on the machine), return that limit.
-// Return:
-//  0 if it has failed for some reason, the real value if it has succeeded
-// Remarks:
-//  If a process runs with a restricted memory limit, and we are successful at getting 
-//  that limit, it returns the limit. If there's no limit specified, or there's an error 
-//  at getting that limit, it returns 0.
-uint64_t GCToOSInterface::GetRestrictedPhysicalMemoryLimit()
+static size_t GetRestrictedPhysicalMemoryLimit()
 {
     LIMITED_METHOD_CONTRACT;
 
-#ifdef FEATURE_PAL
-    return 0;
-#else
+    // The limit was cached already
+    if (g_RestrictedPhysicalMemoryLimit != (size_t)MAX_PTR)
+        return g_RestrictedPhysicalMemoryLimit;
+
     size_t job_physical_memory_limit = (size_t)MAX_PTR;
     BOOL in_job_p = FALSE;
 #ifdef FEATURE_CORECLR
@@ -470,6 +478,12 @@ uint64_t GCToOSInterface::GetRestrictedPhysicalMemoryLimit()
 
             job_physical_memory_limit = min (job_memory_limit, job_process_memory_limit);
             job_physical_memory_limit = min (job_physical_memory_limit, job_workingset_limit);
+
+            MEMORYSTATUSEX ms;
+            ::GetProcessMemoryLoad(&ms);
+
+            // A sanity check in case someone set a larger limit than there is actual physical memory.
+            job_physical_memory_limit = (size_t) min (job_physical_memory_limit, ms.ullTotalPhys);
         }
     }
 
@@ -492,46 +506,70 @@ exit:
 #endif
     }
 
-    return job_physical_memory_limit;
-#endif
+    VolatileStore(&g_RestrictedPhysicalMemoryLimit, job_physical_memory_limit);
+    return g_RestrictedPhysicalMemoryLimit;
 }
 
-// Get the current physical memory this process is using.
+#endif // FEATURE_PAL
+
+
+// Get the physical memory that this process can use.
 // Return:
-//  0 if it has failed, the real value if it has succeeded
-size_t GCToOSInterface::GetCurrentPhysicalMemory()
+//  non zero if it has succeeded, 0 if it has failed
+uint64_t GCToOSInterface::GetPhysicalMemoryLimit()
 {
     LIMITED_METHOD_CONTRACT;
 
 #ifndef FEATURE_PAL
-    PROCESS_MEMORY_COUNTERS pmc;
-    if (GCGetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc)))
-        return pmc.WorkingSetSize;
-#endif 
+    size_t restricted_limit = GetRestrictedPhysicalMemoryLimit();
+    if (restricted_limit != 0)
+        return restricted_limit;
+#endif
 
-    return 0;
+    MEMORYSTATUSEX memStatus;
+    ::GetProcessMemoryLoad(&memStatus);
+
+    return memStatus.ullTotalPhys;
 }
 
 // Get global memory status
 // Parameters:
 //  ms - pointer to the structure that will be filled in with the memory status
-void GCToOSInterface::GetMemoryStatus(GCMemoryStatus* ms)
+void GCToOSInterface::GetMemoryStatus(uint32_t* memory_load, uint64_t* available_physical, uint64_t* available_page_file)
 {
     LIMITED_METHOD_CONTRACT;
 
-    MEMORYSTATUSEX msEx;
-    msEx.dwLength = sizeof(MEMORYSTATUSEX);
+#ifndef FEATURE_PAL
+    uint64_t restricted_limit = GetRestrictedPhysicalMemoryLimit();
+    if (restricted_limit != 0)
+    {
+        PROCESS_MEMORY_COUNTERS pmc;
+        if (GCGetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc)))
+        {
+            if (memory_load)
+                *memory_load = (uint32_t)((float)pmc.WorkingSetSize * 100.0 / (float)restricted_limit);
+            if (available_physical)
+                *available_physical = restricted_limit - pmc.WorkingSetSize;
+            // Available page file doesn't mean much when physical memory is restricted since
+            // we don't know how much of it is available to this process so we are not going to 
+            // bother to make another OS call for it.
+            if (available_page_file)
+                *available_page_file = 0;
+
+            return;
+        }
+    }
+#endif
 
-    ::GetProcessMemoryLoad(&msEx);
+    MEMORYSTATUSEX ms;
+    ::GetProcessMemoryLoad(&ms);
 
-    // Convert Windows struct to abstract struct
-    ms->dwMemoryLoad = msEx.dwMemoryLoad;
-    ms->ullTotalPhys = msEx.ullTotalPhys;
-    ms->ullAvailPhys = msEx.ullAvailPhys;
-    ms->ullTotalPageFile = msEx.ullTotalPageFile;
-    ms->ullAvailPageFile = msEx.ullAvailPageFile;
-    ms->ullTotalVirtual = msEx.ullTotalVirtual;
-    ms->ullAvailVirtual = msEx.ullAvailVirtual;
+    if (memory_load != NULL)
+        *memory_load = ms.dwMemoryLoad;
+    if (available_physical != NULL)
+        *available_physical = ms.ullAvailPhys;
+    if (available_page_file != NULL)
+        *available_page_file = ms.ullAvailPageFile;
 }
 
 // Get a high precision performance counter
@@ -688,4 +726,3 @@ void CLRCriticalSection::Leave()
     WRAPPER_NO_CONTRACT;
     UnsafeLeaveCriticalSection(&m_cs);
 }
-
index 9b77b0e..bf81847 100644 (file)
@@ -350,28 +350,13 @@ OBJECTREF AllocateArrayEx(TypeHandle arrayType, INT32 *pArgs, DWORD dwNumArgs, B
                 lowerBound = pArgs[i];
                 i++;
             }
-
             int length = pArgs[i];
             if (length < 0)
                 COMPlusThrow(kOverflowException);
-
             if ((SIZE_T)length > MaxArrayLength(componentSize))
-            {
-                // This will cause us to throw below if we don't throw anything else before then.
                 maxArrayDimensionLengthOverflow = true;
-            }
-
-            if (length > 0)
-            {
-                int highestAllowableLowerBound = INT32_MAX - (length - 1);
-                if (lowerBound > highestAllowableLowerBound)
-                {
-                    // We throw because the lower bound is large enough that the sum of the 
-                    // dimension's length and the lower bound would exceed INT32_MAX.
-                    COMPlusThrow(kArgumentOutOfRangeException, W("ArgumentOutOfRange_ArrayLBAndLength"));
-                }
-            }
-
+            if ((length > 0) && (lowerBound + (length - 1) < lowerBound))
+                COMPlusThrow(kArgumentOutOfRangeException, W("ArgumentOutOfRange_ArrayLBAndLength"));
             safeTotalElements = safeTotalElements * S_UINT32(length);
             if (safeTotalElements.IsOverflow())
                 ThrowOutOfMemoryDimensionsExceeded();
index 7e5c28c..343b6ed 100644 (file)
@@ -1995,9 +1995,16 @@ PCODE DynamicHelpers::CreateHelper(LoaderAllocator * pAllocator, TADDR arg, PCOD
     END_DYNAMIC_HELPER_EMIT();
 }
 
-PCODE DynamicHelpers::CreateHelperWithArg(LoaderAllocator * pAllocator, TADDR arg, PCODE target)
+void DynamicHelpers::EmitHelperWithArg(BYTE*& p, LoaderAllocator * pAllocator, TADDR arg, PCODE target)
 {
-    BEGIN_DYNAMIC_HELPER_EMIT(10);
+    CONTRACTL
+    {
+        GC_NOTRIGGER;
+        PRECONDITION(p != NULL && target != NULL);
+    }
+    CONTRACTL_END;
+
+    // Move an an argument into the second argument register and jump to a target function.
 
     *p++ = 0xBA; // mov edx, XXXXXX
     *(INT32 *)p = (INT32)arg;
@@ -2006,6 +2013,13 @@ PCODE DynamicHelpers::CreateHelperWithArg(LoaderAllocator * pAllocator, TADDR ar
     *p++ = X86_INSTR_JMP_REL32; // jmp rel32
     *(INT32 *)p = rel32UsingJumpStub((INT32 *)p, target);
     p += 4;
+}
+
+PCODE DynamicHelpers::CreateHelperWithArg(LoaderAllocator * pAllocator, TADDR arg, PCODE target)
+{
+    BEGIN_DYNAMIC_HELPER_EMIT(10);
+
+    EmitHelperWithArg(p, pAllocator, arg, target);
 
     END_DYNAMIC_HELPER_EMIT();
 }
@@ -2139,6 +2153,14 @@ PCODE DynamicHelpers::CreateHelperWithTwoArgs(LoaderAllocator * pAllocator, TADD
     END_DYNAMIC_HELPER_EMIT();
 }
 
+PCODE DynamicHelpers::CreateDictionaryLookupHelper(LoaderAllocator * pAllocator, CORINFO_RUNTIME_LOOKUP * pLookup)
+{
+    STANDARD_VM_CONTRACT;
+
+    // TODO (NYI)
+    ThrowHR(E_NOTIMPL);
+}
+
 #endif // FEATURE_READYTORUN
 
 
index 8062cfd..ebd8250 100644 (file)
@@ -507,6 +507,155 @@ void ILOptimizedAllocMarshaler::EmitClearNative(ILCodeStream* pslILEmit)
     }
 }
 
+LocalDesc ILUTF8BufferMarshaler::GetManagedType()
+{
+    STANDARD_VM_CONTRACT;
+    return LocalDesc(MscorlibBinder::GetClass(CLASS__STRING_BUILDER));
+}
+
+void ILUTF8BufferMarshaler::EmitConvertSpaceCLRToNative(ILCodeStream* pslILEmit)
+{
+    STANDARD_VM_CONTRACT;
+
+    ILCodeLabel* pNullRefLabel = pslILEmit->NewCodeLabel();
+
+    pslILEmit->EmitLoadNullPtr();
+    EmitStoreNativeValue(pslILEmit);
+
+    EmitLoadManagedValue(pslILEmit);
+    pslILEmit->EmitBRFALSE(pNullRefLabel);
+
+    EmitLoadManagedValue(pslILEmit);
+    // int System.Text.StringBuilder.get_Capacity()
+    pslILEmit->EmitCALL(METHOD__STRING_BUILDER__GET_CAPACITY, 1, 1);
+    pslILEmit->EmitDUP();
+
+    // static void StubHelpers.CheckStringLength(int length)
+    pslILEmit->EmitCALL(METHOD__STUBHELPERS__CHECK_STRING_LENGTH, 1, 0);
+
+    // Max number of bytes for UTF8 string in BMP plane is ( StringBuilder.Capacity + 1 ) * 3 + 1
+    // first +1 if the high surrogate is '?' and second +1 for null byte.
+
+    // stack: capacity_in_bytes
+    pslILEmit->EmitLDC(1);
+    pslILEmit->EmitADD();
+
+    // stack: capacity
+    pslILEmit->EmitLDC(3);
+    pslILEmit->EmitMUL();
+
+    // stack: offset_of_null
+    DWORD dwTmpOffsetOfSecretNull = pslILEmit->NewLocal(ELEMENT_TYPE_I4);
+    pslILEmit->EmitDUP();
+    pslILEmit->EmitSTLOC(dwTmpOffsetOfSecretNull); // make sure the stack is empty for localloc
+
+    // make space for '\0'
+    pslILEmit->EmitLDC(1);
+    pslILEmit->EmitADD();
+
+    // stack: alloc_size_in_bytes
+    ILCodeLabel *pAllocRejoin = pslILEmit->NewCodeLabel();
+    if (IsCLRToNative(m_dwMarshalFlags) && !IsByref(m_dwMarshalFlags))
+    {
+        ILCodeLabel *pNoOptimize = pslILEmit->NewCodeLabel();
+        m_dwLocalBuffer = pslILEmit->NewLocal(ELEMENT_TYPE_I);
+
+        // LocalBuffer = 0
+        pslILEmit->EmitLoadNullPtr();
+        pslILEmit->EmitSTLOC(m_dwLocalBuffer);
+
+        // if (alloc_size_in_bytes > MAX_LOCAL_BUFFER_LENGTH) goto NoOptimize
+        pslILEmit->EmitDUP();
+        pslILEmit->EmitLDC(MAX_LOCAL_BUFFER_LENGTH);
+        pslILEmit->EmitCGT_UN();
+        pslILEmit->EmitBRTRUE(pNoOptimize);
+
+        pslILEmit->EmitLOCALLOC();
+        pslILEmit->EmitDUP();
+        pslILEmit->EmitSTLOC(m_dwLocalBuffer);
+        pslILEmit->EmitBR(pAllocRejoin);
+
+        pslILEmit->EmitLabel(pNoOptimize);
+    }
+
+    // static IntPtr AllocCoTaskMem(int cb)
+    pslILEmit->EmitCALL(METHOD__MARSHAL__ALLOC_CO_TASK_MEM, 1, 1);
+
+    pslILEmit->EmitLabel(pAllocRejoin);
+
+    // stack: native_addr
+
+    pslILEmit->EmitDUP();
+    EmitStoreNativeValue(pslILEmit);
+
+    pslILEmit->EmitLDLOC(dwTmpOffsetOfSecretNull);
+
+    // stack: native_addr offset_of_null
+    pslILEmit->EmitADD();
+
+    // stack: addr_of_null0    
+    pslILEmit->EmitLDC(0);
+    pslILEmit->EmitSTIND_I1();
+
+    pslILEmit->EmitLabel(pNullRefLabel);
+}
+
+void ILUTF8BufferMarshaler::EmitConvertContentsCLRToNative(ILCodeStream* pslILEmit)
+{
+    STANDARD_VM_CONTRACT;
+    DWORD dwUtf8MarshalFlags =
+        (m_pargs->m_pMarshalInfo->GetBestFitMapping() & 0xFF) |
+        (m_pargs->m_pMarshalInfo->GetThrowOnUnmappableChar() << 8);
+
+    // setup to call UTF8BufferMarshaler.ConvertToNative
+    EmitLoadManagedValue(pslILEmit);
+    EmitLoadNativeValue(pslILEmit);
+    pslILEmit->EmitLDC(dwUtf8MarshalFlags);
+
+    //ConvertToNative(StringBuilder sb,IntPtr pNativeBuffer, int flags)        
+    pslILEmit->EmitCALL(METHOD__UTF8BUFFERMARSHALER__CONVERT_TO_NATIVE, 3, 1);
+    EmitStoreNativeValue(pslILEmit);
+}
+
+void ILUTF8BufferMarshaler::EmitConvertSpaceNativeToCLR(ILCodeStream* pslILEmit)
+{
+    STANDARD_VM_CONTRACT;
+
+    ILCodeLabel* pNullRefLabel = pslILEmit->NewCodeLabel();
+
+    EmitLoadNativeValue(pslILEmit);
+    pslILEmit->EmitBRFALSE(pNullRefLabel);
+
+    if (IsIn(m_dwMarshalFlags) || IsCLRToNative(m_dwMarshalFlags))
+    {
+        EmitLoadNativeValue(pslILEmit);
+        // static int System.StubHelpers.StubHelpers.strlen(sbyte* ptr)
+        pslILEmit->EmitCALL(METHOD__STUBHELPERS__STRLEN, 1, 1);
+    }
+    else
+    {
+        // don't touch the native buffer in the native->CLR out-only case
+        pslILEmit->EmitLDC(0);
+    }
+    // Convert to UTF8 and then call 
+    // System.Text.StringBuilder..ctor(int capacity)
+    pslILEmit->EmitNEWOBJ(METHOD__STRING_BUILDER__CTOR_INT, 1);
+    EmitStoreManagedValue(pslILEmit);
+    pslILEmit->EmitLabel(pNullRefLabel);
+}
+
+void ILUTF8BufferMarshaler::EmitConvertContentsNativeToCLR(ILCodeStream* pslILEmit)
+{
+    STANDARD_VM_CONTRACT;
+
+    EmitLoadManagedValue(pslILEmit);
+    EmitLoadNativeValue(pslILEmit);
+
+    //void UTF8BufferMarshaler.ConvertToManaged(StringBuilder sb, IntPtr pNative)
+    pslILEmit->EmitCALL(METHOD__UTF8BUFFERMARSHALER__CONVERT_TO_MANAGED, 2, 0);
+}
+
+
 LocalDesc ILWSTRBufferMarshaler::GetManagedType()
 {
     STANDARD_VM_CONTRACT;
@@ -1924,6 +2073,99 @@ void ILHSTRINGMarshaler::EmitClearNative(ILCodeStream* pslILEmit)
 
 #endif // FEATURE_COMINTEROP
 
+LocalDesc ILCUTF8Marshaler::GetManagedType()
+{
+       LIMITED_METHOD_CONTRACT;
+
+       return LocalDesc(ELEMENT_TYPE_STRING);
+}
+
+void ILCUTF8Marshaler::EmitConvertContentsCLRToNative(ILCodeStream* pslILEmit)
+{
+       STANDARD_VM_CONTRACT;
+
+       DWORD dwUtf8MarshalFlags =
+               (m_pargs->m_pMarshalInfo->GetBestFitMapping() & 0xFF) |
+               (m_pargs->m_pMarshalInfo->GetThrowOnUnmappableChar() << 8);
+
+       bool bPassByValueInOnly = IsIn(m_dwMarshalFlags) && !IsOut(m_dwMarshalFlags) && !IsByref(m_dwMarshalFlags);
+       if (bPassByValueInOnly)
+       {
+               DWORD dwBufSize = pslILEmit->NewLocal(ELEMENT_TYPE_I4);
+               m_dwLocalBuffer = pslILEmit->NewLocal(ELEMENT_TYPE_I);
+
+               // LocalBuffer = 0
+               pslILEmit->EmitLoadNullPtr();
+               pslILEmit->EmitSTLOC(m_dwLocalBuffer);
+
+               ILCodeLabel* pNoOptimize = pslILEmit->NewCodeLabel();
+
+               // if == NULL, goto NoOptimize
+               EmitLoadManagedValue(pslILEmit);
+               pslILEmit->EmitBRFALSE(pNoOptimize);
+                                               
+               // (String.Length + 1)
+               // Characters would be # of characters + 1 in case left over high surrogate is ?
+               EmitLoadManagedValue(pslILEmit);
+               pslILEmit->EmitCALL(METHOD__STRING__GET_LENGTH, 1, 1);
+               pslILEmit->EmitLDC(1);
+               pslILEmit->EmitADD();
+
+               // Max 3 bytes per char.
+               // (String.Length + 1) * 3              
+               pslILEmit->EmitLDC(3);
+               pslILEmit->EmitMUL();
+
+               // +1 for the 0x0 that we put in.
+               // ((String.Length + 1) * 3) + 1
+               pslILEmit->EmitLDC(1);
+               pslILEmit->EmitADD();
+                               
+               // BufSize = ( (String.Length+1) * 3) + 1
+               pslILEmit->EmitSTLOC(dwBufSize);
+
+               // if (MAX_LOCAL_BUFFER_LENGTH < BufSize ) goto NoOptimize
+               pslILEmit->EmitLDC(MAX_LOCAL_BUFFER_LENGTH);
+               pslILEmit->EmitLDLOC(dwBufSize);
+               pslILEmit->EmitCLT();
+               pslILEmit->EmitBRTRUE(pNoOptimize);
+
+               // LocalBuffer = localloc(BufSize);
+               pslILEmit->EmitLDLOC(dwBufSize);
+               pslILEmit->EmitLOCALLOC();
+               pslILEmit->EmitSTLOC(m_dwLocalBuffer);
+
+               // NoOptimize:
+               pslILEmit->EmitLabel(pNoOptimize);
+       }
+
+       // UTF8Marshaler.ConvertToNative(dwUtf8MarshalFlags,pManaged, pLocalBuffer)
+       pslILEmit->EmitLDC(dwUtf8MarshalFlags);
+       EmitLoadManagedValue(pslILEmit);
+
+       if (m_dwLocalBuffer != LOCAL_NUM_UNUSED)
+       {
+               pslILEmit->EmitLDLOC(m_dwLocalBuffer);
+       }
+       else
+       {
+               pslILEmit->EmitLoadNullPtr();
+       }
+
+       pslILEmit->EmitCALL(METHOD__CUTF8MARSHALER__CONVERT_TO_NATIVE, 3, 1);
+
+       EmitStoreNativeValue(pslILEmit);
+}
+
+void ILCUTF8Marshaler::EmitConvertContentsNativeToCLR(ILCodeStream* pslILEmit)
+{
+       STANDARD_VM_CONTRACT;
+
+       EmitLoadNativeValue(pslILEmit);
+       pslILEmit->EmitCALL(METHOD__CUTF8MARSHALER__CONVERT_TO_MANAGED, 1, 1);
+       EmitStoreManagedValue(pslILEmit);
+}
+
 
 LocalDesc ILCSTRMarshaler::GetManagedType()
 {
index d750de1..3ed74b4 100644 (file)
@@ -1996,6 +1996,35 @@ protected:
     DWORD m_dwLocalBuffer;      // localloc'ed temp buffer variable or -1 if not used
 };
 
+class ILUTF8BufferMarshaler : public ILOptimizedAllocMarshaler
+{
+public:
+       enum
+       {
+               c_fInOnly = FALSE,
+               c_nativeSize = sizeof(void *),
+               c_CLRSize = sizeof(OBJECTREF),
+       };
+
+       enum
+       {
+               // If required buffer length > MAX_LOCAL_BUFFER_LENGTH, don't optimize by allocating memory on stack
+               MAX_LOCAL_BUFFER_LENGTH = MAX_PATH_FNAME + 1
+       };
+
+       ILUTF8BufferMarshaler() :
+               ILOptimizedAllocMarshaler(METHOD__WIN32NATIVE__COTASKMEMFREE)
+       {
+               LIMITED_METHOD_CONTRACT;
+       }
+
+       virtual LocalDesc GetManagedType();
+       virtual void EmitConvertSpaceCLRToNative(ILCodeStream* pslILEmit);
+       virtual void EmitConvertContentsCLRToNative(ILCodeStream* pslILEmit);
+       virtual void EmitConvertSpaceNativeToCLR(ILCodeStream* pslILEmit);
+       virtual void EmitConvertContentsNativeToCLR(ILCodeStream* pslILEmit);
+};
+
 class ILWSTRBufferMarshaler : public ILOptimizedAllocMarshaler
 {
 public:
@@ -2522,6 +2551,37 @@ protected:
 };
 #endif // FEATURE_COMINTEROP
 
+
+class ILCUTF8Marshaler : public ILOptimizedAllocMarshaler
+{
+public:
+       enum
+       {
+               c_fInOnly = TRUE,
+               c_nativeSize = sizeof(void *),
+               c_CLRSize = sizeof(OBJECTREF),
+       };
+
+       enum
+       {
+               // If required buffer length > MAX_LOCAL_BUFFER_LENGTH, don't optimize by allocating memory on stack
+               MAX_LOCAL_BUFFER_LENGTH = MAX_PATH_FNAME + 1
+       };
+
+       ILCUTF8Marshaler() :
+               ILOptimizedAllocMarshaler(METHOD__CSTRMARSHALER__CLEAR_NATIVE)
+       {
+               LIMITED_METHOD_CONTRACT;
+       }
+
+protected:
+       virtual LocalDesc GetManagedType();
+       virtual void EmitConvertContentsCLRToNative(ILCodeStream* pslILEmit);
+       virtual void EmitConvertContentsNativeToCLR(ILCodeStream* pslILEmit);
+};
+
+
+
 class ILCSTRMarshaler : public ILOptimizedAllocMarshaler
 {
 public:
index a9ab7d0..33f04b9 100644 (file)
@@ -908,7 +908,6 @@ void FillExceptionData(ExceptionData* pedata, IErrorInfo* pErrInfo, IRestrictedE
 }
 #endif // CROSSGEN_COMPILE
 
-#ifndef FEATURE_CORECLR
 //---------------------------------------------------------------------------
 //returns true if pImport has DefaultDllImportSearchPathsAttribute
 //if true, also returns dllImportSearchPathFlag and searchAssemblyDirectory values.
@@ -945,7 +944,6 @@ BOOL GetDefaultDllImportSearchPathsAttributeValue(IMDInternalImport *pImport, md
     *pDllImportSearchPathFlag = args[0].val.u4;
     return TRUE;
 }
-#endif // !FEATURE_CORECLR
 
 
 //---------------------------------------------------------------------------
@@ -5384,9 +5382,7 @@ TypeHandle GetWinRTType(SString* ssTypeName, BOOL bThrowIfNotFound)
 
     SString ssAssemblyName(SString::Utf8Literal, "WindowsRuntimeAssemblyName, ContentType=WindowsRuntime");
     DomainAssembly *pAssembly = LoadDomainAssembly(&ssAssemblyName, NULL, 
-#ifdef FEATURE_HOSTED_BINDER
                                                    NULL, 
-#endif
                                                    bThrowIfNotFound, FALSE, ssTypeName);
     if (pAssembly != NULL)
     {
index 754c20f..6762c80 100644 (file)
@@ -129,12 +129,10 @@ void FillExceptionData(ExceptionData* pedata, IErrorInfo* pErrInfo, IRestrictedE
  // helper to access fields from an object
 INT64 FieldAccessor(FieldDesc* pFD, OBJECTREF oref, INT64 val, BOOL isGetter, U1 cbSize);
 
-#ifndef FEATURE_CORECLR
 //---------------------------------------------------------------------------
 //returns true if pImport has DefaultDllImportSearchPathsAttribute
 //if true, also returns dllImportSearchPathFlag and searchAssemblyDirectory values.
 BOOL GetDefaultDllImportSearchPathsAttributeValue(IMDInternalImport *pImport, mdToken token, DWORD * pDlImportSearchPathFlag);
-#endif // !FEATURE_CORECLR
 
 //---------------------------------------------------------------------------
 // Returns the index of the LCID parameter if one exists and -1 otherwise.
index aa99f06..340d61b 100644 (file)
@@ -3451,6 +3451,25 @@ HCIMPL2VA(Object*, JIT_NewMDArr, CORINFO_CLASS_HANDLE classHnd, unsigned dwNumAr
 HCIMPLEND
 
 /*************************************************************/
+HCIMPL3(Object*, JIT_NewMDArrNonVarArg, CORINFO_CLASS_HANDLE classHnd, unsigned dwNumArgs, INT32 * pArgList)
+{
+    FCALL_CONTRACT;
+
+    OBJECTREF    ret = 0;
+    HELPER_METHOD_FRAME_BEGIN_RET_1(ret);    // Set up a frame
+
+    TypeHandle typeHnd(classHnd);
+    typeHnd.CheckRestore();
+    _ASSERTE(typeHnd.GetMethodTable()->IsArray());
+
+    ret = AllocateArrayEx(typeHnd, pArgList, dwNumArgs);
+
+    HELPER_METHOD_FRAME_END();
+    return OBJECTREFToObject(ret);
+}
+HCIMPLEND
+
+/*************************************************************/
 /* returns '&array[idx], after doing all the proper checks */
 
 #include <optsmallperfcritical.h>
index bad7e37..2110134 100644 (file)
@@ -1789,116 +1789,86 @@ void CEEInfo::getFieldInfo (CORINFO_RESOLVED_TOKEN * pResolvedToken,
 
     if (!(flags & CORINFO_ACCESS_INLINECHECK))
     {
-    //get the field's type.  Grab the class for structs.
-    pResult->fieldType = getFieldTypeInternal(pResolvedToken->hField, &pResult->structType, pResolvedToken->hClass);
+        //get the field's type.  Grab the class for structs.
+        pResult->fieldType = getFieldTypeInternal(pResolvedToken->hField, &pResult->structType, pResolvedToken->hClass);
 
 
-    MethodDesc * pCallerForSecurity = GetMethodForSecurity(callerHandle);
-
-    //
-    //Since we can't get the special verify-only instantiated FD like we can with MDs, go back to the parent
-    //of the memberRef and load that one.  That should give us the open instantiation.
-    //
-    //If the field we found is owned by a generic type, you have to go back to the signature and reload.
-    //Otherwise we filled in !0.
-    TypeHandle fieldTypeForSecurity = TypeHandle(pResolvedToken->hClass);
-    if (pResolvedToken->pTypeSpec != NULL)
-    {
-        SigTypeContext typeContext;
-        SigTypeContext::InitTypeContext(pCallerForSecurity, &typeContext);
-
-        SigPointer sigptr(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec);
-        fieldTypeForSecurity = sigptr.GetTypeHandleThrowing((Module *)pResolvedToken->tokenScope, &typeContext);
+        MethodDesc * pCallerForSecurity = GetMethodForSecurity(callerHandle);
 
-        // typeHnd can be a variable type
-        if (fieldTypeForSecurity.GetMethodTable() == NULL)
+        //
+        //Since we can't get the special verify-only instantiated FD like we can with MDs, go back to the parent
+        //of the memberRef and load that one.  That should give us the open instantiation.
+        //
+        //If the field we found is owned by a generic type, you have to go back to the signature and reload.
+        //Otherwise we filled in !0.
+        TypeHandle fieldTypeForSecurity = TypeHandle(pResolvedToken->hClass);
+        if (pResolvedToken->pTypeSpec != NULL)
         {
-            COMPlusThrowHR(COR_E_BADIMAGEFORMAT, BFA_METHODDEF_PARENT_NO_MEMBERS);
-        }
-    }
-
-    BOOL doAccessCheck = TRUE;
-    AccessCheckOptions::AccessCheckType accessCheckType = AccessCheckOptions::kNormalAccessibilityChecks;
+            SigTypeContext typeContext;
+            SigTypeContext::InitTypeContext(pCallerForSecurity, &typeContext);
 
-    DynamicResolver * pAccessContext = NULL;
+            SigPointer sigptr(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec);
+            fieldTypeForSecurity = sigptr.GetTypeHandleThrowing((Module *)pResolvedToken->tokenScope, &typeContext);
 
-    //More in code:CEEInfo::getCallInfo, but the short version is that the caller and callee Descs do
-    //not completely describe the type.
-    TypeHandle callerTypeForSecurity = TypeHandle(pCallerForSecurity->GetMethodTable());
-    if (IsDynamicScope(pResolvedToken->tokenScope))
-    {
-        doAccessCheck = ModifyCheckForDynamicMethod(GetDynamicResolver(pResolvedToken->tokenScope), &callerTypeForSecurity,
-                                                    &accessCheckType, &pAccessContext);
-    }
+            // typeHnd can be a variable type
+            if (fieldTypeForSecurity.GetMethodTable() == NULL)
+            {
+                COMPlusThrowHR(COR_E_BADIMAGEFORMAT, BFA_METHODDEF_PARENT_NO_MEMBERS);
+            }
+        }
 
-    //Now for some link time checks.
-    //Um... where are the field link demands?
+        BOOL doAccessCheck = TRUE;
+        AccessCheckOptions::AccessCheckType accessCheckType = AccessCheckOptions::kNormalAccessibilityChecks;
 
-    pResult->accessAllowed = CORINFO_ACCESS_ALLOWED;
+        DynamicResolver * pAccessContext = NULL;
 
-    if (doAccessCheck)
-    {
-        //Well, let's check some visibility at least.
-        AccessCheckOptions accessCheckOptions(accessCheckType,
-                                              pAccessContext,
-                                              FALSE,
-                                              pField);
+        //More in code:CEEInfo::getCallInfo, but the short version is that the caller and callee Descs do
+        //not completely describe the type.
+        TypeHandle callerTypeForSecurity = TypeHandle(pCallerForSecurity->GetMethodTable());
+        if (IsDynamicScope(pResolvedToken->tokenScope))
+        {
+            doAccessCheck = ModifyCheckForDynamicMethod(GetDynamicResolver(pResolvedToken->tokenScope), &callerTypeForSecurity,
+                &accessCheckType, &pAccessContext);
+        }
 
-        _ASSERTE(pCallerForSecurity != NULL && callerTypeForSecurity != NULL);
-        StaticAccessCheckContext accessContext(pCallerForSecurity, callerTypeForSecurity.GetMethodTable());
+        //Now for some link time checks.
+        //Um... where are the field link demands?
 
-        BOOL canAccess = ClassLoader::CanAccess(
-           &accessContext,
-           fieldTypeForSecurity.GetMethodTable(),
-           fieldTypeForSecurity.GetAssembly(),
-           fieldAttribs,
-           NULL,
-           (flags & CORINFO_ACCESS_INIT_ARRAY) ? NULL : pField, // For InitializeArray, we don't need tocheck the type of the field.
-           accessCheckOptions,
-           FALSE /*checkTargetMethodTransparency*/,
-           TRUE  /*checkTargetTypeTransparency*/);
+        pResult->accessAllowed = CORINFO_ACCESS_ALLOWED;
 
-        if (!canAccess)
+        if (doAccessCheck)
         {
-            //Set up the throw helper
-            pResult->accessAllowed = CORINFO_ACCESS_ILLEGAL;
+            //Well, let's check some visibility at least.
+            AccessCheckOptions accessCheckOptions(accessCheckType,
+                pAccessContext,
+                FALSE,
+                pField);
 
-            pResult->accessCalloutHelper.helperNum = CORINFO_HELP_FIELD_ACCESS_EXCEPTION;
-            pResult->accessCalloutHelper.numArgs = 2;
+            _ASSERTE(pCallerForSecurity != NULL && callerTypeForSecurity != NULL);
+            StaticAccessCheckContext accessContext(pCallerForSecurity, callerTypeForSecurity.GetMethodTable());
 
-            pResult->accessCalloutHelper.args[0].Set(CORINFO_METHOD_HANDLE(pCallerForSecurity));
-            pResult->accessCalloutHelper.args[1].Set(CORINFO_FIELD_HANDLE(pField));
+            BOOL canAccess = ClassLoader::CanAccess(
+                &accessContext,
+                fieldTypeForSecurity.GetMethodTable(),
+                fieldTypeForSecurity.GetAssembly(),
+                fieldAttribs,
+                NULL,
+                (flags & CORINFO_ACCESS_INIT_ARRAY) ? NULL : pField, // For InitializeArray, we don't need tocheck the type of the field.
+                accessCheckOptions,
+                FALSE /*checkTargetMethodTransparency*/,
+                TRUE  /*checkTargetTypeTransparency*/);
 
-            if (IsCompilingForNGen())
+            if (!canAccess)
             {
-                //see code:CEEInfo::getCallInfo for more information.
-                if (pCallerForSecurity->ContainsGenericVariables())
-                    COMPlusThrowNonLocalized(kNotSupportedException, W("Cannot embed generic MethodDesc"));
-            }
-        }
-        else
-        {
-            CorInfoIsAccessAllowedResult isAccessAllowed = CORINFO_ACCESS_ALLOWED;
-            CorInfoSecurityRuntimeChecks runtimeChecks = CORINFO_ACCESS_SECURITY_NONE;
+                //Set up the throw helper
+                pResult->accessAllowed = CORINFO_ACCESS_ILLEGAL;
 
-            DebugSecurityCalloutStress(getMethodBeingCompiled(), isAccessAllowed, runtimeChecks);
-            if (isAccessAllowed == CORINFO_ACCESS_RUNTIME_CHECK)
-            {
-                pResult->accessAllowed = isAccessAllowed;
-                //Explain the callback to the JIT.
-                pResult->accessCalloutHelper.helperNum = CORINFO_HELP_FIELD_ACCESS_CHECK;
-                pResult->accessCalloutHelper.numArgs = 3;
+                pResult->accessCalloutHelper.helperNum = CORINFO_HELP_FIELD_ACCESS_EXCEPTION;
+                pResult->accessCalloutHelper.numArgs = 2;
 
                 pResult->accessCalloutHelper.args[0].Set(CORINFO_METHOD_HANDLE(pCallerForSecurity));
-
-                /* REVISIT_TODO Wed 4/8/2009
-                 * This field handle is not useful on its own.  We also need to embed the enclosing class
-                 * handle.
-                 */
                 pResult->accessCalloutHelper.args[1].Set(CORINFO_FIELD_HANDLE(pField));
 
-                pResult->accessCalloutHelper.args[2].Set(runtimeChecks);
-
                 if (IsCompilingForNGen())
                 {
                     //see code:CEEInfo::getCallInfo for more information.
@@ -1906,9 +1876,38 @@ void CEEInfo::getFieldInfo (CORINFO_RESOLVED_TOKEN * pResolvedToken,
                         COMPlusThrowNonLocalized(kNotSupportedException, W("Cannot embed generic MethodDesc"));
                 }
             }
-        }
-    }
+            else
+            {
+                CorInfoIsAccessAllowedResult isAccessAllowed = CORINFO_ACCESS_ALLOWED;
+                CorInfoSecurityRuntimeChecks runtimeChecks = CORINFO_ACCESS_SECURITY_NONE;
+
+                DebugSecurityCalloutStress(getMethodBeingCompiled(), isAccessAllowed, runtimeChecks);
+                if (isAccessAllowed == CORINFO_ACCESS_RUNTIME_CHECK)
+                {
+                    pResult->accessAllowed = isAccessAllowed;
+                    //Explain the callback to the JIT.
+                    pResult->accessCalloutHelper.helperNum = CORINFO_HELP_FIELD_ACCESS_CHECK;
+                    pResult->accessCalloutHelper.numArgs = 3;
+
+                    pResult->accessCalloutHelper.args[0].Set(CORINFO_METHOD_HANDLE(pCallerForSecurity));
+
+                    /* REVISIT_TODO Wed 4/8/2009
+                     * This field handle is not useful on its own.  We also need to embed the enclosing class
+                     * handle.
+                     */
+                    pResult->accessCalloutHelper.args[1].Set(CORINFO_FIELD_HANDLE(pField));
+
+                    pResult->accessCalloutHelper.args[2].Set(runtimeChecks);
 
+                    if (IsCompilingForNGen())
+                    {
+                        //see code:CEEInfo::getCallInfo for more information.
+                        if (pCallerForSecurity->ContainsGenericVariables())
+                            COMPlusThrowNonLocalized(kNotSupportedException, W("Cannot embed generic MethodDesc"));
+                    }
+                }
+            }
+        }
     }
 
     EE_TO_JIT_TRANSITION();
@@ -2682,7 +2681,7 @@ void CEEInfo::embedGenericHandle(
         }
 
         // IsSharedByGenericInstantiations would not work here. The runtime lookup is required
-        // even for standalone generic variables that show up as __Cannon here.
+        // even for standalone generic variables that show up as __Canon here.
         fRuntimeLookup = th.IsCanonicalSubtype();
     }
 
@@ -3057,12 +3056,12 @@ static BOOL IsTypeSpecForTypicalInstantiation(SigPointer sigptr)
 }
 
 void CEEInfo::ComputeRuntimeLookupForSharedGenericToken(DictionaryEntryKind entryKind,
-                                                        CORINFO_RESOLVED_TOKEN * pResolvedToken,
-                                                        CORINFO_RESOLVED_TOKEN * pConstrainedResolvedToken /* for ConstrainedMethodEntrySlot */,
-                                                        MethodDesc * pTemplateMD /* for method-based slots */,
-                                                        CORINFO_LOOKUP *pResultLookup)
+    CORINFO_RESOLVED_TOKEN * pResolvedToken,
+    CORINFO_RESOLVED_TOKEN * pConstrainedResolvedToken /* for ConstrainedMethodEntrySlot */,
+    MethodDesc * pTemplateMD /* for method-based slots */,
+    CORINFO_LOOKUP *pResultLookup)
 {
-    CONTRACTL {
+    CONTRACTL{
         STANDARD_VM_CHECK;
         PRECONDITION(CheckPointer(pResultLookup));
     } CONTRACTL_END;
@@ -3071,6 +3070,38 @@ void CEEInfo::ComputeRuntimeLookupForSharedGenericToken(DictionaryEntryKind entr
     _ASSERTE(!isVerifyOnly());
 
     pResultLookup->lookupKind.needsRuntimeLookup = true;
+    pResultLookup->lookupKind.runtimeLookupFlags = 0;
+
+#ifdef FEATURE_READYTORUN_COMPILER
+    if (IsReadyToRunCompilation())
+    {
+#if defined(UNIX_AMD64_ABI) || !defined(_TARGET_AMD64_)
+        // TODO
+        // Not yet fully enabled on UNIX... need calling convention fixes for the dictionary lookup stub
+        // generated by cgenamd64.cpp:DynamicHelpers::CreateDictionaryLookupHelper(...)
+        ThrowHR(E_NOTIMPL);
+#endif
+
+        switch (entryKind)
+        {
+        case TypeHandleSlot:
+            pResultLookup->lookupKind.runtimeLookupFlags = READYTORUN_FIXUP_TypeHandle;
+            break;
+
+        case DeclaringTypeHandleSlot:
+        case MethodDescSlot:
+        case FieldDescSlot:
+        case MethodEntrySlot:
+        case ConstrainedMethodEntrySlot:
+        case DispatchStubAddrSlot:
+            ThrowHR(E_NOTIMPL);
+
+        default:
+            _ASSERTE(!"Unknown dictionary entry kind!");
+            IfFailThrow(E_FAIL);
+        }
+    }
+#endif
 
     CORINFO_RUNTIME_LOOKUP *pResult = &pResultLookup->runtimeLookup;
     pResult->signature = NULL;
@@ -3105,80 +3136,24 @@ void CEEInfo::ComputeRuntimeLookupForSharedGenericToken(DictionaryEntryKind entr
     }
 #endif // FEATURE_NATIVE_IMAGE_GENERATION
 
-    // If we've got a  method type parameter of any kind then we must look in the method desc arg
+    DWORD numGenericArgs;
+    DictionaryLayout* pDictionaryLayout;
+    LoaderAllocator* pAllocator;
+
     if (pContextMD->RequiresInstMethodDescArg())
     {
+        pAllocator = pContextMD->GetLoaderAllocator();
+        numGenericArgs = pContextMD->GetNumGenericMethodArgs();
+        pDictionaryLayout = pContextMD->GetDictionaryLayout();
+
         pResultLookup->lookupKind.runtimeLookupKind = CORINFO_LOOKUP_METHODPARAM;
         pResult->helper = fInstrument ? CORINFO_HELP_RUNTIMEHANDLE_METHOD_LOG : CORINFO_HELP_RUNTIMEHANDLE_METHOD;
-
-        if (fInstrument)
-            goto NoSpecialCase;
-
-        // Special cases:
-        // (1) Naked method type variable: look up directly in instantiation hanging off runtime md
-        // (2) Reference to method-spec of current method (e.g. a recursive call) i.e. currentmeth<!0,...,!(n-1)>
-        if ((entryKind == TypeHandleSlot) && (pResolvedToken->tokenType != CORINFO_TOKENKIND_Newarr))
-        {
-            SigPointer sigptr(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec);
-            CorElementType type;
-            IfFailThrow(sigptr.GetElemType(&type));
-            if (type == ELEMENT_TYPE_MVAR)
-            {
-                pResult->indirections = 2;
-                pResult->testForNull = 0;
-#ifdef FEATURE_PREJIT
-                pResult->testForFixup = 1;
-#else
-                pResult->testForFixup = 0;
-#endif
-                pResult->offsets[0] = offsetof(InstantiatedMethodDesc, m_pPerInstInfo);
-
-                ULONG data;
-                IfFailThrow(sigptr.GetData(&data));
-                pResult->offsets[1] = sizeof(TypeHandle) * data;
-
-                return;
-            }
-        }
-        else if (entryKind == MethodDescSlot)
-        {
-            // It's the context itself (i.e. a recursive call)
-            if (!pTemplateMD->HasSameMethodDefAs(pContextMD))
-                goto NoSpecialCase;
-
-            // Now just check that the instantiation is (!!0, ..., !!(n-1))
-            if (!IsMethodSpecForTypicalInstantation(SigPointer(pResolvedToken->pMethodSpec, pResolvedToken->cbMethodSpec)))
-                goto NoSpecialCase;
-
-            // Type instantiation has to match too if there is one
-            if (pContextMT->HasInstantiation())
-            {
-                TypeHandle thTemplate(pResolvedToken->hClass);
-
-                if (thTemplate.IsTypeDesc() || !thTemplate.AsMethodTable()->HasSameTypeDefAs(pContextMT))
-                    goto NoSpecialCase;
-
-                // This check filters out method instantiation on generic type definition, like G::M<!!0>()
-                // We may not ever get it here. Filter it out just to be sure...
-                if (pResolvedToken->pTypeSpec == NULL)
-                    goto NoSpecialCase;
-
-                if (!IsTypeSpecForTypicalInstantiation(SigPointer(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec)))
-                    goto NoSpecialCase;
-            }
-
-            // Just use the method descriptor that was passed in!
-            pResult->indirections = 0;
-            pResult->testForNull = 0;
-            pResult->testForFixup = 0;
-
-            return;
-        }
     }
-    // Otherwise we must just have class type variables
     else
     {
-        _ASSERTE(pContextMT->GetNumGenericArgs() > 0);
+        pAllocator = pContextMT->GetLoaderAllocator();
+        numGenericArgs = pContextMT->GetNumGenericArgs();
+        pDictionaryLayout = pContextMT->GetClass()->GetDictionaryLayout();
 
         if (pContextMD->RequiresInstMethodTableArg())
         {
@@ -3187,53 +3162,122 @@ void CEEInfo::ComputeRuntimeLookupForSharedGenericToken(DictionaryEntryKind entr
             pResult->helper = fInstrument ? CORINFO_HELP_RUNTIMEHANDLE_CLASS_LOG : CORINFO_HELP_RUNTIMEHANDLE_CLASS;
         }
         // If we've got an object, go through its vtable
-        else 
+        else
         {
             _ASSERTE(pContextMD->AcquiresInstMethodTableFromThis());
             pResultLookup->lookupKind.runtimeLookupKind = CORINFO_LOOKUP_THISOBJ;
             pResult->helper = fInstrument ? CORINFO_HELP_RUNTIMEHANDLE_CLASS_LOG : CORINFO_HELP_RUNTIMEHANDLE_CLASS;
         }
+    }
 
-        if (fInstrument)
-            goto NoSpecialCase;
+    ComputeRuntimeLookupForSharedGenericTokenStatic(
+        entryKind,
+        pResolvedToken,
+        pConstrainedResolvedToken,
+        pTemplateMD,
+        pAllocator,
+        numGenericArgs,
+        pDictionaryLayout,
+        (pResultLookup->lookupKind.runtimeLookupKind == CORINFO_LOOKUP_METHODPARAM ? 0 : pContextMT->GetNumDicts()),
+        pResultLookup,
+        TRUE,
+        fInstrument);
+}
+
+void CEEInfo::ComputeRuntimeLookupForSharedGenericTokenStatic(DictionaryEntryKind entryKind,
+                                                              CORINFO_RESOLVED_TOKEN * pResolvedToken,
+                                                              CORINFO_RESOLVED_TOKEN * pConstrainedResolvedToken /* for ConstrainedMethodEntrySlot */,
+                                                              MethodDesc * pTemplateMD /* for method-based slots */,
+                                                              LoaderAllocator* pAllocator,
+                                                              DWORD numGenericArgs,
+                                                              DictionaryLayout* pDictionaryLayout,
+                                                              DWORD typeDictionaryIndex,
+                                                              CORINFO_LOOKUP *pResultLookup,
+                                                              BOOL fEnableTypeHandleLookupOptimization,
+                                                              BOOL fInstrument)
+{
+    CONTRACTL{
+        STANDARD_VM_CHECK;
+        PRECONDITION(CheckPointer(pResultLookup));
+    } CONTRACTL_END;
 
-        // Special cases:
-        // (1) Naked class type variable: look up directly in instantiation hanging off vtable
-        // (2) C<!0,...,!(n-1)> where C is the context's class and C is sealed: just return vtable ptr
-        if ((entryKind == TypeHandleSlot) && (pResolvedToken->tokenType != CORINFO_TOKENKIND_Newarr))
+    pResultLookup->lookupKind.needsRuntimeLookup = true;
+
+    CORINFO_RUNTIME_LOOKUP *pResult = &pResultLookup->runtimeLookup;
+    pResult->signature = NULL;
+
+    // Unless we decide otherwise, just do the lookup via a helper function
+    pResult->indirections = CORINFO_USEHELPER;
+
+    if (fEnableTypeHandleLookupOptimization)
+    {
+        MethodDesc *pContextMD = GetMethodFromContext(pResolvedToken->tokenContext);
+        MethodTable *pContextMT = pContextMD->GetMethodTable();
+
+        // There is a pathological case where invalid IL refereces __Canon type directly, but there is no dictionary availabled to store the lookup. 
+        // All callers of ComputeRuntimeLookupForSharedGenericToken have to filter out this case. We can't do much about it here.
+        _ASSERTE(pContextMD->IsSharedByGenericInstantiations());
+
+        // If we've got a  method type parameter of any kind then we must look in the method desc arg
+        if (pContextMD->RequiresInstMethodDescArg())
         {
-            SigPointer sigptr(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec);
-            CorElementType type;
-            IfFailThrow(sigptr.GetElemType(&type));
-            if (type == ELEMENT_TYPE_VAR)
+            if (fInstrument)
+                goto NoSpecialCase;
+
+            // Special cases:
+            // (1) Naked method type variable: look up directly in instantiation hanging off runtime md
+            // (2) Reference to method-spec of current method (e.g. a recursive call) i.e. currentmeth<!0,...,!(n-1)>
+            if ((entryKind == TypeHandleSlot) && (pResolvedToken->tokenType != CORINFO_TOKENKIND_Newarr))
             {
-                pResult->indirections = 3;
-                pResult->testForNull = 0;
+                SigPointer sigptr(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec);
+                CorElementType type;
+                IfFailThrow(sigptr.GetElemType(&type));
+                if (type == ELEMENT_TYPE_MVAR)
+                {
+                    pResult->indirections = 2;
+                    pResult->testForNull = 0;
 #ifdef FEATURE_PREJIT
-                pResult->testForFixup = 1;
+                    pResult->testForFixup = 1;
 #else
-                pResult->testForFixup = 0;
+                    pResult->testForFixup = 0;
 #endif
-                pResult->offsets[0] = MethodTable::GetOffsetOfPerInstInfo();
-                pResult->offsets[1] = sizeof(TypeHandle*) * (pContextMT->GetNumDicts()-1);
-                ULONG data;
-                IfFailThrow(sigptr.GetData(&data));
-                pResult->offsets[2] = sizeof(TypeHandle) * data;
+                    pResult->offsets[0] = offsetof(InstantiatedMethodDesc, m_pPerInstInfo);
 
-                return;
+                    ULONG data;
+                    IfFailThrow(sigptr.GetData(&data));
+                    pResult->offsets[1] = sizeof(TypeHandle) * data;
+
+                    return;
+                }
             }
-            else if (type == ELEMENT_TYPE_GENERICINST && 
-                (pContextMT->IsSealed() || pResultLookup->lookupKind.runtimeLookupKind == CORINFO_LOOKUP_CLASSPARAM))
+            else if (entryKind == MethodDescSlot)
             {
-                TypeHandle thTemplate(pResolvedToken->hClass);
-
-                if (thTemplate.IsTypeDesc() || !thTemplate.AsMethodTable()->HasSameTypeDefAs(pContextMT))
+                // It's the context itself (i.e. a recursive call)
+                if (!pTemplateMD->HasSameMethodDefAs(pContextMD))
                     goto NoSpecialCase;
 
-                if (!IsTypeSpecForTypicalInstantiation(SigPointer(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec)))
+                // Now just check that the instantiation is (!!0, ..., !!(n-1))
+                if (!IsMethodSpecForTypicalInstantation(SigPointer(pResolvedToken->pMethodSpec, pResolvedToken->cbMethodSpec)))
                     goto NoSpecialCase;
 
-                // Just use the vtable pointer itself!
+                // Type instantiation has to match too if there is one
+                if (pContextMT->HasInstantiation())
+                {
+                    TypeHandle thTemplate(pResolvedToken->hClass);
+
+                    if (thTemplate.IsTypeDesc() || !thTemplate.AsMethodTable()->HasSameTypeDefAs(pContextMT))
+                        goto NoSpecialCase;
+
+                    // This check filters out method instantiation on generic type definition, like G::M<!!0>()
+                    // We may not ever get it here. Filter it out just to be sure...
+                    if (pResolvedToken->pTypeSpec == NULL)
+                        goto NoSpecialCase;
+
+                    if (!IsTypeSpecForTypicalInstantiation(SigPointer(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec)))
+                        goto NoSpecialCase;
+                }
+
+                // Just use the method descriptor that was passed in!
                 pResult->indirections = 0;
                 pResult->testForNull = 0;
                 pResult->testForFixup = 0;
@@ -3241,18 +3285,76 @@ void CEEInfo::ComputeRuntimeLookupForSharedGenericToken(DictionaryEntryKind entr
                 return;
             }
         }
+        // Otherwise we must just have class type variables
+        else
+        {
+            _ASSERTE(pContextMT->GetNumGenericArgs() > 0);
+
+            if (fInstrument)
+                goto NoSpecialCase;
+
+            // Special cases:
+            // (1) Naked class type variable: look up directly in instantiation hanging off vtable
+            // (2) C<!0,...,!(n-1)> where C is the context's class and C is sealed: just return vtable ptr
+            if ((entryKind == TypeHandleSlot) && (pResolvedToken->tokenType != CORINFO_TOKENKIND_Newarr))
+            {
+                SigPointer sigptr(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec);
+                CorElementType type;
+                IfFailThrow(sigptr.GetElemType(&type));
+                if (type == ELEMENT_TYPE_VAR)
+                {
+                    pResult->indirections = 3;
+                    pResult->testForNull = 0;
+#ifdef FEATURE_PREJIT
+                    pResult->testForFixup = 1;
+#else
+                    pResult->testForFixup = 0;
+#endif
+                    pResult->offsets[0] = MethodTable::GetOffsetOfPerInstInfo();
+                    pResult->offsets[1] = sizeof(TypeHandle*) * (pContextMT->GetNumDicts() - 1);
+                    ULONG data;
+                    IfFailThrow(sigptr.GetData(&data));
+                    pResult->offsets[2] = sizeof(TypeHandle) * data;
+
+                    return;
+                }
+                else if (type == ELEMENT_TYPE_GENERICINST &&
+                    (pContextMT->IsSealed() || pResultLookup->lookupKind.runtimeLookupKind == CORINFO_LOOKUP_CLASSPARAM))
+                {
+                    TypeHandle thTemplate(pResolvedToken->hClass);
+
+                    if (thTemplate.IsTypeDesc() || !thTemplate.AsMethodTable()->HasSameTypeDefAs(pContextMT))
+                        goto NoSpecialCase;
+
+                    if (!IsTypeSpecForTypicalInstantiation(SigPointer(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec)))
+                        goto NoSpecialCase;
+
+                    // Just use the vtable pointer itself!
+                    pResult->indirections = 0;
+                    pResult->testForNull = 0;
+                    pResult->testForFixup = 0;
+
+                    return;
+                }
+            }
+        }
     }
 
 NoSpecialCase:
 
+    // For R2R compilations, we don't generate the dictionary lookup signatures (dictionary lookups are done in a 
+    // different way that is more version resilient... plus we can't have pointers to existing MTs/MDs in the sigs)
+    if (IsReadyToRunCompilation())
+        return;
+
     SigBuilder sigBuilder;
 
     sigBuilder.AppendData(entryKind);
 
     if (pResultLookup->lookupKind.runtimeLookupKind != CORINFO_LOOKUP_METHODPARAM)
     {
-        _ASSERTE(pContextMT->GetNumDicts() > 0);
-        sigBuilder.AppendData(pContextMT->GetNumDicts() - 1);
+        _ASSERTE(typeDictionaryIndex > 0);
+        sigBuilder.AppendData(typeDictionaryIndex - 1);
     }
 
     Module * pModule = (Module *)pResolvedToken->tokenScope;
@@ -3271,7 +3373,7 @@ NoSpecialCase:
                 sigBuilder.AppendElementType(ELEMENT_TYPE_SZARRAY);
 
             // Note that we can come here with pResolvedToken->pTypeSpec == NULL for invalid IL that 
-            // directly references __Cannon
+            // directly references __Canon
             if (pResolvedToken->pTypeSpec != NULL)
             {
                 SigPointer sigptr(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec);
@@ -3427,10 +3529,7 @@ NoSpecialCase:
     // It's a method dictionary lookup
     if (pResultLookup->lookupKind.runtimeLookupKind == CORINFO_LOOKUP_METHODPARAM)
     {
-        _ASSERTE(pContextMD != NULL);
-        _ASSERTE(pContextMD->HasMethodInstantiation());
-
-        if (DictionaryLayout::FindToken(pContextMD->GetLoaderAllocator(), pContextMD->GetNumGenericMethodArgs(), pContextMD->GetDictionaryLayout(), pResult, &sigBuilder, 1))
+        if (DictionaryLayout::FindToken(pAllocator, numGenericArgs, pDictionaryLayout, pResult, &sigBuilder, 1))
         {
             pResult->testForNull = 1;
             pResult->testForFixup = 0;
@@ -3443,7 +3542,7 @@ NoSpecialCase:
     // It's a class dictionary lookup (CORINFO_LOOKUP_CLASSPARAM or CORINFO_LOOKUP_THISOBJ)
     else
     {
-        if (DictionaryLayout::FindToken(pContextMT->GetLoaderAllocator(), pContextMT->GetNumGenericArgs(), pContextMT->GetClass()->GetDictionaryLayout(), pResult, &sigBuilder, 2))
+        if (DictionaryLayout::FindToken(pAllocator, numGenericArgs, pDictionaryLayout, pResult, &sigBuilder, 2))
         {
             pResult->testForNull = 1;
             pResult->testForFixup = 0;
@@ -3452,7 +3551,7 @@ NoSpecialCase:
             pResult->offsets[0] = MethodTable::GetOffsetOfPerInstInfo();
 
             // Next indirect through the dictionary appropriate to this instantiated type
-            pResult->offsets[1] = sizeof(TypeHandle*) * (pContextMT->GetNumDicts()-1);
+            pResult->offsets[1] = sizeof(TypeHandle*) * (typeDictionaryIndex - 1);
         }
     }
 }
@@ -5212,6 +5311,12 @@ void CEEInfo::getCallInfo(
             // For reference types, the constrained type does not affect method resolution
             DictionaryEntryKind entryKind = (!constrainedType.IsNull() && constrainedType.IsValueType()) ? ConstrainedMethodEntrySlot : MethodEntrySlot;
 
+            if (IsReadyToRunCompilation() && pConstrainedResolvedToken != NULL)
+            {
+                // READYTORUN: FUTURE: Constrained generic calls
+                ThrowHR(E_NOTIMPL);
+            }
+
             ComputeRuntimeLookupForSharedGenericToken(entryKind,
                                                       pResolvedToken,
                                                       pConstrainedResolvedToken,
@@ -6196,10 +6301,11 @@ CorInfoHelpFunc CEEInfo::getUnBoxHelper(CORINFO_CLASS_HANDLE clsHnd)
 }
 
 /***********************************************************************/
-void CEEInfo::getReadyToRunHelper(
-        CORINFO_RESOLVED_TOKEN * pResolvedToken,
-        CorInfoHelpFunc          id,
-        CORINFO_CONST_LOOKUP *   pLookup
+bool CEEInfo::getReadyToRunHelper(
+        CORINFO_RESOLVED_TOKEN *        pResolvedToken,
+        CORINFO_LOOKUP_KIND *           pGenericLookupKind,
+        CorInfoHelpFunc                 id,
+        CORINFO_CONST_LOOKUP *          pLookup
         )
 {
     LIMITED_METHOD_CONTRACT;
@@ -9559,6 +9665,8 @@ void CEEInfo::getEEInfo(CORINFO_EE_INFO *pEEInfoOut)
 
     pEEInfoOut->offsetOfObjArrayData       = (DWORD)PtrArray::GetDataOffset();
 
+    pEEInfoOut->sizeOfReversePInvokeFrame  = (DWORD)-1;
+
     OSVERSIONINFO   sVerInfo;
     sVerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
     GetOSVersion(&sVerInfo);
@@ -10094,7 +10202,7 @@ bool CEEInfo::runWithErrorTrap(void (*function)(void*), void* param)
     // No dynamic contract here because SEH is used
     STATIC_CONTRACT_THROWS;
     STATIC_CONTRACT_GC_TRIGGERS;
-    STATIC_CONTRACT_SO_INTOLERANT;
+    STATIC_CONTRACT_SO_TOLERANT;
     STATIC_CONTRACT_MODE_PREEMPTIVE;
 
     // NOTE: the lack of JIT/EE transition markers in this method is intentional. Any
index ace9608..08721ae 100644 (file)
@@ -543,10 +543,11 @@ public:
     CorInfoHelpFunc getBoxHelper(CORINFO_CLASS_HANDLE cls);
     CorInfoHelpFunc getUnBoxHelper(CORINFO_CLASS_HANDLE cls);
 
-    void getReadyToRunHelper(
-            CORINFO_RESOLVED_TOKEN * pResolvedToken,
-            CorInfoHelpFunc          id,
-            CORINFO_CONST_LOOKUP *   pLookup
+    bool getReadyToRunHelper(
+            CORINFO_RESOLVED_TOKEN *        pResolvedToken,
+            CORINFO_LOOKUP_KIND *           pGenericLookupKind,
+            CorInfoHelpFunc                 id,
+            CORINFO_CONST_LOOKUP *          pLookup
             );
 
     void getReadyToRunDelegateCtorHelper(
@@ -948,10 +949,10 @@ public:
                                           void **ppIndirection);
     CORINFO_METHOD_HANDLE embedMethodHandle(CORINFO_METHOD_HANDLE handle,
                                             void **ppIndirection);
-    void embedGenericHandle(
-                        CORINFO_RESOLVED_TOKEN * pResolvedToken,
-                        BOOL                     fEmbedParent,
-                        CORINFO_GENERICHANDLE_RESULT *pResult);
+
+    void embedGenericHandle(CORINFO_RESOLVED_TOKEN * pResolvedToken,
+                            BOOL                     fEmbedParent,
+                            CORINFO_GENERICHANDLE_RESULT *pResult);
 
     CORINFO_LOOKUP_KIND getLocationOfThisType(CORINFO_METHOD_HANDLE context);
 
@@ -1134,6 +1135,26 @@ public:
 
     MethodDesc * GetMethodForSecurity(CORINFO_METHOD_HANDLE callerHandle);
 
+    // Prepare the information about how to do a runtime lookup of the handle with shared
+    // generic variables.
+    void ComputeRuntimeLookupForSharedGenericToken(DictionaryEntryKind entryKind,
+                                                   CORINFO_RESOLVED_TOKEN * pResolvedToken,
+                                                   CORINFO_RESOLVED_TOKEN * pConstrainedResolvedToken /* for ConstrainedMethodEntrySlot */,
+                                                   MethodDesc * pTemplateMD /* for method-based slots */,
+                                                   CORINFO_LOOKUP *pResultLookup);
+
+    static void ComputeRuntimeLookupForSharedGenericTokenStatic(DictionaryEntryKind entryKind,
+                                                                CORINFO_RESOLVED_TOKEN * pResolvedToken,
+                                                                CORINFO_RESOLVED_TOKEN * pConstrainedResolvedToken /* for ConstrainedMethodEntrySlot */,
+                                                                MethodDesc * pTemplateMD /* for method-based slots */,
+                                                                LoaderAllocator* pAllocator,
+                                                                DWORD numGenericArgs,
+                                                                DictionaryLayout* pDictionaryLayout,
+                                                                DWORD typeDictionaryIndex,
+                                                                CORINFO_LOOKUP *pResultLookup,
+                                                                BOOL fEnableTypeHandleLookupOptimization,
+                                                                BOOL fInstrument);
+
 protected:
     // NGen provides its own modifications to EE-JIT interface. From technical reason it cannot simply inherit 
     // from code:CEEInfo class (because it has dependencies on VM that NGen does not want).
@@ -1168,14 +1189,6 @@ protected:
     // The main entrypoints for module activation tracking
     void ScanToken(Module * pModule, CORINFO_RESOLVED_TOKEN * pResolvedToken, TypeHandle th, MethodDesc * pMD = NULL);
     void ScanTokenForDynamicScope(CORINFO_RESOLVED_TOKEN * pResolvedToken, TypeHandle th, MethodDesc * pMD = NULL);
-
-    // Prepare the information about how to do a runtime lookup of the handle with shared
-    // generic variables.
-    void ComputeRuntimeLookupForSharedGenericToken(DictionaryEntryKind entryKind,
-                                                   CORINFO_RESOLVED_TOKEN * pResolvedToken,
-                                                   CORINFO_RESOLVED_TOKEN * pConstrainedResolvedToken /* for ConstrainedMethodEntrySlot */,
-                                                   MethodDesc * pTemplateMD /* for method-based slots */,
-                                                   CORINFO_LOOKUP *pResultLookup);
 };
 
 
index a6c809d..4f6ac85 100644 (file)
@@ -15,6 +15,8 @@
 
 #include "fcall.h"
 
+#define MAX_UTF8_CHAR_SIZE 3
+
 //!!! Must be kept in sync with ArrayWithOffset class layout.
 struct ArrayWithOffsetData
 {
index 1c7fce9..70714b7 100644 (file)
@@ -139,7 +139,6 @@ BOOL MethodDesc::IsIntrospectionOnly()
 }
 
 /*********************************************************************/
-#ifndef FEATURE_CORECLR
 #ifndef DACCESS_COMPILE
 BOOL NDirectMethodDesc::HasDefaultDllImportSearchPathsAttribute()
 {
@@ -172,7 +171,6 @@ BOOL NDirectMethodDesc::HasDefaultDllImportSearchPathsAttribute()
     return (ndirect.m_wFlags  & kDefaultDllImportSearchPathsStatus) != 0;
 }
 #endif //!DACCESS_COMPILE
-#endif // !FEATURE_CORECLR
 
 //*******************************************************************************
 #ifndef DACCESS_COMPILE
@@ -3111,13 +3109,11 @@ void MethodDesc::Save(DataImage *image)
         // Make sure that the marshaling required flag is computed
         pNMD->MarshalingRequired();
         
-#ifndef FEATURE_CORECLR
         if (!pNMD->IsQCall())
         {
             //Cache DefaultImportDllImportSearchPaths attribute.
             pNMD->HasDefaultDllImportSearchPathsAttribute();
         }
-#endif
 
         image->StoreStructure(pNMD->GetWriteableData(),
                                 sizeof(NDirectWriteableData),
index 0cdba00..5c73827 100644 (file)
@@ -2553,9 +2553,7 @@ public:
         NDirectImportThunkGlue      m_ImportThunkGlue;
 #endif // HAS_NDIRECT_IMPORT_PRECODE
 
-#ifndef FEATURE_CORECLR
         ULONG       m_DefaultDllImportSearchPathsAttributeValue; // DefaultDllImportSearchPathsAttribute is saved.
-#endif
 
         // Various attributes needed at runtime.
         WORD        m_wFlags;
@@ -2588,9 +2586,7 @@ public:
 
         kHasSuppressUnmanagedCodeAccess = 0x0002,
 
-#ifndef FEATURE_CORECLR
         kDefaultDllImportSearchPathsIsCached = 0x0004, // set if we cache attribute value.
-#endif
 
         // kUnusedMask                  = 0x0008
 
@@ -2614,9 +2610,7 @@ public:
 
         kIsQCall                        = 0x1000,
 
-#if !defined(FEATURE_CORECLR)
         kDefaultDllImportSearchPathsStatus = 0x2000, // either method has custom attribute or not.
-#endif
 
         kHasCopyCtorArgs                = 0x4000,
 
@@ -2749,7 +2743,6 @@ public:
         return (ndirect.m_wFlags & kIsQCall) != 0;
     }
 
-#ifndef FEATURE_CORECLR
     BOOL HasDefaultDllImportSearchPathsAttribute();
 
     BOOL IsDefaultDllImportSearchPathsAttributeCached()
@@ -2769,7 +2762,6 @@ public:
         LIMITED_METHOD_CONTRACT;
         return (ndirect.m_DefaultDllImportSearchPathsAttributeValue & 0x2) != 0;
     }
-#endif // !FEATURE_CORECLR
 
     BOOL HasCopyCtorArgs() const
     {
index bc2597f..c620046 100644 (file)
@@ -2918,6 +2918,7 @@ bool MethodTable::ClassifyEightBytesWithNativeLayout(SystemVStructRegisterPassin
             case NFT_STRINGUNI:
             case NFT_STRINGANSI:
             case NFT_ANSICHAR:
+            case NFT_STRINGUTF8:
             case NFT_WINBOOL:
             case NFT_CBOOL:
             case NFT_DELEGATE:
index 25f33c2..ab25452 100644 (file)
@@ -2171,6 +2171,10 @@ MarshalInfo::MarshalInfo(Module* pModule,
                         case NATIVE_TYPE_LPSTR:
                             m_type = builder ? MARSHAL_TYPE_LPSTR_BUFFER : MARSHAL_TYPE_LPSTR;
                             break;
+
+                        case NATIVE_TYPE_LPUTF8STR:
+                            m_type = builder ? MARSHAL_TYPE_UTF8_BUFFER : MARSHAL_TYPE_LPUTF8STR;
+                            break;
     
                         case NATIVE_TYPE_LPTSTR:
                         {
@@ -4463,6 +4467,9 @@ VOID MarshalInfo::MarshalTypeToString(SString& strMarshalType, BOOL fSizeIsSpeci
             case MARSHAL_TYPE_LPSTR:
                 strRetVal = W("LPSTR");
                 break;
+            case MARSHAL_TYPE_LPUTF8STR:
+                strRetVal = W("LPUTF8STR");
+                break;
 #ifdef FEATURE_COMINTEROP
             case MARSHAL_TYPE_ANSIBSTR:
                 strRetVal = W("AnsiBStr");
@@ -4474,6 +4481,9 @@ VOID MarshalInfo::MarshalTypeToString(SString& strMarshalType, BOOL fSizeIsSpeci
             case MARSHAL_TYPE_LPSTR_BUFFER:
                 strRetVal = W("LPSTR buffer");
                 break;
+            case MARSHAL_TYPE_UTF8_BUFFER:
+                strRetVal = W("UTF8 buffer");
+                break;
             case MARSHAL_TYPE_ASANYA:
                 strRetVal = W("AsAnyA");
                 break;
index a64269f..4c27965 100644 (file)
@@ -1674,6 +1674,7 @@ DEFINE_METHOD(FIRSTCHANCE_EVENTARGS,  CTOR,                   .ctor,
 DEFINE_CLASS(ASSEMBLYLOADCONTEXT,  Loader,                AssemblyLoadContext)    
 DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  RESOLVE,          Resolve,                      SM_IntPtr_AssemblyName_RetAssemblyBase)
 DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  RESOLVEUNMANAGEDDLL,          ResolveUnmanagedDll,                      SM_Str_IntPtr_RetIntPtr)
+DEFINE_METHOD(ASSEMBLYLOADCONTEXT,  RESOLVEUSINGEVENT,          ResolveUsingResolvingEvent,                      SM_IntPtr_AssemblyName_RetAssemblyBase)
 
 #endif // defined(FEATURE_HOST_ASSEMBLY_RESOLVER)
 
@@ -2207,6 +2208,15 @@ DEFINE_METHOD(ICASTABLE,        ISINSTANCEOF,       IsInstanceOfInterface, IM_Ru
 DEFINE_METHOD(ICASTABLE,        GETIMPLTYPE,        GetImplType, IM_RuntimeTypeHandle_RetRuntimeTypeHandle)
 #endif // FEATURE_ICASTABLE
 
+DEFINE_CLASS(CUTF8MARSHALER, StubHelpers, UTF8Marshaler)
+DEFINE_METHOD(CUTF8MARSHALER, CONVERT_TO_NATIVE, ConvertToNative, SM_Int_Str_IntPtr_RetIntPtr)
+DEFINE_METHOD(CUTF8MARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, SM_IntPtr_RetStr)
+DEFINE_METHOD(CUTF8MARSHALER, CLEAR_NATIVE, ClearNative, SM_IntPtr_RetVoid)
+
+DEFINE_CLASS(UTF8BUFFERMARSHALER, StubHelpers, UTF8BufferMarshaler)
+DEFINE_METHOD(UTF8BUFFERMARSHALER, CONVERT_TO_NATIVE, ConvertToNative, NoSig)
+DEFINE_METHOD(UTF8BUFFERMARSHALER, CONVERT_TO_MANAGED, ConvertToManaged, NoSig)
+
 #undef DEFINE_CLASS
 #undef DEFINE_METHOD
 #undef DEFINE_FIELD
index 6237e3a..603409b 100644 (file)
@@ -41,6 +41,7 @@ DEFINE_MARSHALER_TYPE(MARSHAL_TYPE_DATE,            DateMarshaler,
  
 DEFINE_MARSHALER_TYPE(MARSHAL_TYPE_LPWSTR,          WSTRMarshaler,                       false)
 DEFINE_MARSHALER_TYPE(MARSHAL_TYPE_LPSTR,           CSTRMarshaler,                       false)
+DEFINE_MARSHALER_TYPE(MARSHAL_TYPE_LPUTF8STR,       CUTF8Marshaler,                      false)
 #ifdef FEATURE_COMINTEROP
 DEFINE_MARSHALER_TYPE(MARSHAL_TYPE_BSTR,            BSTRMarshaler,                       false)
 DEFINE_MARSHALER_TYPE(MARSHAL_TYPE_ANSIBSTR,        AnsiBSTRMarshaler,                   false)
@@ -53,6 +54,7 @@ DEFINE_MARSHALER_TYPE(MARSHAL_TYPE_PCEVENTARGS,     PCEventArgsMarshaler,
 
 DEFINE_MARSHALER_TYPE(MARSHAL_TYPE_LPWSTR_BUFFER,   WSTRBufferMarshaler,                 false)
 DEFINE_MARSHALER_TYPE(MARSHAL_TYPE_LPSTR_BUFFER,    CSTRBufferMarshaler,                 false)
+DEFINE_MARSHALER_TYPE(MARSHAL_TYPE_UTF8_BUFFER,     UTF8BufferMarshaler,                 false)
 
 #if defined(FEATURE_COMINTEROP) || !defined(FEATURE_CORECLR)
 // CoreCLR doesn't have any support for marshalling interface pointers.
index a40b06b..24154a8 100644 (file)
@@ -356,7 +356,7 @@ ModuleRecord::ModuleRecord(unsigned lenName, unsigned lenAsmName)
     wLoadLevel = 0;
     // Extra data
     lenModuleName = (unsigned short) lenName;
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
     lenAssemblyName = (unsigned short) lenAsmName;
     recordID += RoundUp(lenModuleName) + RoundUp(lenAssemblyName);
 #else
@@ -375,7 +375,7 @@ bool RecorderModuleInfo::SetModule(Module * pMod)
     unsigned lenModuleName = (unsigned) strlen(pModuleName);
     simpleName.Set((const BYTE *) pModuleName, lenModuleName); // SBuffer::Set copies over name
 
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
     SString sAssemblyName;
     StackScratchBuffer scratch;
     pMod->GetAssembly()->GetManifestFile()->GetDisplayName(sAssemblyName);
@@ -422,7 +422,7 @@ HRESULT MulticoreJitRecorder::WriteModuleRecord(IStream * pStream, const Recorde
     const void * pModuleName = module.simpleName;
     unsigned lenModuleName = module.simpleName.GetSize();
 
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
     const void * pAssemblyName = module.assemblyName;
     unsigned lenAssemblyName = module.assemblyName.GetSize();
 #else
@@ -442,7 +442,7 @@ HRESULT MulticoreJitRecorder::WriteModuleRecord(IStream * pStream, const Recorde
     {
         hr = WriteString(pModuleName, lenModuleName, pStream);
 
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
         if (SUCCEEDED(hr))
         {
             hr = WriteString(pAssemblyName, lenAssemblyName, pStream);
@@ -1061,7 +1061,7 @@ HRESULT MulticoreJitRecorder::StartProfile(const wchar_t * pRoot, const wchar_t
 
         NewHolder<MulticoreJitProfilePlayer> player(new (nothrow) MulticoreJitProfilePlayer(
             m_pDomain,
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
             m_pBinderContext,
 #else
             NULL,
@@ -1235,7 +1235,7 @@ void MulticoreJitManager::StartProfile(AppDomain * pDomain, ICLRPrivBinder *pBin
     {
         MulticoreJitRecorder * pRecorder = new (nothrow) MulticoreJitRecorder(
             pDomain,
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
             pBinderContext,
 #else
             NULL,
index 954f14d..58a9df7 100644 (file)
@@ -179,7 +179,7 @@ public:
     unsigned short flags;
     unsigned short wLoadLevel;
     unsigned short lenModuleName;
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
     unsigned short lenAssemblyName;
 #endif
 
@@ -201,7 +201,7 @@ public:
         return (const char *) (this + 1); // after this record
     }
 
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
     unsigned AssemblyNameLen() const
     {
         LIMITED_METHOD_CONTRACT;
@@ -250,7 +250,7 @@ friend class MulticoreJitRecorder;
 
 private:
     ADID                               m_DomainID;
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
     ICLRPrivBinder * m_pBinderContext;
 #endif
     LONG                               m_nMySession;
@@ -300,7 +300,7 @@ private:
 
     HRESULT ReadCheckFile(const wchar_t * pFileName);
 
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
     DomainAssembly * LoadAssembly(SString & assemblyName);
 #endif
 
@@ -344,7 +344,7 @@ class MulticoreJitRecorder
 {
 private:
     AppDomain               * m_pDomain;            // AutoStartProfile could be called from SystemDomain
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
     ICLRPrivBinder * m_pBinderContext;
 #endif
     SString                   m_fullFileName;
@@ -393,7 +393,7 @@ public:
         LIMITED_METHOD_CONTRACT;
 
         m_pDomain           = pDomain;
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
         m_pBinderContext    = pBinderContext;
 #endif
         m_JitInfoCount      = 0;
index 44a1f4f..0c69fdc 100644 (file)
@@ -373,7 +373,7 @@ MulticoreJitProfilePlayer::MulticoreJitProfilePlayer(AppDomain * pDomain, ICLRPr
     LIMITED_METHOD_CONTRACT;
 
     m_DomainID           = pDomain->GetId();
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
     m_pBinderContext     = pBinderContext;
 #endif
     m_nMySession         = nSession;
@@ -464,7 +464,7 @@ bool MulticoreJitManager::IsSupportedModule(Module * pModule, bool fMethodJit, b
         return false;
     }
 
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
     if (pFile->GetPath().IsEmpty()) // Ignore in-memory modules
     {
         return false;
@@ -550,7 +550,7 @@ bool MulticoreJitProfilePlayer::CompileMethodDesc(Module * pModule, MethodDesc *
 
         m_stats.m_nTryCompiling ++;
 
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
         // Reset the flag to allow managed code to be called in multicore JIT background thread from this routine
         ThreadStateNCStackHolder holder(-1, Thread::TSNC_CallingManagedCodeDisabled);
 #endif
@@ -886,7 +886,7 @@ bool MulticoreJitProfilePlayer::HandleModuleDependency(unsigned jitInfo)
 
         PlayerModuleInfo & mod = m_pModules[moduleTo];
 
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
         // Load the module if necessary.
         if (!mod.m_pModule)
         {
@@ -941,7 +941,7 @@ bool MulticoreJitProfilePlayer::HandleModuleDependency(unsigned jitInfo)
     return true;
 }
 
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
 DomainAssembly * MulticoreJitProfilePlayer::LoadAssembly(SString & assemblyName)
 {
     STANDARD_VM_CONTRACT;
@@ -1093,7 +1093,7 @@ HRESULT MulticoreJitProfilePlayer::HandleMethodRecord(unsigned * buffer, int cou
 
                             PlayerModuleInfo & mod = m_pModules[inst >> 24];
 
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
                             _ASSERTE(mod.IsModuleLoaded());
 #else
                             _ASSERTE(mod.IsModuleLoaded() && ! mod.IsLowerLevel());
@@ -1313,7 +1313,7 @@ HRESULT MulticoreJitProfilePlayer::PlayProfile()
                 const ModuleRecord * pRec = (const ModuleRecord * ) pBuffer;
 
                 if (((unsigned)(pRec->lenModuleName
-#if defined(FEATURE_CORECLR) && defined(FEATURE_HOSTED_BINDER)
+#if defined(FEATURE_CORECLR)
                     + pRec->lenAssemblyName
 #endif
                     ) > (rcdLen - sizeof(ModuleRecord))) || 
index 960d2ae..f5facc7 100644 (file)
@@ -66,7 +66,7 @@ DEFINE_NFT(NFT_DATETIMEOFFSET,              sizeof(INT64),          true)
 DEFINE_NFT(NFT_SYSTEMTYPE,                  sizeof(TypeNameNative), true)  // System.Type -> Windows.UI.Xaml.Interop.TypeName
 DEFINE_NFT(NFT_WINDOWSFOUNDATIONHRESULT,    sizeof(int),            true)  // Windows.Foundation.HResult is marshaled to System.Exception.
 #endif // FEATURE_COMINTEROP
-
+DEFINE_NFT(NFT_STRINGUTF8,                  sizeof(LPVOID),         false)
 DEFINE_NFT(NFT_ILLEGAL,                     1,                      true)
 
 #ifdef FEATURE_COMINTEROP
index f9e1be1..2da0922 100644 (file)
@@ -1060,11 +1060,7 @@ typedef PTR_StringObject STRINGREF;
  *
  * Special String implementation for performance.   
  *
- *   m_ArrayLength  - Length of buffer (m_Characters) in number of WCHARs
- *   m_StringLength - Length of string in number of WCHARs, may be smaller
- *                    than the m_ArrayLength implying that there is extra
- *                    space at the end. The high two bits of this field are used
- *                    to indicate if the String has characters higher than 0x7F
+ *   m_StringLength - Length of string in number of WCHARs
  *   m_Characters   - The string buffer
  *
  */
@@ -2075,7 +2071,10 @@ private:
 #ifdef FEATURE_REMOTING    
     OBJECTREF     m_ExposedContext;
 #endif    
-#ifndef FEATURE_CORECLR
+#ifdef FEATURE_CORECLR
+    OBJECTREF     m_ExecutionContext;
+    OBJECTREF     m_SynchronizationContext;
+#else
     EXECUTIONCONTEXTREF     m_ExecutionContext;
 #endif
     OBJECTREF     m_Name;
index 1537ef9..123c078 100644 (file)
@@ -55,7 +55,7 @@ SVAL_IMPL_INIT(DWORD, PEFile, s_NGENDebugFlags, 0);
 
 #include "sha1.h"
 
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_FUSION)
+#if defined(FEATURE_FUSION)
 #include "clrprivbinderfusion.h"
 #include "clrprivbinderappx.h"
 #include "clrprivbinderloadfile.h" 
@@ -98,9 +98,7 @@ PEFile::PEFile(PEImage *identity, BOOL fCheckAuthenticodeSignature/*=TRUE*/) :
     ,m_pSecurityManager(NULL)
     ,m_securityManagerLock(CrstPEFileSecurityManager)
 #endif // FEATURE_CAS_POLICY
-#ifdef FEATURE_HOSTED_BINDER
     ,m_pHostAssembly(nullptr)
-#endif // FEATURE_HOSTED_BINDER
 {
     CONTRACTL
     {
@@ -176,12 +174,10 @@ PEFile::~PEFile()
         CoTaskMemFree(m_certificate);
 #endif // FEATURE_CAS_POLICY
 
-#ifdef FEATURE_HOSTED_BINDER
     if (m_pHostAssembly != NULL)
     {
         m_pHostAssembly->Release();
     }
-#endif
 }
 
 #ifndef  DACCESS_COMPILE
@@ -746,7 +742,6 @@ BOOL PEFile::Equals(PEFile *pFile)
         return FALSE;
     }
 
-#ifdef FEATURE_HOSTED_BINDER
     // Different host assemblies cannot be equal unless they are associated with the same host binder
     // It's ok if only one has a host binder because multiple threads can race to load the same assembly
     // and that may cause temporary candidate PEAssembly objects that never get bound to a host assembly
@@ -765,8 +760,6 @@ BOOL PEFile::Equals(PEFile *pFile)
             return FALSE;
 
     }
-#endif // FEATURE_HOSTED_BINDER
-
 
     // Same identity is equal
     if (m_identity != NULL && pFile->m_identity != NULL
@@ -2977,22 +2970,14 @@ PEAssembly::PEAssembly(
                 IMetaDataEmit* pEmit, 
                 PEFile *creator, 
                 BOOL system,
-                BOOL introspectionOnly/*=FALSE*/
-#ifdef FEATURE_HOSTED_BINDER
-                ,
+                BOOL introspectionOnly/*=FALSE*/,
                 PEImage * pPEImageIL /*= NULL*/,
                 PEImage * pPEImageNI /*= NULL*/,
-                ICLRPrivAssembly * pHostAssembly /*= NULL*/
-#endif
-                )
+                ICLRPrivAssembly * pHostAssembly /*= NULL*/)
 
   : PEFile(pBindResultInfo ? (pBindResultInfo->GetPEImage() ? pBindResultInfo->GetPEImage() : 
                                                               (pBindResultInfo->HasNativeImage() ? pBindResultInfo->GetNativeImage() : NULL)
-#ifdef FEATURE_HOSTED_BINDER
                               ): pPEImageIL? pPEImageIL:(pPEImageNI? pPEImageNI:NULL), FALSE),
-#else
-                              ): NULL, FALSE),
-#endif
     m_creator(clr::SafeAddRef(creator)),
     m_bIsFromGAC(FALSE),
     m_bIsOnTpaList(FALSE)
@@ -3007,9 +2992,7 @@ PEAssembly::PEAssembly(
         CONSTRUCTOR_CHECK;
         PRECONDITION(CheckPointer(pEmit, NULL_OK));
         PRECONDITION(CheckPointer(creator, NULL_OK));
-#ifdef FEATURE_HOSTED_BINDER
         PRECONDITION(pBindResultInfo == NULL || (pPEImageIL == NULL && pPEImageNI == NULL));
-#endif
         STANDARD_VM_CHECK;
     }
     CONTRACTL_END;
@@ -3028,12 +3011,10 @@ PEAssembly::PEAssembly(
 
     // We check the precondition above that either pBindResultInfo is null or both pPEImageIL and pPEImageNI are,
     // so we'll only get a max of one native image passed in.
-#ifdef FEATURE_HOSTED_BINDER
     if (pPEImageNI != NULL)
     {
         SetNativeImage(pPEImageNI);
     }
-#endif
 
 #ifdef FEATURE_PREJIT
     if (pBindResultInfo && pBindResultInfo->HasNativeImage())
@@ -3081,7 +3062,6 @@ PEAssembly::PEAssembly(
         ThrowHR(COR_E_BADIMAGEFORMAT, BFA_EMPTY_ASSEMDEF_NAME);
     }
 
-#ifdef FEATURE_HOSTED_BINDER
     // Set the host assembly and binding context as the AssemblySpec initialization
     // for CoreCLR will expect to have it set.
     if (pHostAssembly != nullptr)
@@ -3095,7 +3075,6 @@ PEAssembly::PEAssembly(
         _ASSERTE(pHostAssembly == nullptr);
         pBindResultInfo->GetBindAssembly(&m_pHostAssembly);
     }
-#endif // FEATURE_HOSTED_BINDER        
     
 #if _DEBUG
     GetCodeBaseOrName(m_debugName);
@@ -3114,8 +3093,6 @@ PEAssembly::PEAssembly(
 #endif // FEATURE_FUSION
 
 
-#if defined(FEATURE_HOSTED_BINDER)
-
 #ifdef FEATURE_FUSION
 
 PEAssembly *PEAssembly::Open(
@@ -3190,9 +3167,6 @@ PEAssembly *PEAssembly::Open(
 
 #endif // FEATURE_FUSION
 
-#endif // FEATURE_HOSTED_BINDER 
-
-
 PEAssembly::~PEAssembly()
 {
     CONTRACTL
@@ -3638,7 +3612,7 @@ PEAssembly *PEAssembly::DoOpenMemory(
     if (!image->CheckILFormat())
         ThrowHR(COR_E_BADIMAGEFORMAT, BFA_BAD_IL);
 
-#if defined(FEATURE_HOSTED_BINDER) && !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_CORECLR)
     if(pBinderToUse != NULL && !isIntrospectionOnly)
     {
         ReleaseHolder<ICLRPrivAssembly> pAsm;
@@ -3649,7 +3623,7 @@ PEAssembly *PEAssembly::DoOpenMemory(
         _ASSERTE(pFile);
         RETURN pFile;
     }
-#endif //  FEATURE_HOSTED_BINDER && !FEATURE_CORECLR
+#endif // !FEATURE_CORECLR
 
 #ifdef FEATURE_FUSION    
     RETURN new PEAssembly(image, NULL, NULL, NULL, NULL, NULL, NULL, pParentAssembly, FALSE, isIntrospectionOnly);
@@ -5159,7 +5133,6 @@ TADDR PEFile::GetMDInternalRWAddress()
 }
 #endif
 
-#if defined(FEATURE_HOSTED_BINDER)
 // Returns the ICLRPrivBinder* instance associated with the PEFile
 PTR_ICLRPrivBinder PEFile::GetBindingContext()
 {
@@ -5179,5 +5152,3 @@ PTR_ICLRPrivBinder PEFile::GetBindingContext()
     
     return pBindingContext;
 }
-#endif // FEATURE_HOSTED_BINDER
-
index 5cf5dfb..5cefd5d 100644 (file)
@@ -40,9 +40,7 @@
 #include "corperm.h"
 #include "eventtrace.h"
 
-#ifdef FEATURE_HOSTED_BINDER
 #include "clrprivbinderutil.h"
-#endif
 
 // --------------------------------------------------------------------------------
 // Forward declared classes
@@ -643,7 +641,6 @@ public:
     {
         LIMITED_METHOD_CONTRACT;
 
-#ifdef FEATURE_HOSTED_BINDER
         DWORD binderFlags = BINDER_NONE;
 
         HRESULT hr = E_FAIL;
@@ -651,9 +648,6 @@ public:
             hr = GetHostAssembly()->GetBinderFlags(&binderFlags);
 
         return hr == S_OK ? binderFlags & BINDER_DESIGNER_BINDING_CONTEXT : FALSE;
-#else
-        return FALSE;
-#endif
     }
 
     LPCWSTR GetPathForErrorMessages();
@@ -662,12 +656,9 @@ public:
     void MarkNativeImageInvalidIfOwned();
     void ConvertMetadataToRWForEnC();
 
-#if defined(FEATURE_VERSIONING) || defined(FEATURE_HOSTED_BINDER)
 protected:
     PTR_ICLRPrivAssembly m_pHostAssembly;
-#endif
 
-#ifdef FEATURE_HOSTED_BINDER
 protected:
 
     friend class CLRPrivBinderFusion;
@@ -693,7 +684,6 @@ public:
 
     bool CanUseWithBindingCache()
     { LIMITED_METHOD_CONTRACT; return !HasHostAssembly(); }
-#endif // FEATURE_HOSTED_BINDER
 };  // class PEFile
 
 
@@ -712,7 +702,6 @@ class PEAssembly : public PEFile
     // Public API
     // ------------------------------------------------------------
 
-#if defined(FEATURE_HOSTED_BINDER)
 #if !defined(FEATURE_CORECLR)
     static PEAssembly * Open(
         PEAssembly *       pParentAssembly,
@@ -734,7 +723,6 @@ class PEAssembly : public PEFile
         ICLRPrivAssembly * pHostAssembly, 
         BOOL               fIsIntrospectionOnly = FALSE);
 #endif //!FEATURE_CORECLR
-#endif //FEATURE_HOSTED_BINDER
 
     // This opens the canonical mscorlib.dll
 #ifdef FEATURE_FUSION
@@ -981,13 +969,10 @@ class PEAssembly : public PEFile
         IMetaDataEmit *pEmit,
         PEFile *creator, 
         BOOL system, 
-        BOOL introspectionOnly = FALSE
-#ifdef FEATURE_HOSTED_BINDER
-        ,
+        BOOL introspectionOnly = FALSE,
         PEImage * pPEImageIL = NULL,
         PEImage * pPEImageNI = NULL,
         ICLRPrivAssembly * pHostAssembly = NULL
-#endif
         );
 #endif
     virtual ~PEAssembly();
@@ -1078,17 +1063,12 @@ class PEAssembly : public PEFile
     // Indicates if the assembly can be cached in a binding cache such as AssemblySpecBindingCache.
     inline bool CanUseWithBindingCache()
     {
-#if defined(FEATURE_HOSTED_BINDER)
             STATIC_CONTRACT_WRAPPER;
 #if !defined(FEATURE_APPX_BINDER)
             return (HasBindableIdentity());
 #else
             return (PEFile::CanUseWithBindingCache() && HasBindableIdentity());
 #endif // FEATURE_CORECLR
-#else
-            STATIC_CONTRACT_LIMITED_METHOD;
-            return true;
-#endif // FEATURE_HOSTED_BINDER
     }
 };
 
index cb1dd50..583c5e3 100644 (file)
@@ -2102,7 +2102,7 @@ HRESULT RuntimeGetILFingerprintForPath(LPCWSTR path, IILFingerprint **ppFingerpr
 #endif //!DACCESS_COMPILE
 #endif //FEATURE_FUSION
 
-#if defined(FEATURE_HOSTED_BINDER) && !defined(DACCESS_COMPILE)
+#if !defined(DACCESS_COMPILE)
 PEImage * PEImage::OpenImage(
     ICLRPrivResource * pIResource,
     MDInternalImportFlags flags)
index 1f6b4ea..12a4dd7 100644 (file)
@@ -133,13 +133,11 @@ public:
 
     };
 
-#ifdef FEATURE_HOSTED_BINDER
     // pUnkResource must be one of the ICLRPrivResource* interfaces defined in CLRPrivBinding.IDL.
     // pUnkResource will be queried for each of these to find a match and 
     static PEImage * OpenImage(
         ICLRPrivResource * pIResource,
         MDInternalImportFlags flags = MDInternalImport_Default);
-#endif
 
     static PTR_PEImage FindById(UINT64 uStreamAsmId, DWORD dwModuleId);
     static PTR_PEImage FindByPath(LPCWSTR pPath);    
index a35b421..1ae7b39 100644 (file)
@@ -2314,6 +2314,7 @@ PCODE DynamicHelperFixup(TransitionBlock * pTransitionBlock, TADDR * pCell, DWOR
     TypeHandle th;
     MethodDesc * pMD = NULL;
     FieldDesc * pFD = NULL;
+    CORINFO_GENERICHANDLE_RESULT embedInfo;
 
     switch (kind)
     {
@@ -2327,6 +2328,7 @@ PCODE DynamicHelperFixup(TransitionBlock * pTransitionBlock, TADDR * pCell, DWOR
     case ENCODE_NEW_ARRAY_HELPER:
         th = ZapSig::DecodeType(pModule, pInfoModule, pBlob);
         break;
+
     case ENCODE_THREAD_STATIC_BASE_NONGC_HELPER:
     case ENCODE_THREAD_STATIC_BASE_GC_HELPER:
     case ENCODE_STATIC_BASE_NONGC_HELPER:
@@ -2338,27 +2340,122 @@ PCODE DynamicHelperFixup(TransitionBlock * pTransitionBlock, TADDR * pCell, DWOR
         th.AsMethodTable()->CheckRunClassInitThrowing();
         fReliable = true;
         break;
+
     case ENCODE_FIELD_ADDRESS:
         pFD = ZapSig::DecodeField(pModule, pInfoModule, pBlob, &th);
         _ASSERTE(pFD->IsStatic());
         goto Statics;
+
     case ENCODE_VIRTUAL_ENTRY:
     // case ENCODE_VIRTUAL_ENTRY_DEF_TOKEN:
     // case ENCODE_VIRTUAL_ENTRY_REF_TOKEN:
     // case ENCODE_VIRTUAL_ENTRY_SLOT:
         fReliable = true;
     case ENCODE_DELEGATE_CTOR:
-        pMD = ZapSig::DecodeMethod(pModule, pInfoModule, pBlob, &th);
-        if (pMD->RequiresInstArg())
         {
-            pMD = MethodDesc::FindOrCreateAssociatedMethodDesc(pMD,
-                th.AsMethodTable(),
-                FALSE /* forceBoxedEntryPoint */,
-                pMD->GetMethodInstantiation(),
-                FALSE /* allowInstParam */);
+            pMD = ZapSig::DecodeMethod(pModule, pInfoModule, pBlob, &th);
+            if (pMD->RequiresInstArg())
+            {
+                pMD = MethodDesc::FindOrCreateAssociatedMethodDesc(pMD,
+                    th.AsMethodTable(),
+                    FALSE /* forceBoxedEntryPoint */,
+                    pMD->GetMethodInstantiation(),
+                    FALSE /* allowInstParam */);
+            }
+            pMD->EnsureActive();
+        }
+        break;
+
+    case ENCODE_DICTIONARY_LOOKUP_THISOBJ:
+    case ENCODE_DICTIONARY_LOOKUP_TYPE:
+    case ENCODE_DICTIONARY_LOOKUP_METHOD:
+        {
+            // Generic context is the first argument on the pTransitionBlock (either a methodtable or a methoddesc pointer)
+            TADDR genericContextPtr = *(TADDR*)(((TADDR)pTransitionBlock + TransitionBlock::GetOffsetOfArgumentRegisters()));
+
+            DWORD numGenericArgs = 0;
+            MethodTable* pContextMT = NULL;
+            MethodDesc* pContextMD = NULL;
+            DictionaryLayout* pDictionaryLayout = NULL;
+
+            if (kind == ENCODE_DICTIONARY_LOOKUP_METHOD)
+            {
+                pContextMD = (MethodDesc*)genericContextPtr;
+                numGenericArgs = pContextMD->GetNumGenericMethodArgs();
+                pDictionaryLayout = pContextMD->GetDictionaryLayout();
+                embedInfo.lookup.lookupKind.runtimeLookupKind = CORINFO_LOOKUP_METHODPARAM;
+                embedInfo.lookup.runtimeLookup.helper = CORINFO_HELP_RUNTIMEHANDLE_METHOD;
+            }
+            else
+            {
+                pContextMT = (MethodTable*)genericContextPtr;
+
+                if (kind == ENCODE_DICTIONARY_LOOKUP_THISOBJ)
+                {
+                    TypeHandle contextTypeHandle = ZapSig::DecodeType(pModule, pInfoModule, pBlob);
+
+                    SigPointer p(pBlob);
+                    p.SkipExactlyOne();
+                    pBlob = p.GetPtr();
+
+                    pContextMT = pContextMT->GetMethodTableMatchingParentClass(contextTypeHandle.AsMethodTable());
+                    embedInfo.lookup.lookupKind.runtimeLookupKind = CORINFO_LOOKUP_THISOBJ;
+                }
+                else
+                {
+                    embedInfo.lookup.lookupKind.runtimeLookupKind = CORINFO_LOOKUP_CLASSPARAM;
+                }
+
+                numGenericArgs = pContextMT->GetNumGenericArgs();
+                pDictionaryLayout = pContextMT->GetClass()->GetDictionaryLayout();
+                embedInfo.lookup.runtimeLookup.helper = CORINFO_HELP_RUNTIMEHANDLE_CLASS;
+            }
+
+            CORINFO_RESOLVED_TOKEN resolvedToken;
+            INDEBUG(memset(&resolvedToken, 0xCC, sizeof(resolvedToken)));
+            resolvedToken.tokenType = CORINFO_TOKENKIND_Ldtoken;        // Reasonable default value to use that works
+            resolvedToken.tokenScope = (CORINFO_MODULE_HANDLE)pModule;
+            resolvedToken.pMethodSpec = resolvedToken.pTypeSpec = NULL;
+            resolvedToken.cbMethodSpec = resolvedToken.cbTypeSpec = 0;
+        
+            DictionaryEntryKind entryKind = EmptySlot;
+            CORCOMPILE_FIXUP_BLOB_KIND signatureKind = (CORCOMPILE_FIXUP_BLOB_KIND)CorSigUncompressData(pBlob);
+
+            switch (signatureKind)
+            {
+            case ENCODE_TYPE_HANDLE:
+                {
+                    entryKind = TypeHandleSlot;
+                    resolvedToken.cbTypeSpec = -1;
+                    resolvedToken.pTypeSpec = pBlob;
+                }
+                break;
+
+            // TODO: Support for the rest of the dictionary signature kinds
+
+            default:
+                _ASSERTE(!"Unexpected CORCOMPILE_FIXUP_BLOB_KIND");
+                ThrowHR(COR_E_BADIMAGEFORMAT);
+            }
+
+            CEEInfo::ComputeRuntimeLookupForSharedGenericTokenStatic(
+                entryKind,
+                &resolvedToken,
+                NULL,                   // pConstrainedResolvedToken for ConstrainedMethodEntrySlot
+                NULL,                   // pTemplateMD for method-based slots
+                pModule->GetLoaderAllocator(),
+                numGenericArgs,
+                pDictionaryLayout,
+                pContextMT == NULL ? 0 : pContextMT->GetNumDicts(),
+                &embedInfo.lookup,
+                FALSE,                  // fEnableTypeHandleLookupOptimization,
+                FALSE                   // fInstrument
+                );
+
+            _ASSERTE(embedInfo.lookup.lookupKind.needsRuntimeLookup);
         }
-        pMD->EnsureActive();
         break;
+
     default:
         _ASSERTE(!"Unexpected CORCOMPILE_FIXUP_BLOB_KIND");
         ThrowHR(COR_E_BADIMAGEFORMAT);
@@ -2568,6 +2665,14 @@ PCODE DynamicHelperFixup(TransitionBlock * pTransitionBlock, TADDR * pCell, DWOR
             }
             break;
 
+        case ENCODE_DICTIONARY_LOOKUP_THISOBJ:
+        case ENCODE_DICTIONARY_LOOKUP_TYPE:
+        case ENCODE_DICTIONARY_LOOKUP_METHOD:
+            {
+                pHelper = DynamicHelpers::CreateDictionaryLookupHelper(pModule->GetLoaderAllocator(), &embedInfo.lookup.runtimeLookup);
+            }
+            break;
+
         default:
             UNREACHABLE();
         }
index ea49282..3636a8e 100644 (file)
@@ -85,7 +85,7 @@ BOOL ReadyToRunInfo::TryLookupTypeTokenFromName(NameHandle *pName, mdToken * pFo
     CONTRACTL
     {
         GC_NOTRIGGER;
-        NOTHROW;
+        THROWS;
         SO_INTOLERANT;
         SUPPORTS_DAC;
         PRECONDITION(!m_availableTypesHashtable.IsNull());
index f2a7a1e..24bdae8 100644 (file)
@@ -126,6 +126,8 @@ private:
 
 class DynamicHelpers
 {
+private:
+    static void EmitHelperWithArg(BYTE*& pCode, LoaderAllocator * pAllocator, TADDR arg, PCODE target);
 public:
     static PCODE CreateHelper(LoaderAllocator * pAllocator, TADDR arg, PCODE target);
     static PCODE CreateHelperWithArg(LoaderAllocator * pAllocator, TADDR arg, PCODE target);
@@ -136,6 +138,7 @@ public:
     static PCODE CreateReturnIndirConst(LoaderAllocator * pAllocator, TADDR arg, INT8 offset);
     static PCODE CreateHelperWithTwoArgs(LoaderAllocator * pAllocator, TADDR arg, PCODE target);
     static PCODE CreateHelperWithTwoArgs(LoaderAllocator * pAllocator, TADDR arg, TADDR arg2, PCODE target);
+    static PCODE CreateDictionaryLookupHelper(LoaderAllocator * pAllocator, CORINFO_RUNTIME_LOOKUP * pLookup);
 };
 
 #endif // _READYTORUNINFO_H_
index d0f36cb..61da49e 100644 (file)
@@ -1880,10 +1880,9 @@ void QCALLTYPE RuntimeTypeHandle::GetTypeByNameUsingCARules(LPCWSTR pwzClassName
 
 void QCALLTYPE RuntimeTypeHandle::GetTypeByName(LPCWSTR pwzClassName, BOOL bThrowOnError, BOOL bIgnoreCase, BOOL bReflectionOnly,
                                                 QCall::StackCrawlMarkHandle pStackMark, 
-#ifdef FEATURE_HOSTED_BINDER
                                                 ICLRPrivBinder * pPrivHostBinder,
-#endif
-                                                BOOL bLoadTypeFromPartialNameHack, QCall::ObjectHandleOnStack retType)
+                                                BOOL bLoadTypeFromPartialNameHack, QCall::ObjectHandleOnStack retType,
+                                                QCall::ObjectHandleOnStack keepAlive)
 {
     QCALL_CONTRACT;
     
@@ -1894,32 +1893,16 @@ void QCALLTYPE RuntimeTypeHandle::GetTypeByName(LPCWSTR pwzClassName, BOOL bThro
     if (!pwzClassName)
             COMPlusThrowArgumentNull(W("className"),W("ArgumentNull_String"));
 
-    GCX_COOP();
     {
-        OBJECTREF keepAlive = NULL;
-
-        // BEGIN_QCALL/END_QCALL define try/catch scopes for potential exceptions thrown when bThrowOnError is enabled.
-        // Originally, in case of an exception the GCFrame was removed from the Thread's Frame chain in the catch block, in UnwindAndContinueRethrowHelperInsideCatch.
-        // However, the catch block declared some local variables that overlapped the location of the now out of scope GCFrame and OBJECTREF, therefore corrupting
-        // those values. Having the GCX_COOP/GCX_PREEMP switching GC modes, allowed a situation where in case of an exception, the thread would wait for a GC to complete
-        // while still having the GCFrame in the Thread's Frame chain, but with a corrupt OBJECTREF due to stack location reuse in the catch block.
-        // The solution is to force the removal of GCFrame (and the Frames above) from the Thread's Frame chain before entering the catch block, at the time of 
-        // FrameWithCookieHolder's destruction.
-        GCPROTECT_HOLDER(keepAlive);
-
-        {
-            GCX_PREEMP();
-            typeHandle = TypeName::GetTypeManaged(pwzClassName, NULL, bThrowOnError, bIgnoreCase, bReflectionOnly, /*bProhibitAsmQualifiedName =*/ FALSE, pStackMark, bLoadTypeFromPartialNameHack, &keepAlive
-#ifdef FEATURE_HOSTED_BINDER
-                                                  , pPrivHostBinder
-#endif
-                );
-        }
+        typeHandle = TypeName::GetTypeManaged(pwzClassName, NULL, bThrowOnError, bIgnoreCase, bReflectionOnly, /*bProhibitAsmQualifiedName =*/ FALSE, pStackMark,
+                                              bLoadTypeFromPartialNameHack, (OBJECTREF*)keepAlive.m_ppObject,
+                                              pPrivHostBinder);
+    }
 
-        if (!typeHandle.IsNull())
-        {
-            retType.Set(typeHandle.GetManagedClassObject());
-        }
+    if (!typeHandle.IsNull())
+    {
+        GCX_COOP();
+        retType.Set(typeHandle.GetManagedClassObject());
     }
 
     END_QCALL;
index 73aa58b..afe1902 100644 (file)
@@ -180,10 +180,9 @@ public:
     static
     void QCALLTYPE GetTypeByName(LPCWSTR pwzClassName, BOOL bThrowOnError, BOOL bIgnoreCase, BOOL bReflectionOnly,
                                  QCall::StackCrawlMarkHandle pStackMark, 
-#ifdef FEATURE_HOSTED_BINDER
                                  ICLRPrivBinder * pPrivHostBinder,
-#endif
-                                 BOOL bLoadTypeFromPartialNameHack, QCall::ObjectHandleOnStack retType);
+                                 BOOL bLoadTypeFromPartialNameHack, QCall::ObjectHandleOnStack retType,
+                                 QCall::ObjectHandleOnStack keepAlive);
 
     static FCDECL1(AssemblyBaseObject*, GetAssembly, ReflectClassBaseObject *pType);
     static FCDECL1(ReflectClassBaseObject*, GetBaseType, ReflectClassBaseObject* pType);
index 0bc7ba1..1d7283e 100644 (file)
@@ -608,16 +608,18 @@ void Thread::ChooseThreadCPUGroupAffinity()
     }
     CONTRACTL_END;
 
-#if !defined(FEATURE_CORECLR)
+#ifndef FEATURE_PAL
     if (!CPUGroupInfo::CanEnableGCCPUGroups() || !CPUGroupInfo::CanEnableThreadUseAllCpuGroups()) 
          return;
 
+#ifndef FEATURE_CORECLR
     // We only handle the non-hosted case here. If CLR is hosted, the hosting 
     // process controls the physical OS Threads. If CLR is not hosted, we can 
     // set thread group affinity on OS threads directly.
     HostComHolder<IHostTask> pHostTask (GetHostTaskWithAddRef());
     if (pHostTask != NULL)
         return;
+#endif //!FEATURE_CORECLR
 
     //Borrow the ThreadStore Lock here: Lock ThreadStore before distributing threads
     ThreadStoreLockHolder TSLockHolder(TRUE);
@@ -634,7 +636,7 @@ void Thread::ChooseThreadCPUGroupAffinity()
     CPUGroupInfo::SetThreadGroupAffinity(GetThreadHandle(), &groupAffinity, NULL);
     m_wCPUGroup = groupAffinity.Group;
     m_pAffinityMask = groupAffinity.Mask;
-#endif
+#endif // !FEATURE_PAL
 }
 
 void Thread::ClearThreadCPUGroupAffinity()
@@ -646,16 +648,18 @@ void Thread::ClearThreadCPUGroupAffinity()
     }
     CONTRACTL_END;
 
-#if !defined(FEATURE_CORECLR)
+#ifndef FEATURE_PAL
     if (!CPUGroupInfo::CanEnableGCCPUGroups() || !CPUGroupInfo::CanEnableThreadUseAllCpuGroups()) 
          return;
 
+#ifndef FEATURE_CORECLR
     // We only handle the non-hosted case here. If CLR is hosted, the hosting 
     // process controls the physical OS Threads. If CLR is not hosted, we can 
     // set thread group affinity on OS threads directly.
     HostComHolder<IHostTask> pHostTask (GetHostTaskWithAddRef());
     if (pHostTask != NULL)
         return;
+#endif //!FEATURE_CORECLR
 
     ThreadStoreLockHolder TSLockHolder(TRUE);
 
@@ -670,7 +674,7 @@ void Thread::ClearThreadCPUGroupAffinity()
 
     m_wCPUGroup = 0;
     m_pAffinityMask = 0;
-#endif 
+#endif // !FEATURE_PAL
 }
 
 DWORD Thread::StartThread()
index 8b07a09..e704c2b 100644 (file)
@@ -5546,11 +5546,11 @@ public:
     // object associated with them (e.g., the bgc thread).
     void SetGCSpecial(bool fGCSpecial);
 
-#if !defined(FEATURE_CORECLR)
+#ifndef FEATURE_PAL
 private:
     WORD m_wCPUGroup;
     DWORD_PTR m_pAffinityMask;
-#endif
+#endif // !FEATURE_PAL
 
 public:
     void ChooseThreadCPUGroupAffinity();
index 9f3f3cd..c661451 100644 (file)
@@ -14,6 +14,8 @@
 //
 inline static int ComputeNameHashCode(LPCUTF8 src)
 {
+    LIMITED_METHOD_CONTRACT;
+
     if (src == NULL || *src == '\0')
         return 0;
 
@@ -39,6 +41,8 @@ inline static int ComputeNameHashCode(LPCUTF8 src)
 
 inline static int ComputeNameHashCode(LPCUTF8 pszNamespace, LPCUTF8 pszName)
 {
+    LIMITED_METHOD_CONTRACT;
+
     // DIFFERENT FROM CORERT: CoreRT hashes the full name as one string ("namespace.name"),
     // as the full name is already available. In CoreCLR we normally only have separate
     // strings for namespace and name, thus we hash them separately.
@@ -47,6 +51,8 @@ inline static int ComputeNameHashCode(LPCUTF8 pszNamespace, LPCUTF8 pszName)
 
 inline static int ComputeArrayTypeHashCode(int elementTypeHashcode, int rank)
 {
+    LIMITED_METHOD_CONTRACT;
+
     // DIFFERENT FROM CORERT: This is much simplified compared to CoreRT, to avoid converting.rank to string.
     // For single-dimensinal array, the result is identical to CoreRT.
     int hashCode = 0xd5313556 + rank;
@@ -59,22 +65,30 @@ inline static int ComputeArrayTypeHashCode(int elementTypeHashcode, int rank)
 
 inline static int ComputePointerTypeHashCode(int pointeeTypeHashcode)
 {
+    LIMITED_METHOD_CONTRACT;
+
     return (pointeeTypeHashcode + _rotl(pointeeTypeHashcode, 5)) ^ 0x12D0;
 }
 
 inline static int ComputeByrefTypeHashCode(int parameterTypeHashcode)
 {
+    LIMITED_METHOD_CONTRACT;
+
     return (parameterTypeHashcode + _rotl(parameterTypeHashcode, 7)) ^ 0x4C85;
 }
 
 inline static int ComputeNestedTypeHashCode(int enclosingTypeHashcode, int nestedTypeNameHash)
 {
+    LIMITED_METHOD_CONTRACT;
+
     return (enclosingTypeHashcode + _rotl(enclosingTypeHashcode, 11)) ^ nestedTypeNameHash;
 }
 
 template <typename TA, typename TB>
 inline static int ComputeGenericInstanceHashCode(int definitionHashcode, int arity, const TA& genericTypeArguments, int (*getHashCode)(TB))
 {
+    LIMITED_METHOD_CONTRACT;
+
     int hashcode = definitionHashcode;
     for (int i = 0; i < arity; i++)
     {
index 8f03e3c..0b601f3 100644 (file)
@@ -1146,9 +1146,7 @@ TypeHandle TypeName::GetTypeUsingCASearchRules(LPCWSTR szTypeName, Assembly *pRe
         /*fProhibitAsmQualifiedName = */ FALSE, 
         NULL, 
         pRequestingAssembly, 
-#ifdef FEATURE_HOSTED_BINDER
         nullptr,
-#endif
         FALSE,
         &keepAlive);        
 
@@ -1189,11 +1187,8 @@ TypeHandle TypeName::GetTypeUsingCASearchRules(LPCWSTR szTypeName, Assembly *pRe
     BOOL bProhibitAsmQualifiedName,
     StackCrawlMark* pStackMark, 
     BOOL bLoadTypeFromPartialNameHack,
-    OBJECTREF *pKeepAlive
-#ifdef FEATURE_HOSTED_BINDER
-    , ICLRPrivBinder * pPrivHostBinder
-#endif
-    )
+    OBJECTREF *pKeepAlive,
+    ICLRPrivBinder * pPrivHostBinder)
 {
     STANDARD_VM_CONTRACT;
 
@@ -1242,9 +1237,7 @@ TypeHandle TypeName::GetTypeUsingCASearchRules(LPCWSTR szTypeName, Assembly *pRe
         bProhibitAsmQualifiedName, 
         pStackMark, 
         NULL, 
-#ifdef FEATURE_HOSTED_BINDER
         pPrivHostBinder,
-#endif
         bLoadTypeFromPartialNameHack,
         pKeepAlive);      
 
@@ -1275,9 +1268,7 @@ TypeHandle TypeName::GetTypeUsingCASearchRules(LPCWSTR szTypeName, Assembly *pRe
             bProhibitAsmQualifiedName, 
             pStackMark, 
             NULL, 
-#ifdef FEATURE_HOSTED_BINDER
             pPrivHostBinder,
-#endif
             bLoadTypeFromPartialNameHack,
             pKeepAlive);      
     }
@@ -1336,9 +1327,7 @@ TypeHandle TypeName::GetTypeUsingCASearchRules(LPCWSTR szTypeName, Assembly *pRe
     }
 
     return pTypeName->GetTypeWorker(bThrowIfNotFound, /*bIgnoreCase = */FALSE, pAssembly->IsIntrospectionOnly(), pAssembly, /*fEnableCASearchRules = */FALSE, FALSE, NULL, NULL, 
-#ifdef FEATURE_HOSTED_BINDER
         nullptr, // pPrivHostBinder
-#endif
         FALSE, NULL /* cannot find a collectible type unless it is in assembly */);
 
 
@@ -1410,9 +1399,7 @@ TypeHandle TypeName::GetTypeFromAsm(BOOL bForIntrospection)
         FALSE, 
         NULL, 
         NULL, 
-#ifdef FEATURE_HOSTED_BINDER
         nullptr, // pPrivHostBinder
-#endif
         FALSE, 
         NULL /* cannot find a collectible type */);
 }
@@ -1436,9 +1423,7 @@ TypeHandle TypeName::GetTypeFromAsm(BOOL bForIntrospection)
     BOOL bProhibitAsmQualifiedName,
     StackCrawlMark* pStackMark, 
     Assembly* pRequestingAssembly, 
-#ifdef FEATURE_HOSTED_BINDER
     ICLRPrivBinder * pPrivHostBinder,
-#endif
     BOOL bLoadTypeFromPartialNameHack,
     OBJECTREF *pKeepAlive)
 {
@@ -1506,9 +1491,7 @@ TypeHandle TypeName::GetTypeFromAsm(BOOL bForIntrospection)
             EX_TRY
             {
                 DomainAssembly *pDomainAssembly = LoadDomainAssembly(GetAssembly(), pRequestingAssembly, 
-#ifdef FEATURE_HOSTED_BINDER
                                                                      pPrivHostBinder,
-#endif
                                                                      bThrowIfNotFound, bIntrospectionOnly, pssOuterTypeName);
                 if (pDomainAssembly)
                 {
@@ -1524,9 +1507,7 @@ TypeHandle TypeName::GetTypeFromAsm(BOOL bForIntrospection)
         else
         {
             DomainAssembly *pDomainAssembly = LoadDomainAssembly(GetAssembly(), pRequestingAssembly, 
-#ifdef FEATURE_HOSTED_BINDER
                                                                  pPrivHostBinder,
-#endif
                                                                  bThrowIfNotFound, bIntrospectionOnly, pssOuterTypeName);
             if (pDomainAssembly)
             {
@@ -1633,9 +1614,7 @@ TypeHandle TypeName::GetTypeFromAsm(BOOL bForIntrospection)
             TypeHandle thGenericArg = m_genericArguments[i]->GetTypeWorker(
                 bThrowIfNotFound, bIgnoreCase, bIntrospectionOnly, 
                 pAssemblyGetType, fEnableCASearchRules, bProhibitAsmQualifiedName, pStackMark, pRequestingAssembly, 
-#ifdef FEATURE_HOSTED_BINDER
                 pPrivHostBinder,
-#endif
                 bLoadTypeFromPartialNameHack, 
                 (pKeepAlive != NULL) ? &gc.keepAlive : NULL /* Only pass a keepalive parameter if we were passed a keepalive parameter */);
 
@@ -1884,9 +1863,7 @@ DomainAssembly* LoadAssemblyFromPartialNameHack(SString* psszAssemblySpec, BOOL
 DomainAssembly * LoadDomainAssembly(
     SString *  psszAssemblySpec, 
     Assembly * pRequestingAssembly, 
-#ifdef FEATURE_HOSTED_BINDER
     ICLRPrivBinder * pPrivHostBinder,
-#endif
     BOOL       bThrowIfNotFound, 
     BOOL       bIntrospectionOnly, 
     SString *  pssOuterTypeName)
@@ -1915,14 +1892,11 @@ DomainAssembly * LoadDomainAssembly(
         spec.SetWindowsRuntimeType(*pssOuterTypeName);
     }
     
-#ifdef FEATURE_HOSTED_BINDER
     if (pPrivHostBinder)
     {
         spec.SetHostBinder(pPrivHostBinder);
     }
-    else 
-#endif
-    if (pRequestingAssembly && (!pRequestingAssembly->IsDomainNeutral()) && (!pRequestingAssembly->IsCollectible())) 
+    else if (pRequestingAssembly && (!pRequestingAssembly->IsDomainNeutral()) && (!pRequestingAssembly->IsCollectible())) 
     {
         GCX_PREEMP();
         spec.SetParentAssembly(pRequestingAssembly->GetDomainAssembly());
index 4b0d754..bf30730 100644 (file)
@@ -51,9 +51,7 @@ DomainAssembly* LoadAssemblyFromPartialNameHack(SString* psszAssemblySpec, BOOL
 DomainAssembly * LoadDomainAssembly(
     SString *  psszAssemblySpec, 
     Assembly * pRequestingAssembly, 
-#ifdef FEATURE_HOSTED_BINDER
     ICLRPrivBinder * pPrivHostBinder,
-#endif
     BOOL       bThrowIfNotFound, 
     BOOL       bIntrospectionOnly, 
     SString *  pssOuterTypeName);
@@ -375,11 +373,8 @@ public:
         BOOL bProhibitAssemblyQualifiedName,
         StackCrawlMark* pStackMark,
         BOOL bLoadTypeFromPartialNameHack,
-        OBJECTREF *pKeepAlive
-#ifdef FEATURE_HOSTED_BINDER
-        , ICLRPrivBinder * pPrivHostBinder = nullptr
-#endif
-        );
+        OBJECTREF *pKeepAlive,
+        ICLRPrivBinder * pPrivHostBinder = nullptr);
     
     
 public:
@@ -444,9 +439,7 @@ private:
                                     
         StackCrawlMark* pStackMark, 
         Assembly* pRequestingAssembly, 
-#ifdef FEATURE_HOSTED_BINDER
         ICLRPrivBinder * pPrivHostBinder,
-#endif
         BOOL bLoadTypeFromPartialNameHack,
         OBJECTREF *pKeepAlive);    
 
index 22af188..84a8e40 100644 (file)
@@ -55,9 +55,7 @@ private:
     friend class TypeString;
     friend SString* TypeName::ToString(SString*, BOOL, BOOL, BOOL);
     friend TypeHandle TypeName::GetTypeWorker(BOOL, BOOL, BOOL, Assembly*, BOOL, BOOL, StackCrawlMark*, Assembly*, 
-#ifdef FEATURE_HOSTED_BINDER
         ICLRPrivBinder * pPrivHostBinder,
-#endif
         BOOL, OBJECTREF *);
     HRESULT OpenGenericArguments(); 
     HRESULT CloseGenericArguments(); 
index 277bb93..b48991f 100644 (file)
@@ -8,6 +8,15 @@
 
 int GetVersionResilientTypeHashCode(IMDInternalImport *pMDImport, mdExportedType token)
 {
+    CONTRACTL
+    {
+        THROWS;
+        GC_NOTRIGGER;
+        SO_TOLERANT;
+        MODE_ANY;
+    }
+    CONTRACTL_END
+
     _ASSERTE(TypeFromToken(token) == mdtTypeDef ||
         TypeFromToken(token) == mdtTypeRef ||
         TypeFromToken(token) == mdtExportedType);
@@ -63,6 +72,8 @@ int GetVersionResilientTypeHashCode(IMDInternalImport *pMDImport, mdExportedType
 #ifndef DACCESS_COMPILE
 int GetVersionResilientTypeHashCode(TypeHandle type)
 {
+    STANDARD_VM_CONTRACT;
+
     if (!type.IsTypeDesc())
     {
         MethodTable *pMT = type.AsMethodTable();
@@ -114,6 +125,8 @@ int GetVersionResilientTypeHashCode(TypeHandle type)
 
 int GetVersionResilientMethodHashCode(MethodDesc *pMD)
 {
+    STANDARD_VM_CONTRACT;
+
     int hashCode = GetVersionResilientTypeHashCode(TypeHandle(pMD->GetMethodTable()));
 
     // Todo: Add signature to hash.
index 0fa06db..35c2b64 100644 (file)
@@ -4328,7 +4328,7 @@ int ThreadpoolMgr::GetCPUBusyTime_NT(PROCESS_CPU_INFORMATION* pOldInfo)
 
     if (CPUGroupInfo::CanEnableGCCPUGroups() && CPUGroupInfo::CanEnableThreadUseAllCpuGroups())
     {
-#if !defined(FEATURE_CORECLR)
+#if !defined(FEATURE_REDHAWK) && !defined(FEATURE_PAL)
         FILETIME newIdleTime, newKernelTime, newUserTime;
 
         CPUGroupInfo::GetSystemTimes(&newIdleTime, &newKernelTime, &newUserTime);
index 5c51ed4..943c358 100644 (file)
@@ -1022,12 +1022,12 @@ public:
         {
             LIMITED_METHOD_CONTRACT;
 
-           if (CPUGroupInfo::CanEnableGCCPUGroups() && CPUGroupInfo::CanEnableThreadUseAllCpuGroups())
-            return pRecycledListPerProcessor[CPUGroupInfo::CalculateCurrentProcessorNumber()][memType];
-        else
-            // Turns out GetCurrentProcessorNumber can return a value greater than the number of processors reported by
-            // GetSystemInfo, if we're running in WOW64 on a machine with >32 processors.
-               return pRecycledListPerProcessor[GetCurrentProcessorNumber()%NumberOfProcessors][memType];
+               if (CPUGroupInfo::CanEnableGCCPUGroups() && CPUGroupInfo::CanEnableThreadUseAllCpuGroups())
+                return pRecycledListPerProcessor[CPUGroupInfo::CalculateCurrentProcessorNumber()][memType];
+            else
+                // Turns out GetCurrentProcessorNumber can return a value greater than the number of processors reported by
+                // GetSystemInfo, if we're running in WOW64 on a machine with >32 processors.
+                   return pRecycledListPerProcessor[GetCurrentProcessorNumber()%NumberOfProcessors][memType];
        }
     };
 
index 7d3b73f..54f6c37 100644 (file)
@@ -992,9 +992,9 @@ MethodDesc *ZapSig::DecodeMethod(Module *pReferencingModule,
 }
 
 FieldDesc * ZapSig::DecodeField(Module *pReferencingModule,
-    Module *pInfoModule,
-    PCCOR_SIGNATURE pBuffer,
-    TypeHandle * ppTH /*=NULL*/)
+                                Module *pInfoModule,
+                                PCCOR_SIGNATURE pBuffer,
+                                TypeHandle * ppTH /*=NULL*/)
 {
     CONTRACTL
     {
@@ -1201,11 +1201,11 @@ BOOL ZapSig::EncodeMethod(
                 methodFlags &= ~ENCODE_METHOD_SIG_OwnerType;
             }
             else
-            if (!(methodFlags & ENCODE_METHOD_SIG_InstantiatingStub))
-            {
-                if (SigPointer(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec).IsPolyType(NULL) == hasNoVars)
-                    methodFlags &= ~ENCODE_METHOD_SIG_OwnerType;
-            }
+                if (!(methodFlags & ENCODE_METHOD_SIG_InstantiatingStub))
+                {
+                    if (SigPointer(pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec).IsPolyType(NULL) == hasNoVars)
+                        methodFlags &= ~ENCODE_METHOD_SIG_OwnerType;
+                }
             break;
 
         default:
index 3ce7cd6..a435d6a 100644 (file)
@@ -2226,38 +2226,48 @@ ZapImage::CompileStatus ZapImage::TryCompileMethodWorker(CORINFO_METHOD_HANDLE h
         Exception *ex = GET_EXCEPTION();
         HRESULT hrException = ex->GetHR();
 
-        StackSString message;
-        ex->GetMessage(message);
+#ifdef FEATURE_READYTORUN_COMPILER
+        // NYI features in R2R - Stop crossgen from spitting unnecessary messages to the console
+        if (IsReadyToRunCompilation() && hrException == E_NOTIMPL)
+        {
+            result = NOT_COMPILED;
+        }
+        else
+#endif
+        {
+            StackSString message;
+            ex->GetMessage(message);
 
-        CorZapLogLevel level;
+            CorZapLogLevel level;
 
-#ifdef CROSSGEN_COMPILE
-        // Warnings should not go to stderr during crossgen
-        level = CORZAP_LOGLEVEL_WARNING;
-#else
-        level = CORZAP_LOGLEVEL_ERROR;
-#endif
+    #ifdef CROSSGEN_COMPILE
+            // Warnings should not go to stderr during crossgen
+            level = CORZAP_LOGLEVEL_WARNING;
+    #else
+            level = CORZAP_LOGLEVEL_ERROR;
+    #endif
 
-        // FileNotFound errors here can be converted into a single error string per ngen compile, and the detailed error is available with verbose logging
-        if (hrException == COR_E_FILENOTFOUND)
-        {
-            StackSString logMessage(W("System.IO.FileNotFoundException: "));
-            logMessage.Append(message);
-            FileNotFoundError(logMessage.GetUnicode());
-            level = CORZAP_LOGLEVEL_INFO;
-        }
+            // FileNotFound errors here can be converted into a single error string per ngen compile, and the detailed error is available with verbose logging
+            if (hrException == COR_E_FILENOTFOUND)
+            {
+                StackSString logMessage(W("System.IO.FileNotFoundException: "));
+                logMessage.Append(message);
+                FileNotFoundError(logMessage.GetUnicode());
+                level = CORZAP_LOGLEVEL_INFO;
+            }
 
-        m_zapper->Print(level, W("%s while compiling method %s\n"), message.GetUnicode(), zapInfo.m_currentMethodName.GetUnicode());
+            m_zapper->Print(level, W("%s while compiling method %s\n"), message.GetUnicode(), zapInfo.m_currentMethodName.GetUnicode());
 
-        result = COMPILE_FAILED;
-        m_zapper->m_failed = TRUE;
+            result = COMPILE_FAILED;
+            m_zapper->m_failed = TRUE;
 
-        if (m_stats != NULL)
-        {
-            if ((m_zapper->m_pOpt->m_compilerFlags & CORJIT_FLG_IL_STUB) == 0)
-                m_stats->m_failedMethods++;
-            else
-                m_stats->m_failedILStubs++;
+            if (m_stats != NULL)
+            {
+                if ((m_zapper->m_pOpt->m_compilerFlags & CORJIT_FLG_IL_STUB) == 0)
+                    m_stats->m_failedMethods++;
+                else
+                    m_stats->m_failedILStubs++;
+            }
         }
     }
     EX_END_CATCH(SwallowAllExceptions);
index 98e7afe..37226fc 100644 (file)
@@ -1697,7 +1697,22 @@ public:
 
     CORCOMPILE_FIXUP_BLOB_KIND GetKind()
     {
-        return (CORCOMPILE_FIXUP_BLOB_KIND)(int)GetHandle();
+        int kind = (int)GetHandle();
+
+        if ((kind & 1) == 1)
+        {
+            return (CORCOMPILE_FIXUP_BLOB_KIND)(kind >> 1);
+        }
+        else
+        {
+            _ASSERTE(
+                (GetBlob()->GetSize() > 0) && (
+                    GetBlob()->GetData()[0] == ENCODE_DICTIONARY_LOOKUP_THISOBJ ||
+                    GetBlob()->GetData()[0] == ENCODE_DICTIONARY_LOOKUP_METHOD ||
+                    GetBlob()->GetData()[0] == ENCODE_DICTIONARY_LOOKUP_TYPE));
+
+            return (CORCOMPILE_FIXUP_BLOB_KIND)GetBlob()->GetData()[0];
+        }
     }
 
     virtual void EncodeSignature(ZapImportTable * pTable, SigBuilder * pSigBuilder)
@@ -1728,6 +1743,9 @@ static ReadyToRunHelper GetDelayLoadHelperForDynamicHelper(CORCOMPILE_FIXUP_BLOB
     case ENCODE_THREAD_STATIC_BASE_GC_HELPER:
     case ENCODE_CCTOR_TRIGGER:
     case ENCODE_FIELD_ADDRESS:
+    case ENCODE_DICTIONARY_LOOKUP_THISOBJ:
+    case ENCODE_DICTIONARY_LOOKUP_TYPE:
+    case ENCODE_DICTIONARY_LOOKUP_METHOD:
         return READYTORUN_HELPER_DelayLoad_Helper;
 
     case ENCODE_CHKCAST_HELPER:
@@ -1773,9 +1791,52 @@ void ZapImportSectionSignatures::PlaceDynamicHelperCell(ZapImport * pImport)
     m_pImage->GetImportTable()->PlaceImportBlob(pCell);
 }
 
+ZapImport * ZapImportTable::GetDictionaryLookupCell(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_LOOKUP_KIND * pLookup)
+{
+    _ASSERTE(pLookup->needsRuntimeLookup);
+
+    SigBuilder sigBuilder;
+
+    sigBuilder.AppendData(kind & ~CORINFO_HELP_READYTORUN_ATYPICAL_CALLSITE);
+
+    if ((kind & ~CORINFO_HELP_READYTORUN_ATYPICAL_CALLSITE) == ENCODE_DICTIONARY_LOOKUP_THISOBJ)
+    {
+        CORINFO_CLASS_HANDLE hClassContext = GetJitInfo()->getMethodClass(pResolvedToken->tokenContext);
+        GetCompileInfo()->EncodeClass(m_pImage->GetModuleHandle(), hClassContext, &sigBuilder, NULL, NULL);
+    }
+
+    switch (pLookup->runtimeLookupFlags)
+    {
+    case READYTORUN_FIXUP_TypeHandle:
+        {
+            if (pResolvedToken->pTypeSpec == NULL)
+            {
+                _ASSERTE(!"Invalid IL that directly references __Canon");
+                ThrowHR(E_NOTIMPL);
+            }
+
+            sigBuilder.AppendData(ENCODE_TYPE_HANDLE);
+            if (pResolvedToken->tokenType == CORINFO_TOKENKIND_Newarr)
+                sigBuilder.AppendElementType(ELEMENT_TYPE_SZARRAY);
+            sigBuilder.AppendBlob((PVOID)pResolvedToken->pTypeSpec, pResolvedToken->cbTypeSpec);
+        }
+        break;
+
+    // TODO: support for the rest of the dictionary signature kinds
+
+    default:
+        _ASSERTE(!"Invalid R2R fixup kind!");
+        ThrowHR(E_NOTIMPL);
+    }
+
+    _ASSERTE(((DWORD)pResolvedToken->tokenContext & 1) == 0);
+
+    return GetImportForSignature<ZapDynamicHelperCell, ZapNodeType_DynamicHelperCell>((void*)pResolvedToken->tokenContext, &sigBuilder);
+}
+
 ZapImport * ZapImportTable::GetDynamicHelperCell(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_CLASS_HANDLE handle)
 {
-    ZapImport * pImport = GetImport<ZapDynamicHelperCell, ZapNodeType_DynamicHelperCell>((void *)kind, handle);
+    ZapImport * pImport = GetImport<ZapDynamicHelperCell, ZapNodeType_DynamicHelperCell>((void *)(uintptr_t)((kind << 1) | 1), handle);
 
     if (!pImport->HasBlob())
     {
@@ -1805,7 +1866,7 @@ ZapImport * ZapImportTable::GetDynamicHelperCell(CORCOMPILE_FIXUP_BLOB_KIND kind
         GetCompileInfo()->EncodeClass(m_pImage->GetModuleHandle(), delegateType, &sigBuilder, NULL, NULL);
     }
 
-    return GetImportForSignature<ZapDynamicHelperCell, ZapNodeType_DynamicHelperCell>((void *)kind, &sigBuilder);
+    return GetImportForSignature<ZapDynamicHelperCell, ZapNodeType_DynamicHelperCell>((void *)(uintptr_t)((kind << 1) | 1), &sigBuilder);
 }
 
 ZapImport * ZapImportTable::GetDynamicHelperCell(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_FIELD_HANDLE handle, CORINFO_RESOLVED_TOKEN * pResolvedToken)
@@ -1815,7 +1876,7 @@ ZapImport * ZapImportTable::GetDynamicHelperCell(CORCOMPILE_FIXUP_BLOB_KIND kind
     EncodeField((CORCOMPILE_FIXUP_BLOB_KIND)(kind & ~CORINFO_HELP_READYTORUN_ATYPICAL_CALLSITE),
         handle, &sigBuilder, pResolvedToken);
 
-    return GetImportForSignature<ZapDynamicHelperCell, ZapNodeType_DynamicHelperCell>((void *)kind, &sigBuilder);
+    return GetImportForSignature<ZapDynamicHelperCell, ZapNodeType_DynamicHelperCell>((void *)(uintptr_t)((kind << 1) | 1), &sigBuilder);
 }
 
 class ZapIndirectHelperThunk : public ZapImport
@@ -1907,7 +1968,7 @@ DWORD ZapIndirectHelperThunk::SaveWorker(ZapWriter * pZapWriter)
 {
     ZapImage * pImage = ZapImage::GetImage(pZapWriter);
 
-    BYTE buffer[42];
+    BYTE buffer[44];
     BYTE * p = buffer;
 
 #if defined(_TARGET_X86_)
@@ -2087,50 +2148,50 @@ DWORD ZapIndirectHelperThunk::SaveWorker(ZapWriter * pZapWriter)
     {
         if (IsVSD())
         {
-                       // x11 contains indirection cell
-                       // Do nothing x11 contains our first param
+            // x11 contains indirection cell
+            // Do nothing x11 contains our first param
         }
         else
         {
             // mov x11, x12
-                       *(DWORD*)p = 0xaa0c03eb;
-                       p += 4;
+            *(DWORD*)p = 0xaa0c03eb;
+            p += 4;
         }
 
         //  movz x8, #index
-               DWORD index = GetSectionIndex();
-               _ASSERTE(index <= 0x7F);
-               *(DWORD*)p = 0xd2800008 | (index << 5);
-               p += 4;
+        DWORD index = GetSectionIndex();
+        _ASSERTE(index <= 0x7F);
+        *(DWORD*)p = 0xd2800008 | (index << 5);
+        p += 4;
 
         // move Module* -> x9
-               // ldr x9, [PC+0x14]
-               *(DWORD*)p = 0x58000289;
-               p += 4;
+        // ldr x9, [PC+0x14]
+        *(DWORD*)p = 0x58000289;
+        p += 4;
                
-               //ldr x9, [x9]
-               *(DWORD*)p = 0xf9400129;
-               p += 4;
-       }
+        //ldr x9, [x9]
+        *(DWORD*)p = 0xf9400129;
+        p += 4;
+    }
     else
     if (IsLazyHelper())
     {
-               // Move Module* -> x1
+        // Move Module* -> x1
         // ldr x1, [PC+0x14]
-               *(DWORD*)p = 0x58000289;
-               p += 4;
+        *(DWORD*)p = 0x58000289;
+        p += 4;
 
-               // ldr x1, [x1]
-               *(DWORD*)p = 0xf9400021;
-               p += 4;
-       }
+        // ldr x1, [x1]
+        *(DWORD*)p = 0xf9400021;
+        p += 4;
+    }
 
     // branch to helper
        
     // mov x12, [helper]
-       // ldr x12, [PC+0x14]
-       *(DWORD*)p = 0x58000289;
-       p += 4;
+    // ldr x12, [PC+0x14]
+    *(DWORD*)p = 0x58000289;
+    p += 4;
 
     // ldr x12, [x12]
     *(DWORD *)p = 0xf940018c;
@@ -2140,14 +2201,14 @@ DWORD ZapIndirectHelperThunk::SaveWorker(ZapWriter * pZapWriter)
     *(DWORD *)p = 0xd61f0180;
     p += 4;    
 
-       // [Module*]
-       if (pImage != NULL)
-               pImage->WriteReloc(buffer, (int)(p - buffer), pImage->GetImportTable()->GetHelperImport(READYTORUN_HELPER_Module), 0, IMAGE_REL_BASED_PTR);
-       p += 8;
+    // [Module*]
+    if (pImage != NULL)
+        pImage->WriteReloc(buffer, (int)(p - buffer), pImage->GetImportTable()->GetHelperImport(READYTORUN_HELPER_Module), 0, IMAGE_REL_BASED_PTR);
+    p += 8;
     // [helper]
-       if (pImage != NULL)
-               pImage->WriteReloc(buffer, (int)(p - buffer), pImage->GetImportTable()->GetHelperImport(GetReadyToRunHelper()), 0, IMAGE_REL_BASED_PTR);
-       p += 8;
+    if (pImage != NULL)
+        pImage->WriteReloc(buffer, (int)(p - buffer), pImage->GetImportTable()->GetHelperImport(GetReadyToRunHelper()), 0, IMAGE_REL_BASED_PTR);
+    p += 8;
 #else
     PORTABILITY_ASSERT("ZapIndirectHelperThunk::SaveWorker");
 #endif
index 9aa5e95..1c6ec03 100644 (file)
@@ -432,10 +432,11 @@ public:
     ZapImport * GetExternalMethodCell(CORINFO_METHOD_HANDLE handle, CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_RESOLVED_TOKEN * pConstrainedResolvedToken);
 
     ZapImport * GetDynamicHelperCell(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_CLASS_HANDLE handle);
-    ZapImport * GetDynamicHelperCell(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_METHOD_HANDLE handle, CORINFO_RESOLVED_TOKEN * pResolvedToken, 
-                    CORINFO_CLASS_HANDLE delegateType = NULL);
+    ZapImport * GetDynamicHelperCell(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_METHOD_HANDLE handle, CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_CLASS_HANDLE delegateType = NULL);
     ZapImport * GetDynamicHelperCell(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_FIELD_HANDLE handle, CORINFO_RESOLVED_TOKEN * pResolvedToken);
 
+    ZapImport * GetDictionaryLookupCell(CORCOMPILE_FIXUP_BLOB_KIND kind, CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_LOOKUP_KIND * pLookup);
+
 #ifdef FEATURE_READYTORUN_COMPILER
     ZapNode * GetPlacedIndirectHelperThunk(ReadyToRunHelper helperNum, PVOID pArg = NULL, ZapNode * pCell = NULL);
     ZapNode * GetIndirectHelperThunk(ReadyToRunHelper helperNum, PVOID pArg = NULL);
index 2a2760f..20b532f 100644 (file)
@@ -1549,7 +1549,7 @@ CORINFO_METHOD_HANDLE ZapInfo::embedMethodHandle(CORINFO_METHOD_HANDLE handle,
 
     if (IsReadyToRunCompilation())
     {
-        _ASSERTE(!"embedMethodHandle");
+        // READYTORUN FUTURE: Handle this case correctly
         ThrowHR(E_NOTIMPL);
     }
 
@@ -1582,7 +1582,6 @@ ZapInfo::getLocationOfThisType(CORINFO_METHOD_HANDLE   context)
     return m_pEEJitInfo->getLocationOfThisType(context);
 }
 
-
 void
 ZapInfo::embedGenericHandle(CORINFO_RESOLVED_TOKEN * pResolvedToken,
                             BOOL                     fEmbedParent,
@@ -1598,7 +1597,8 @@ ZapInfo::embedGenericHandle(CORINFO_RESOLVED_TOKEN * pResolvedToken,
 
     if (pResult->lookup.lookupKind.needsRuntimeLookup)
     {
-        embedGenericSignature(&pResult->lookup);
+        if (!IsReadyToRunCompilation())
+            embedGenericSignature(&pResult->lookup);
 
         if (pResult->handleType == CORINFO_HANDLETYPE_METHOD)
         {
@@ -1682,7 +1682,7 @@ void ZapInfo::embedGenericSignature(CORINFO_LOOKUP * pLookup)
 
     if (IsReadyToRunCompilation())
     {
-        m_zapper->Warning(W("ReadyToRun: embedGenericSignature not yet supported\n"));
+        UNREACHABLE_MSG("We should never get here for the ReadyToRun compilation.");
         ThrowHR(E_NOTIMPL);
     }
 
@@ -2139,7 +2139,8 @@ void ZapInfo::getCallInfo(CORINFO_RESOLVED_TOKEN * pResolvedToken,
         {
             if (pResult->stubLookup.lookupKind.needsRuntimeLookup)
             {
-                embedGenericSignature(&pResult->stubLookup);
+                if (!IsReadyToRunCompilation())
+                    embedGenericSignature(&pResult->stubLookup);
                 return;
             }
 
@@ -2172,7 +2173,8 @@ void ZapInfo::getCallInfo(CORINFO_RESOLVED_TOKEN * pResolvedToken,
 
     case CORINFO_CALL_CODE_POINTER:
         _ASSERTE(pResult->codePointerLookup.lookupKind.needsRuntimeLookup);
-        embedGenericSignature(&pResult->codePointerLookup);
+        if (!IsReadyToRunCompilation())
+            embedGenericSignature(&pResult->codePointerLookup);
 
         // There is no easy way to detect method referenced via generic lookups in generated code.
         // Report this method reference unconditionally.
@@ -2213,23 +2215,15 @@ void ZapInfo::getCallInfo(CORINFO_RESOLVED_TOKEN * pResolvedToken,
 
     case CORINFO_VIRTUALCALL_LDVIRTFTN:
 #ifdef FEATURE_READYTORUN_COMPILER
-        if (IsReadyToRunCompilation())
+        if (IsReadyToRunCompilation() && !pResult->exactContextNeedsRuntimeLookup)
         {
-            if ((pResult->classFlags & CORINFO_FLG_SHAREDINST) != 0 ||
-                (pResult->methodFlags & CORINFO_FLG_SHAREDINST) != 0)
-            {
-                // READYTORUN: FUTURE: Generics
-                m_zapper->Warning(W("ReadyToRun: Generic dictionary lookup required\n"));
-                ThrowHR(E_NOTIMPL);
-            }
-
             DWORD fAtypicalCallsite = (flags & CORINFO_CALLINFO_ATYPICAL_CALLSITE) ? CORINFO_HELP_READYTORUN_ATYPICAL_CALLSITE : 0;
 
             ZapImport * pImport = m_pImage->GetImportTable()->GetDynamicHelperCell(
                 (CORCOMPILE_FIXUP_BLOB_KIND)(ENCODE_VIRTUAL_ENTRY | fAtypicalCallsite), pResult->hMethod, pResolvedToken);
 
-            pResult->codePointerLookup.constLookup.accessType   = IAT_PVALUE;
-            pResult->codePointerLookup.constLookup.addr         = pImport;
+            pResult->codePointerLookup.constLookup.accessType = IAT_PVALUE;
+            pResult->codePointerLookup.constLookup.addr = pImport;
 
             _ASSERTE(!pResult->sig.hasTypeArg());
         }
@@ -2249,9 +2243,10 @@ void ZapInfo::getCallInfo(CORINFO_RESOLVED_TOKEN * pResolvedToken,
     {
         if (pResult->exactContextNeedsRuntimeLookup)
         {
-            // READYTORUN: FUTURE: Generics
-            m_zapper->Warning(W("ReadyToRun: Generic dictionary lookup not yet supported\n"));
-            ThrowHR(E_NOTIMPL);
+            // Nothing to do... The generic handle lookup gets embedded in to the codegen
+            // during the jitting of the call.
+            // (Note: The generic lookup in R2R is performed by a call to a helper at runtime, not by
+            // codegen emitted at crossgen time)
         }
         else
         {
@@ -3007,9 +3002,18 @@ void ZapInfo::getFieldInfo (CORINFO_RESOLVED_TOKEN * pResolvedToken,
             break;
 
         case CORINFO_FIELD_STATIC_GENERICS_STATIC_HELPER:
-            // READYTORUN: FUTURE: Generics
-            m_zapper->Warning(W("ReadyToRun: Shared generic static field access not yet supported\n"));
-            ThrowHR(E_NOTIMPL);
+            {
+                // Nothing to do... The generic handle lookup gets embedded in to the codegen
+                // during the jitting of the field lookup.
+                // (Note: The generic lookup in R2R is performed by a call to a helper at runtime, not by
+                // codegen emitted at crossgen time)
+                // TODO: replace the call to the generic lookup helper and the call to the static helper function
+                // with a single call to a R2R cell that performs:
+                //      1) Generic handle lookup
+                //      2) Computes the statics base address
+                //      3) Generates a stub for subsequent lookups that includes dictionary access
+                // (For perf reasons)
+            }
             break;
 
         case CORINFO_FIELD_STATIC_ADDRESS:           // field at given address
@@ -3355,6 +3359,9 @@ unsigned ZapInfo::getClassNumInstanceFields(CORINFO_CLASS_HANDLE cls)
 
 CorInfoHelpFunc ZapInfo::getNewHelper(CORINFO_RESOLVED_TOKEN * pResolvedToken, CORINFO_METHOD_HANDLE callerHandle)
 {
+    if (IsReadyToRunCompilation())
+        return CORINFO_HELP_NEWFAST;
+
     classMustBeLoadedBeforeCodeIsRun(pResolvedToken->hClass);
     return m_pEEJitInfo->getNewHelper(pResolvedToken, callerHandle);
 }
@@ -3386,19 +3393,24 @@ CorInfoHelpFunc ZapInfo::getUnBoxHelper(CORINFO_CLASS_HANDLE cls)
 
 CorInfoHelpFunc ZapInfo::getCastingHelper(CORINFO_RESOLVED_TOKEN * pResolvedToken, bool fThrowing)
 {
+    if (IsReadyToRunCompilation())
+        return (fThrowing ? CORINFO_HELP_CHKCASTANY : CORINFO_HELP_ISINSTANCEOFANY);
+
     return m_pEEJitInfo->getCastingHelper(pResolvedToken, fThrowing);
 }
 
 CorInfoHelpFunc ZapInfo::getNewArrHelper(CORINFO_CLASS_HANDLE arrayCls)
 {
+    if (IsReadyToRunCompilation())
+        return CORINFO_HELP_NEWARR_1_DIRECT;
+
     return m_pEEJitInfo->getNewArrHelper(arrayCls);
 }
 
-void ZapInfo::getReadyToRunHelper(
-        CORINFO_RESOLVED_TOKEN * pResolvedToken,
-        CorInfoHelpFunc          id,
-        CORINFO_CONST_LOOKUP *   pLookup
-        )
+bool ZapInfo::getReadyToRunHelper(CORINFO_RESOLVED_TOKEN * pResolvedToken, 
+                                  CORINFO_LOOKUP_KIND * pGenericLookupKind,
+                                  CorInfoHelpFunc id, 
+                                  CORINFO_CONST_LOOKUP * pLookup)
 {
 #ifdef FEATURE_READYTORUN_COMPILER
     _ASSERTE(IsReadyToRunCompilation());
@@ -3412,37 +3424,35 @@ void ZapInfo::getReadyToRunHelper(
     {
     case CORINFO_HELP_READYTORUN_NEW:
         if ((getClassAttribs(pResolvedToken->hClass) & CORINFO_FLG_SHAREDINST) != 0)
-        {
-            // READYTORUN: FUTURE: Generics
-            m_zapper->Warning(W("ReadyToRun: Generic dictionary lookup required\n"));
-            ThrowHR(E_NOTIMPL);
-        }
+            return false;   // Requires runtime lookup.
         pImport = m_pImage->GetImportTable()->GetDynamicHelperCell(
             (CORCOMPILE_FIXUP_BLOB_KIND)(ENCODE_NEW_HELPER | fAtypicalCallsite), pResolvedToken->hClass);
         break;
 
     case CORINFO_HELP_READYTORUN_NEWARR_1:
         if ((getClassAttribs(pResolvedToken->hClass) & CORINFO_FLG_SHAREDINST) != 0)
-        {
-            // READYTORUN: FUTURE: Generics
-            m_zapper->Warning(W("ReadyToRun: Generic dictionary lookup required\n"));
-            ThrowHR(E_NOTIMPL);
-        }
+            return false;   // Requires runtime lookup.
         pImport = m_pImage->GetImportTable()->GetDynamicHelperCell(
             (CORCOMPILE_FIXUP_BLOB_KIND)(ENCODE_NEW_ARRAY_HELPER | fAtypicalCallsite), pResolvedToken->hClass);
         break;
 
     case CORINFO_HELP_READYTORUN_ISINSTANCEOF:
+        if ((getClassAttribs(pResolvedToken->hClass) & CORINFO_FLG_SHAREDINST) != 0)
+            return false;   // Requires runtime lookup.
         pImport = m_pImage->GetImportTable()->GetDynamicHelperCell(
             (CORCOMPILE_FIXUP_BLOB_KIND)(ENCODE_ISINSTANCEOF_HELPER | fAtypicalCallsite), pResolvedToken->hClass);
         break;
 
     case CORINFO_HELP_READYTORUN_CHKCAST:
+        if ((getClassAttribs(pResolvedToken->hClass) & CORINFO_FLG_SHAREDINST) != 0)
+            return false;   // Requires runtime lookup.
         pImport = m_pImage->GetImportTable()->GetDynamicHelperCell(
             (CORCOMPILE_FIXUP_BLOB_KIND)(ENCODE_CHKCAST_HELPER | fAtypicalCallsite), pResolvedToken->hClass);
         break;
 
     case CORINFO_HELP_READYTORUN_STATIC_BASE:
+        if ((getClassAttribs(pResolvedToken->hClass) & CORINFO_FLG_SHAREDINST) != 0)
+            return false;   // Requires runtime lookup.
         if (m_pImage->GetCompileInfo()->IsInCurrentVersionBubble(m_pEEJitInfo->getClassModule(pResolvedToken->hClass)))
         {
             pImport = m_pImage->GetImportTable()->GetDynamicHelperCell(
@@ -3456,6 +3466,26 @@ void ZapInfo::getReadyToRunHelper(
         }
         break;
 
+    case CORINFO_HELP_READYTORUN_GENERIC_HANDLE:
+        _ASSERTE(pGenericLookupKind != NULL && pGenericLookupKind->needsRuntimeLookup);
+        if (pGenericLookupKind->runtimeLookupKind == CORINFO_LOOKUP_METHODPARAM)
+        {
+            pImport = m_pImage->GetImportTable()->GetDictionaryLookupCell(
+                (CORCOMPILE_FIXUP_BLOB_KIND)(ENCODE_DICTIONARY_LOOKUP_METHOD | fAtypicalCallsite), pResolvedToken, pGenericLookupKind);
+        }
+        else if (pGenericLookupKind->runtimeLookupKind == CORINFO_LOOKUP_THISOBJ)
+        {
+            pImport = m_pImage->GetImportTable()->GetDictionaryLookupCell(
+                (CORCOMPILE_FIXUP_BLOB_KIND)(ENCODE_DICTIONARY_LOOKUP_THISOBJ | fAtypicalCallsite), pResolvedToken, pGenericLookupKind);
+        }
+        else
+        {
+            _ASSERTE(pGenericLookupKind->runtimeLookupKind == CORINFO_LOOKUP_CLASSPARAM);
+            pImport = m_pImage->GetImportTable()->GetDictionaryLookupCell(
+                (CORCOMPILE_FIXUP_BLOB_KIND)(ENCODE_DICTIONARY_LOOKUP_TYPE | fAtypicalCallsite), pResolvedToken, pGenericLookupKind);
+        }
+        break;
+
     default:
         _ASSERTE(false);
         ThrowHR(E_NOTIMPL);
@@ -3463,6 +3493,9 @@ void ZapInfo::getReadyToRunHelper(
 
     pLookup->accessType = IAT_PVALUE;
     pLookup->addr = pImport;
+    return true;
+#else
+       return false;
 #endif
 }
 
index b472d48..d2a29b7 100644 (file)
@@ -546,10 +546,11 @@ public:
     CorInfoHelpFunc getBoxHelper(CORINFO_CLASS_HANDLE cls);
     CorInfoHelpFunc getUnBoxHelper(CORINFO_CLASS_HANDLE cls);
 
-    void getReadyToRunHelper(
-            CORINFO_RESOLVED_TOKEN * pResolvedToken,
-            CorInfoHelpFunc          id,
-            CORINFO_CONST_LOOKUP *   pLookup
+    bool getReadyToRunHelper(
+            CORINFO_RESOLVED_TOKEN *        pResolvedToken,
+            CORINFO_LOOKUP_KIND *           pGenericLookupKind,
+            CorInfoHelpFunc                 id,
+            CORINFO_CONST_LOOKUP *          pLookup
             );
 
     void getReadyToRunDelegateCtorHelper(
index e2182fe..a5d4708 100644 (file)
@@ -2280,7 +2280,7 @@ void Zapper::ComputeDependenciesInCurrentDomain(LPCWSTR pAssemblyString, CORCOMP
     }
     else
     {
-#if defined(FEATURE_HOSTED_BINDER) && defined(FEATURE_APPX) && !defined(FEATURE_CORECLR)
+#if defined(FEATURE_APPX) && !defined(FEATURE_CORECLR)
         if (m_pOpt->m_fAutoNGen)
         {
             // Make sure we're not been spoofed into loading an assembly that might be unsafe to load.
index 06ba5f6..7a9a802 100644 (file)
@@ -470,6 +470,10 @@ static_assert_no_msg((int)READYTORUN_FIELD_SIG_OwnerType             == (int)ENC
 //
 // READYTORUN_FIXUP
 //
+static_assert_no_msg((int)READYTORUN_FIXUP_ThisObjDictionaryLookup   == (int)ENCODE_DICTIONARY_LOOKUP_THISOBJ);
+static_assert_no_msg((int)READYTORUN_FIXUP_TypeDictionaryLookup      == (int)ENCODE_DICTIONARY_LOOKUP_TYPE);
+static_assert_no_msg((int)READYTORUN_FIXUP_MethodDictionaryLookup    == (int)ENCODE_DICTIONARY_LOOKUP_METHOD);
+
 static_assert_no_msg((int)READYTORUN_FIXUP_TypeHandle                == (int)ENCODE_TYPE_HANDLE);
 static_assert_no_msg((int)READYTORUN_FIXUP_MethodHandle              == (int)ENCODE_METHOD_HANDLE);
 static_assert_no_msg((int)READYTORUN_FIXUP_FieldHandle               == (int)ENCODE_FIELD_HANDLE);
@@ -486,30 +490,30 @@ static_assert_no_msg((int)READYTORUN_FIXUP_VirtualEntry_Slot         == (int)ENC
 static_assert_no_msg((int)READYTORUN_FIXUP_Helper                    == (int)ENCODE_READYTORUN_HELPER);
 static_assert_no_msg((int)READYTORUN_FIXUP_StringHandle              == (int)ENCODE_STRING_HANDLE);
 
-static_assert_no_msg((int)READYTORUN_FIXUP_NewObject                  == (int)ENCODE_NEW_HELPER);
-static_assert_no_msg((int)READYTORUN_FIXUP_NewArray                   == (int)ENCODE_NEW_ARRAY_HELPER);
+static_assert_no_msg((int)READYTORUN_FIXUP_NewObject                 == (int)ENCODE_NEW_HELPER);
+static_assert_no_msg((int)READYTORUN_FIXUP_NewArray                  == (int)ENCODE_NEW_ARRAY_HELPER);
 
-static_assert_no_msg((int)READYTORUN_FIXUP_IsInstanceOf               == (int)ENCODE_ISINSTANCEOF_HELPER);
-static_assert_no_msg((int)READYTORUN_FIXUP_ChkCast                    == (int)ENCODE_CHKCAST_HELPER);
+static_assert_no_msg((int)READYTORUN_FIXUP_IsInstanceOf              == (int)ENCODE_ISINSTANCEOF_HELPER);
+static_assert_no_msg((int)READYTORUN_FIXUP_ChkCast                   == (int)ENCODE_CHKCAST_HELPER);
 
-static_assert_no_msg((int)READYTORUN_FIXUP_FieldAddress               == (int)ENCODE_FIELD_ADDRESS);
-static_assert_no_msg((int)READYTORUN_FIXUP_CctorTrigger               == (int)ENCODE_CCTOR_TRIGGER);
+static_assert_no_msg((int)READYTORUN_FIXUP_FieldAddress              == (int)ENCODE_FIELD_ADDRESS);
+static_assert_no_msg((int)READYTORUN_FIXUP_CctorTrigger              == (int)ENCODE_CCTOR_TRIGGER);
 
-static_assert_no_msg((int)READYTORUN_FIXUP_StaticBaseNonGC            == (int)ENCODE_STATIC_BASE_NONGC_HELPER);
-static_assert_no_msg((int)READYTORUN_FIXUP_StaticBaseGC               == (int)ENCODE_STATIC_BASE_GC_HELPER);
-static_assert_no_msg((int)READYTORUN_FIXUP_ThreadStaticBaseNonGC      == (int)ENCODE_THREAD_STATIC_BASE_NONGC_HELPER);
-static_assert_no_msg((int)READYTORUN_FIXUP_ThreadStaticBaseGC         == (int)ENCODE_THREAD_STATIC_BASE_GC_HELPER);
+static_assert_no_msg((int)READYTORUN_FIXUP_StaticBaseNonGC           == (int)ENCODE_STATIC_BASE_NONGC_HELPER);
+static_assert_no_msg((int)READYTORUN_FIXUP_StaticBaseGC              == (int)ENCODE_STATIC_BASE_GC_HELPER);
+static_assert_no_msg((int)READYTORUN_FIXUP_ThreadStaticBaseNonGC     == (int)ENCODE_THREAD_STATIC_BASE_NONGC_HELPER);
+static_assert_no_msg((int)READYTORUN_FIXUP_ThreadStaticBaseGC        == (int)ENCODE_THREAD_STATIC_BASE_GC_HELPER);
 
-static_assert_no_msg((int)READYTORUN_FIXUP_FieldBaseOffset            == (int)ENCODE_FIELD_BASE_OFFSET);
-static_assert_no_msg((int)READYTORUN_FIXUP_FieldOffset                == (int)ENCODE_FIELD_OFFSET);
+static_assert_no_msg((int)READYTORUN_FIXUP_FieldBaseOffset           == (int)ENCODE_FIELD_BASE_OFFSET);
+static_assert_no_msg((int)READYTORUN_FIXUP_FieldOffset               == (int)ENCODE_FIELD_OFFSET);
 
-static_assert_no_msg((int)READYTORUN_FIXUP_TypeDictionary             == (int)ENCODE_TYPE_DICTIONARY);
-static_assert_no_msg((int)READYTORUN_FIXUP_MethodDictionary           == (int)ENCODE_METHOD_DICTIONARY);
+static_assert_no_msg((int)READYTORUN_FIXUP_TypeDictionary            == (int)ENCODE_TYPE_DICTIONARY);
+static_assert_no_msg((int)READYTORUN_FIXUP_MethodDictionary          == (int)ENCODE_METHOD_DICTIONARY);
 
-static_assert_no_msg((int)READYTORUN_FIXUP_Check_TypeLayout           == (int)ENCODE_CHECK_TYPE_LAYOUT);
-static_assert_no_msg((int)READYTORUN_FIXUP_Check_FieldOffset          == (int)ENCODE_CHECK_FIELD_OFFSET);
+static_assert_no_msg((int)READYTORUN_FIXUP_Check_TypeLayout          == (int)ENCODE_CHECK_TYPE_LAYOUT);
+static_assert_no_msg((int)READYTORUN_FIXUP_Check_FieldOffset         == (int)ENCODE_CHECK_FIELD_OFFSET);
 
-static_assert_no_msg((int)READYTORUN_FIXUP_DelegateCtor               == (int)ENCODE_DELEGATE_CTOR);
+static_assert_no_msg((int)READYTORUN_FIXUP_DelegateCtor              == (int)ENCODE_DELEGATE_CTOR);
 
 //
 // READYTORUN_EXCEPTION
index 8a43f8b..d6bdd4a 100644 (file)
@@ -5051,7 +5051,7 @@ RelativePath=JIT\Directed\tailcall\tailcall\tailcall.cmd
 WorkingDir=JIT\Directed\tailcall\tailcall
 Expected=0
 MaxAllowedDurationSeconds=600
-Categories=Pri0;EXPECTED_FAIL;ISSUE_4420
+Categories=Pri0;EXPECTED_PASS
 HostStyle=0
 [fault.cmd_745]
 RelativePath=JIT\Directed\throwbox\fault\fault.cmd
@@ -38245,7 +38245,7 @@ RelativePath=JIT\Regression\JitBlue\devdiv_902271\DevDiv_902271\DevDiv_902271.cm
 WorkingDir=JIT\Regression\JitBlue\devdiv_902271\DevDiv_902271
 Expected=0
 MaxAllowedDurationSeconds=600
-Categories=Pri0;EXPECTED_FAIL;ISSUE_4420
+Categories=Pri0;EXPECTED_PASS
 HostStyle=0
 [DevDiv_911875_d.cmd_5569]
 RelativePath=JIT\Regression\JitBlue\devdiv_911875\DevDiv_911875_d\DevDiv_911875_d.cmd
@@ -39127,7 +39127,7 @@ RelativePath=JIT\Regression\VS-ia64-JIT\V1.2-M02\b28158\b28158\b28158.cmd
 WorkingDir=JIT\Regression\VS-ia64-JIT\V1.2-M02\b28158\b28158
 Expected=0
 MaxAllowedDurationSeconds=600
-Categories=Pri0;JIT;EXPECTED_FAIL;ISSUE_3668;LONG_RUNNING
+Categories=Pri0;JIT;EXPECTED_PASS
 HostStyle=0
 [b28158_64.cmd_5696]
 RelativePath=JIT\Regression\VS-ia64-JIT\V1.2-M02\b28158\b28158_64\b28158_64.cmd
index c6d248d..c97ddd5 100644 (file)
 
     <DnuRestoreSource>@(DnuSourceList -> '--source %(Identity)', ' ')</DnuRestoreSource>
     <DnuRestoreDirs>@(DnuRestoreDir -> '%(Identity)', ' ')</DnuRestoreDirs>
-    
-    <!-- If CORE_ROOT is set on Windows, the dotnet CLI tool tries to use it. This results in DLL resolution errors. Unset CORE_ROOT during restore. -->
-    <DnuRestoreCommand Condition="'$(OsEnvironment)'!='Unix'">(set CORE_ROOT=) &amp;</DnuRestoreCommand>
-    
+
     <DnuRestoreCommand>$(DnuRestoreCommand) "$(DotnetToolCommand)"</DnuRestoreCommand>
     <DnuRestoreCommand>$(DnuRestoreCommand) restore</DnuRestoreCommand>
     <DnuRestoreCommand>$(DnuRestoreCommand) --packages "$(PackagesDir.TrimEnd('/\'.ToCharArray()))" $(DnuRestoreSource)</DnuRestoreCommand>
-    <DnuRestoreCommand Condition="'$(InferRuntimes)'!='false'">$(DnuRestoreCommand) --infer-runtimes</DnuRestoreCommand>
   </PropertyGroup>
 
   <!-- Create a collection of all project.json files for dependency updates. -->
   <ItemGroup>
-    <!-- Skip validation of the test_runtime project created by the test build. -->
-    <ProjectJsonFiles Include="$(SourceDir)**\project.json"
-                      Exclude="$(SourceDir)Common\test_runtime\project.json" />
+    <ProjectJsonFiles Include="$(SourceDir)**\project.json" />
   </ItemGroup>
 
   <!-- Which tests shall we build? Default: Priority 0 tests.
index 17eaf37..9b990f9 100644 (file)
@@ -172,7 +172,6 @@ GC/Scenarios/GCSimulator/GCSimulator_254/GCSimulator_254.sh
 GC/Scenarios/GCSimulator/GCSimulator_255/GCSimulator_255.sh
 GC/Scenarios/GCSimulator/GCSimulator_256/GCSimulator_256.sh
 GC/Scenarios/GCSimulator/GCSimulator_257/GCSimulator_257.sh
-GC/Scenarios/GCSimulator/GCSimulator_258/GCSimulator_258.sh
 GC/Scenarios/GCSimulator/GCSimulator_259/GCSimulator_259.sh
 GC/Scenarios/GCSimulator/GCSimulator_25/GCSimulator_25.sh
 GC/Scenarios/GCSimulator/GCSimulator_260/GCSimulator_260.sh
index 187ba94..36b1431 100644 (file)
@@ -25,6 +25,7 @@
     </PropertyGroup>
     <ItemGroup>
       <TestNugetProjectLockFile Include="$(SourceDir)$(Category)\**\project.lock.json"/>
+      <TestNugetProjectLockFile Include="$(TestRuntimeProjectLockJson)"/>
     </ItemGroup>
   </Target>
 
index c28cc13..73046cf 100644 (file)
       <Output TaskParameter="PerfTestAssemblies" ItemName="CoreCLRPerfTest" />
     </GetPerfTestAssemblies>
 
-    <PropertyGroup>
-      <TestRuntimeDependenciesJson>$(SourceDir)Common\test_runtime\project.json</TestRuntimeDependenciesJson>
-      <TestRuntimeProjectLockJson>$(SourceDir)Common\test_runtime\project.lock.json</TestRuntimeProjectLockJson>
-    </PropertyGroup>
-
     <ItemGroup>
      <DnuSourceList Include="$(CORE_ROOT)\.nuget\pkg" />
     </ItemGroup>
 
     <!-- Restore the runtime dependencies -->
-    <Exec Command="$(DnuRestoreCommand) &quot;$(TestRuntimeDependenciesJson)&quot;"
+    <Exec Command="$(DnuRestoreCommand) &quot;$(TestRuntimeProjectJson)&quot;"
            StandardOutputImportance="Low"
            CustomErrorRegularExpression="^Unable to resolve .*"
            IgnoreExitCode="true"
index 0e6d050..b7301e0 100644 (file)
@@ -4,30 +4,9 @@
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\lifetime\lifetime2\lifetime2.cmd" >
              <Issue>1037</Issue>
         </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M09\b13621\b13621\*" >
-            <Issue>2235</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M09\b16102\b16102\*" >
-            <Issue>2236</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M10\b04914\b04914\*" >
-            <Issue>2235</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b57367\b57367\*" >
-            <Issue>2235</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V2.0-Beta2\b399444\b399444a\*" >
-            <Issue>2235</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\opt\Tailcall\TailcallVerifyWithPrefix\TailcallVerifyWithPrefix.cmd" >
              <Issue>2329</Issue>
         </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Arrays\misc\_il_dbgarrres\_il_dbgarrres.cmd" >
-             <Issue>2330</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Arrays\misc\_il_relarrres\_il_relarrres.cmd" >
-             <Issue>2330</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\delegate\_simpleoddpower_il_d\_simpleoddpower_il_d.cmd" >
              <Issue>2407</Issue>
         </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\bleref_il_r\bleref_il_r.cmd" >
              <Issue>2414</Issue>
         </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\IL_Conformance\Old\Conformance_Base\conv_ovf_i8_i\conv_ovf_i8_i.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\IL_Conformance\Old\Conformance_Base\rem_r4\rem_r4.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\localloc\verify\verify01_dynamic\verify01_dynamic.cmd" >
              <Issue>2414</Issue>
         </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\regress\ndpw\21220\b21220\b21220.cmd" >
              <Issue>2414</Issue>
         </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\regress\vsw\102754\test1\test1.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\regress\vsw\102754\test2\test2.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\tail_il_d\tail_il_d.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\tail_il_r\tail_il_r.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\threads3_il_d\threads3_il_d.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\threads3_il_r\threads3_il_r.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\simple\precise3_il_d\precise3_il_d.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\simple\precise3_il_r\precise3_il_r.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch1\switch1.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch10\switch10.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch11\switch11.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch2\switch2.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch3\switch3.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch4\switch4.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch5\switch5.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch6\switch6.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch7\switch7.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch8\switch8.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch9\switch9.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_dbgrecurse_ep_void\_il_dbgrecurse_ep_void.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_dbgtest_void\_il_dbgtest_void.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_relrecurse_ep_void\_il_relrecurse_ep_void.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_reltest_void\_il_reltest_void.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\varargs\seh\fault_il_d\fault_il_d.cmd" >
              <Issue>2414</Issue>
         </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\varargs\seh\fault_il_r\fault_il_r.cmd" >
              <Issue>2414</Issue>
         </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b65423\b65423\b65423.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1.2-M01\b08046\b08046\b08046.cmd" >
              <Issue>2414</Issue>
         </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1.2-M01\b03689\b03689\b03689.cmd" >
              <Issue>2441</Issue>
         </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_dbgsin_il_cs\_dbgsin_il_cs.cmd" >
-             <Issue>2442</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_odbgsin_il_cs\_odbgsin_il_cs.cmd" >
-             <Issue>2442</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_orelsin_il_cs\_orelsin_il_cs.cmd" >
-             <Issue>2442</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_relsin_il_cs\_relsin_il_cs.cmd" >
-             <Issue>2442</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_dbgsin_il_il\_dbgsin_il_il.cmd" >
-             <Issue>2442</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_odbgsin_il_il\_odbgsin_il_il.cmd" >
-             <Issue>2442</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_orelsin_il_il\_orelsin_il_il.cmd" >
-             <Issue>2442</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_relsin_il_il\_relsin_il_il.cmd" >
-             <Issue>2442</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\xxobj\operand\_il_dbglocalloc\_il_dbglocalloc.cmd" >
              <Issue>2444</Issue>
         </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\VS-ia64-JIT\V2.0-Beta2\b410474\b410474\b410474.cmd" >
              <Issue>2451</Issue>
         </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\pinning\object-pin\object-pin\object-pin.cmd" >
-             <Issue>2452</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_dbgsin_cs_il\_dbgsin_cs_il.cmd" >
              <Issue>3216</Issue>
         </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\Dev11\External\dev11_239804\ShowLocallocAlignment\ShowLocallocAlignment.cmd">
              <Issue>needs triage</Issue>
         </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\SIMD\CircleInConvex_r\CircleInConvex_r.cmd">
-             <Issue>3964</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\SIMD\CircleInConvex_ro\CircleInConvex_ro.cmd">
-             <Issue>3964</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\managed\Compilation\Compilation\Compilation.cmd">
              <Issue>needs triage</Issue>
         </ExcludeList>
     <!-- The following x86 failures only occur with RyuJIT/x86 -->
 
     <ItemGroup Condition="'$(XunitTestBinBase)' != '' and '$(BuildArch)' == 'x86'">
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\AsgOp\i8\i8_cs_d\i8_cs_d.cmd">
-             <Issue>4659</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\AsgOp\i8\i8_cs_do\i8_cs_do.cmd">
-             <Issue>4659</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\AsgOp\i8\i8_cs_r\i8_cs_r.cmd">
-             <Issue>4659</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\AsgOp\i8\i8_cs_ro\i8_cs_ro.cmd">
-             <Issue>4659</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\stringintern\_Simpletest1\_Simpletest1.cmd">
              <Issue>3554</Issue>
         </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\stringintern\test1-xassem\test1-xassem.cmd">
              <Issue>3554</Issue>
         </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\Linq\Linq\Linq.cmd">
-             <Issue>4666</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\Serialization\Serialize\Serialize.cmd">
              <Issue>3597</Issue>
         </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\V8\DeltaBlue\DeltaBlue\DeltaBlue.cmd">
+             <Issue>4817</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\MDArray\basics\stringarr_cs_do\stringarr_cs_do.cmd">
+             <Issue>4844</Issue>
+        </ExcludeList>
+      <ExcludeList Include="$(XunitTestBinBase)\JIT\SIMD\CircleInConvex_r\CircleInConvex_r.cmd">
+        <Issue>4992</Issue>
+      </ExcludeList>
+      <ExcludeList Include="$(XunitTestBinBase)\JIT\SIMD\CircleInConvex_ro\CircleInConvex_ro.cmd">
+        <Issue>4992</Issue>
+      </ExcludeList>
     </ItemGroup>
 </Project>
index 8259df9..0c31ec9 100644 (file)
@@ -6,4 +6,5 @@ GC/Features/PartialCompaction/eco1/eco1.sh
 GC/Features/PartialCompaction/partialcompactiontest/partialcompactiontest.sh
 GC/Features/PartialCompaction/partialcompactionwloh/partialcompactionwloh.sh
 GC/Features/SustainedLowLatency/sustainedlowlatency_race_reverse/sustainedlowlatency_race_reverse.sh
-GC/Features/SustainedLowLatency/sustainedlowlatency_race/sustainedlowlatency_race.sh
\ No newline at end of file
+GC/Features/SustainedLowLatency/sustainedlowlatency_race/sustainedlowlatency_race.sh
+GC/Regressions/v2.0-beta2/462651/462651/462651.sh
index 7bace14..01f7fb1 100644 (file)
@@ -382,9 +382,11 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\","").
       </TestRuntimeJsonContents>
     </PropertyGroup>
 
+    <MakeDir Directories="$(TestRuntimeProjectJsonDir)" Condition="!Exists('$(TestRuntimeProjectJsonDir)')" />
+
     <!-- Write the file -->
     <WriteLinesToFile
-      File="src\Common\test_runtime\project.json"
+      File="$(TestRuntimeProjectJson)"
       Lines="$(TestRuntimeJsonContents)"
       Overwrite="true" />
 
index ab4c50d..f448530 100755 (executable)
@@ -322,9 +322,6 @@ function create_core_overlay {
     if [ ! -d "$coreClrBinDir" ]; then
         exit_with_error "$errorSource" "Directory specified by --coreClrBinDir does not exist: $coreClrBinDir"
     fi
-    if [ -z "$mscorlibDir" ]; then
-        mscorlibDir=$coreClrBinDir
-    fi
     if [ ! -f "$mscorlibDir/mscorlib.dll" ]; then
         exit_with_error "$errorSource" "mscorlib.dll was not found in: $mscorlibDir"
     fi
@@ -427,27 +424,31 @@ declare -a failingTests
 declare -a playlistTests
 ((runFailingTestsOnly = 0))
 
+# Get an array of items by reading the specified file line by line.
+function read_array {
+    local theArray=()
+
+    # bash in Mac OS X doesn't support 'readarray', so using alternate way instead.
+    # readarray -t theArray < "$1"
+    while IFS='' read -r line || [ -n "$line" ]; do
+        theArray[${#theArray[@]}]=$line
+    done < "$1"
+    echo ${theArray[@]}
+}
+
 function load_unsupported_tests {
     # Load the list of tests that are not supported on this platform. These tests are disabled (skipped) permanently.
-    # 'readarray' is not used here, as it includes the trailing linefeed in lines placed in the array.
-    while IFS='' read -r line || [ -n "$line" ]; do
-        unsupportedTests[${#unsupportedTests[@]}]=$line
-    done <"$(dirname "$0")/testsUnsupportedOutsideWindows.txt"
+    unsupportedTests=($(read_array "$(dirname "$0")/testsUnsupportedOutsideWindows.txt"))
 }
 
 function load_failing_tests {
     # Load the list of tests that fail on this platform. These tests are disabled (skipped) temporarily, pending investigation.
-    # 'readarray' is not used here, as it includes the trailing linefeed in lines placed in the array.
-    while IFS='' read -r line || [ -n "$line" ]; do
-        failingTests[${#failingTests[@]}]=$line
-    done <"$(dirname "$0")/testsFailingOutsideWindows.txt"
+    failingTests=($(read_array "$(dirname "$0")/testsFailingOutsideWindows.txt"))
 }
 
 function load_playlist_tests {
     # Load the list of tests that are enabled as a part of this test playlist.
-    while IFS='' read -r line || [ -n "$line" ]; do
-        playlistTests[${#playlistTests[@]}]=$line
-    done <"${playlistFile}"
+    playlistTests=($(read_array "${playlistFile}"))
 }
 
 function is_unsupported_test {
@@ -600,6 +601,19 @@ function finish_remaining_tests {
     ((nextProcessIndex = 0))
 }
 
+function prep_test {
+    local scriptFilePath=$1
+
+    test "$verbose" == 1 && echo "Preparing $scriptFilePath"
+
+    # Convert DOS line endings to Unix if needed
+    perl -pi -e 's/\r\n|\n|\r/\n/g' "$scriptFilePath"
+    
+    # Add executable file mode bit if needed
+    chmod +x "$scriptFilePath"
+
+}
+
 function start_test {
     local scriptFilePath=$1
     if ((runFailingTestsOnly == 1)) && ! is_failing_test "$scriptFilePath"; then
@@ -646,13 +660,18 @@ function set_test_directories {
     then
         exit_with_error "$errorSource" "Test directories file not found at $listFileName"
     fi
-
-    readarray testDirectories < "$listFileName"
+    testDirectories=($(read_array "$listFileName"))
 }
 
 function run_tests_in_directory {
     local testDir=$1
 
+    # Recursively search through directories for .sh files to prepare them.
+    for scriptFilePath in $(find "$testDir" -type f -iname '*.sh' | sort)
+    do
+        prep_test "${scriptFilePath:2}"
+    done
+    echo "The tests have been prepared"
     # Recursively search through directories for .sh files to run.
     for scriptFilePath in $(find "$testDir" -type f -iname '*.sh' | sort)
     do
@@ -814,6 +833,9 @@ fi
 
 # Copy native interop test libraries over to the mscorlib path in
 # order for interop tests to run on linux.
+if [ -z "$mscorlibDir" ]; then
+       mscorlibDir=$coreClrBinDir
+fi
 if [ -d $mscorlibDir/bin ]; then
     cp $mscorlibDir/bin/* $mscorlibDir   
 fi
index def4e2d..1af80e0 100644 (file)
         <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\regress\vsw\102754\test2\test2.cmd" >
              <Issue>2414</Issue>
         </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\tail_il_d\tail_il_d.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\tail_il_r\tail_il_r.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\threads3_il_d\threads3_il_d.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\threads3_il_r\threads3_il_r.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\simple\precise3_il_d\precise3_il_d.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
-        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\simple\precise3_il_r\precise3_il_r.cmd" >
-             <Issue>2414</Issue>
-        </ExcludeList>
         <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch1\switch1.cmd" >
              <Issue>2414</Issue>
         </ExcludeList>
index ef6f0b8..0779102 100644 (file)
@@ -1,6 +1,6 @@
 <!--
 ***********************************************************************************************
-CLRTest.Execute.targets
+CLRTest.Execute.Bash.targets
 
 WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
           created a backup copy.  Incorrect changes to this file will make it
@@ -35,27 +35,13 @@ WARNING:   When setting properties based on their current state (for example:
     
     <PropertyGroup>
       <!-- CrossGen will create output if it needs to crossgen. Otherwise there will be silence. -->
-      <CrossgenBashScript Condition="'$(CLRTestKind)' == 'RunOnly'">
-        <![CDATA[
-if [ ! -f $([MSBuild]::MakeRelative($(OutputPath), $(_CLRTestToRunFileFullPath)).Replace("\","/").Replace(".exe", ".ni.exe")) ]; then
-  "$CORE_ROOT/crossgen" /Platform_Assemblies_Paths $CORE_ROOT%3A$PWD $([MSBuild]::MakeRelative($(OutputPath), $(_CLRTestToRunFileFullPath)).Replace("\","/"))
-  __cgExitCode=$?
-  if [ ! $__cgExitCode == 0 ]
-  then
-    echo Crossgen failed with exitcode: $__cgExitCode
-    exit 1
-  fi
-fi
-        ]]>
-      </CrossgenBashScript>
-      
       <CrossgenBashScript Condition="'$(CLRTestKind)' == 'BuildAndRun'">
         <![CDATA[
 if [ ! -f $(MSBuildProjectName).ni.exe ]; then
   echo "$CORE_ROOT/crossgen" /Platform_Assemblies_Paths $CORE_ROOT%3A$PWD $(MSBuildProjectName).exe
   "$CORE_ROOT/crossgen" /Platform_Assemblies_Paths $CORE_ROOT%3A$PWD $(MSBuildProjectName).exe
   __cgExitCode=$?
-  if [ ! $__cgExitCode == 0 ]
+  if [ $__cgExitCode -ne 0 ]
   then
     echo Crossgen failed with exitcode: $__cgExitCode
     exit 1
@@ -82,7 +68,7 @@ fi
 echo "$CORE_ROOT/ildasm" -raweh -out=$(DisassemblyName) $(InputAssemblyName)
 "$CORE_ROOT/ildasm" -raweh -out=$(DisassemblyName) $(InputAssemblyName)
 _ERRORLEVEL=$?
-if [ ! $ERRORLEVEL == 0 ]
+if [  $ERRORLEVEL -ne 0 ]
 then
   echo EXECUTION OF ILDASM - FAILED $ERRORLEVEL
   exit 1
@@ -91,7 +77,7 @@ fi
 echo "$CORE_ROOT/ilasm" -output=$(TargetAssemblyName) $(_IlasmSwitches) $(DisassemblyName)
 "$CORE_ROOT/ilasm" -output=$(TargetAssemblyName) $(_IlasmSwitches) $(DisassemblyName)
 _ERRORLEVEL=$?
-if [ ! $ERRORLEVEL == 0 ]
+if [ $ERRORLEVEL -ne 0 ]
 then
   echo EXECUTION OF ILASM - FAILED $ERRORLEVEL
   exit 1
@@ -102,9 +88,12 @@ fi
   </Target>
 
   <!-- This is here because of this bug: http://blogs.msdn.com/b/msbuild/archive/2006/01/03/508629.aspx-->
-  <Target Name="FetchExternalProperties">
+  <Target Name="FetchExternalPropertiesForXpalt">
     <!--Call GetExecuteShFullPath to get ToRunProject cmd file Path  -->
-    <MSBuild Projects="$(CLRTestProjectToRun)" Targets="GetExecuteShFullPath" Condition="'$(_CLRTestNeedsProjectToRun)' == 'True'">
+    <MSBuild Projects="$(CLRTestProjectToRun)" 
+             Targets="GetExecuteShFullPath"
+             Properties="GenerateRunScript=True"
+             Condition="'$(_CLRTestNeedsProjectToRun)' == 'True'">
       <Output TaskParameter="TargetOutputs" PropertyName="_CLRTestToRunFileFullPath"/>
     </MSBuild>
   </Target>
@@ -144,7 +133,7 @@ fi
   <Target Name="GenerateBashExecutionScript"
     Inputs="$(MSBuildProjectFullPath)"
     Outputs="$(OutputPath)\$(MSBuildProjectName).sh"
-    DependsOnTargets="FetchExternalProperties;GetCrossgenBashScript;GetIlasmRoundTripBashScript">
+    DependsOnTargets="FetchExternalPropertiesForXpalt;GetCrossgenBashScript;GetIlasmRoundTripBashScript">
 
     <Message Text="Project depends on $(_CLRTestToRunFileFullPath)." Condition="'$(_CLRTestNeedsProjectToRun)' == 'True'" />
 
@@ -174,19 +163,20 @@ echo "Skipping execution because long-running GC tests are not enabled"
 exit 0
       ]]></BashCLRTestGCLongTestSkipCondition>
       <BashCLRTestExitCodePrep Condition="$(_CLRTestNeedsToRun)">
-<![CDATA[CLRTestExpectedExitCode=$(CLRTestExitCode)
+<![CDATA[
+if [ -z ${CLRTestExpectedExitCode+x} ]%3B then export CLRTestExpectedExitCode=$(CLRTestExitCode)%3B fi
 echo BEGIN EXECUTION]]>
       </BashCLRTestExitCodePrep>
     
       <BashCLRTestArgPrep Condition=" '$(CLRTestExecutionArguments)'!='' ">
-<![CDATA[CLRTestExecutionArguments='$(CLRTestExecutionArguments)']]>
+<![CDATA[if [ -z ${CLRTestExecutionArguments+x} ]%3B then export CLRTestExecutionArguments='$(CLRTestExecutionArguments)'%3B fi]]>
       </BashCLRTestArgPrep>
     
       <!-- By default, be prepared to do a full check -->
       <BashCLRTestExitCodeCheck><![CDATA[
 echo Expected: $CLRTestExpectedExitCode
 echo Actual: $CLRTestExitCode
-if [ ! $CLRTestExitCode == $CLRTestExpectedExitCode ]
+if [ $CLRTestExitCode -ne $CLRTestExpectedExitCode ]
 then
   echo END EXECUTION - FAILED
   exit 1
@@ -204,7 +194,7 @@ fi
         <HasParam>true</HasParam>
         <ParamText>=*</ParamText> <!-- Bash specific -->
         <ParamName>debuggerFullPath</ParamName>
-        <Command><![CDATA[        _DebuggerFullPath="${i#*=}"
+        <Command><![CDATA[        export _DebuggerFullPath="${i#*=}"
         if [ ! -f "$_DebuggerFullPath" ]
         then
             echo The Debugger FullPath \"$_DebuggerFullPath\" doesn\'t exist
@@ -231,9 +221,9 @@ fi
     <PropertyGroup>
       <_CLRTestRunFile Condition="'$(CLRTestIsHosted)'=='true'">"$CORE_ROOT/corerun"</_CLRTestRunFile>
       <BashCLRTestLaunchCmds Condition="'$(IlasmRoundTrip)'=='true'"><![CDATA[
-echo $(_CLRTestRunFile) $(TargetAssemblyName) $CLRTestExecutionArguments $Host_Args
-$(_CLRTestRunFile) $(TargetAssemblyName) $CLRTestExecutionArguments $Host_Args
-if [ ! $? == $CLRTestExpectedExitCode ]
+echo $(_CLRTestRunFile) $(TargetAssemblyName) $CLRTestExecutionArguments 
+$(_CLRTestRunFile) $(TargetAssemblyName) $CLRTestExecutionArguments 
+if [  $? -ne $CLRTestExpectedExitCode ]
 then
   echo END EXECUTION OF IL{D}ASM BINARY - FAILED $? vs $CLRTestExpectedExitCode
   echo FAILED
@@ -241,11 +231,20 @@ then
 fi
       ]]></BashCLRTestLaunchCmds>
 
-      <BashCLRTestLaunchCmds><![CDATA[
+      <BashCLRTestLaunchCmds Condition="'$(CLRTestKind)' == 'BuildAndRun'"><![CDATA[
+$(BashCLRTestLaunchCmds)
+echo $_DebuggerFullPath $(_CLRTestRunFile) $(InputAssemblyName) $CLRTestExecutionArguments 
+$_DebuggerFullPath $(_CLRTestRunFile) $(InputAssemblyName) $CLRTestExecutionArguments 
+CLRTestExitCode=$?
+      ]]></BashCLRTestLaunchCmds>
+      <BashCLRTestLaunchCmds Condition="'$(CLRTestKind)' == 'RunOnly'"><![CDATA[
 $(BashCLRTestLaunchCmds)
-echo $_DebuggerFullPath $(_CLRTestRunFile) $(InputAssemblyName) $CLRTestExecutionArguments $Host_Args
-$_DebuggerFullPath $(_CLRTestRunFile) $(InputAssemblyName) $CLRTestExecutionArguments $Host_Args
+echo export CDPATH="$%28dirname "$0")"
+export CDPATH="$%28dirname "$0")"
+echo /bin/sh -c  $(InputAssemblyName) 
+/bin/sh -c $(InputAssemblyName)
 CLRTestExitCode=$?
+CLRTestExpectedExitCode=0
       ]]></BashCLRTestLaunchCmds>
     </PropertyGroup>
 
index e317f63..a1688b3 100644 (file)
@@ -1,6 +1,6 @@
 <!--
 ***********************************************************************************************
-CLRTest.Execute.targets
+CLRTest.Execute.Batch.targets
 
 WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
           created a backup copy.  Incorrect changes to this file will make it
@@ -34,17 +34,6 @@ WARNING:   When setting properties based on their current state (for example:
     
     <PropertyGroup>
 <!-- CrossGen will create output if it needs to crossgen. Otherwise there will be silence. -->
-      <CrossgenBatchScript Condition="'$(CLRTestKind)' == 'RunOnly'">
-        <![CDATA[
-if not exist "$([MSBuild]::MakeRelative($(OutputPath), $(_CLRTestToRunFileFullPath)).Replace(".exe", ".ni.exe"))" (
-"%CORE_ROOT%\crossgen.exe" /Platform_Assemblies_Paths %CORE_ROOT%%3B%~dp0 $([MSBuild]::MakeRelative($(OutputPath), $(_CLRTestToRunFileFullPath)))
-IF NOT "!ERRORLEVEL!"=="0" (
-    ECHO Crossgen failed with exitcode - !ERRORLEVEL!
-    Exit /b 1
-    )
-)        
-        ]]>
-      </CrossgenBatchScript>
       <CrossgenBatchScript Condition="'$(CLRTestKind)' == 'BuildAndRun'">
         <![CDATA[
 if not exist "$(MSBuildProjectName).ni.exe" (
@@ -94,8 +83,11 @@ IF NOT "!ERRORLEVEL!"=="0" (
 
   <!-- This is here because of this bug: http://blogs.msdn.com/b/msbuild/archive/2006/01/03/508629.aspx-->
   <Target Name="FetchExternalProperties">
-    <!--Call GetExecuteShFullPath to get ToRunProject cmd file Path  -->
-    <MSBuild Projects="$(CLRTestProjectToRun)" Targets="GetExecuteShFullPath" Condition="'$(_CLRTestNeedsProjectToRun)' == 'True'">
+    <!--Call GetExecuteCmdFullPath to get ToRunProject cmd file Path  -->
+    <MSBuild Projects="$(CLRTestProjectToRun)" 
+             Targets="GetExecuteCmdFullPath"
+             Properties="GenerateRunScript=True"
+             Condition="'$(_CLRTestNeedsProjectToRun)' == 'True'">
       <Output TaskParameter="TargetOutputs" PropertyName="_CLRTestToRunFileFullPath"/>
     </MSBuild>
   </Target>
@@ -171,13 +163,13 @@ Exit /b 0
       ]]></BatchCLRTestGCSimulatorSkipCondition>
       <BatchCLRTestExitCodePrep Condition="$(_CLRTestNeedsToRun)">
         <![CDATA[
-set CLRTestExpectedExitCode=$(CLRTestExitCode)
+if not defined CLRTestExpectedExitCode (set CLRTestExpectedExitCode=$(CLRTestExitCode))
 ECHO BEGIN EXECUTION
       ]]>
       </BatchCLRTestExitCodePrep>
 
       <BatchCLRTestArgPrep Condition=" '$(CLRTestExecutionArguments)'!='' "><![CDATA[
-set CLRTestExecutionArguments=$(CLRTestExecutionArguments) 
+if not defined CLRTestExecutionArguments (set CLRTestExecutionArguments=$(CLRTestExecutionArguments) )
       ]]></BatchCLRTestArgPrep>
     
       <!-- By default, be prepared to do a full check -->
@@ -262,10 +254,18 @@ IF NOT "!ERRORLEVEL!"=="%CLRTestExpectedExitCode%" (
   Exit /b 1
 )
       ]]></BatchCLRTestLaunchCmds>
-      <BatchCLRTestLaunchCmds><![CDATA[
+      <BatchCLRTestLaunchCmds Condition="'$(CLRTestKind)' == 'BuildAndRun'"><![CDATA[
+$(BatchCLRTestLaunchCmds)
+ECHO %LAUNCHER% $(InputAssemblyName) %CLRTestExecutionArguments%
+%LAUNCHER% $(InputAssemblyName) %CLRTestExecutionArguments%
+set CLRTestExitCode=!ERRORLEVEL!
+      ]]></BatchCLRTestLaunchCmds>
+
+      <BatchCLRTestLaunchCmds Condition="'$(CLRTestKind)' == 'RunOnly'"><![CDATA[
 $(BatchCLRTestLaunchCmds)
-ECHO %LAUNCHER% $(InputAssemblyName) %CLRTestExecutionArguments% %Host_Args%
-%LAUNCHER% $(InputAssemblyName) %CLRTestExecutionArguments% %Host_Args%
+ECHO  cmd /c $(InputAssemblyName)
+cmd /c $(InputAssemblyName)
+set CLRTestExpectedExitCode=0
 set CLRTestExitCode=!ERRORLEVEL!
       ]]></BatchCLRTestLaunchCmds>
     </PropertyGroup>
index 9374e36..0416083 100644 (file)
@@ -12,7 +12,7 @@
      <DnuSourceList Include="$(CORE_ROOT)\.nuget\pkg" /> 
   </ItemGroup>
   <ItemGroup>
-    <None Include="project.json" />
+    <None Include="$(TestRuntimeProjectJson)" />
   </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <Target Name="Build" /> 
diff --git a/tests/src/CoreMangLib/system/delegate/VSD/OpenDelegate.cs b/tests/src/CoreMangLib/system/delegate/VSD/OpenDelegate.cs
new file mode 100644 (file)
index 0000000..acb385a
--- /dev/null
@@ -0,0 +1,50 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Reflection;
+using System.Collections.Generic;
+
+class Program
+{
+    public class ClassA
+    {
+        public virtual int PublicInstanceMethod() { return 17; }
+    }
+
+    public delegate int Delegate_TC_Int(ClassA tc);
+    public static MethodInfo GetMethod(Type t, string method)
+    {
+        TypeInfo typeInfo = t.GetTypeInfo();
+        IEnumerator<MethodInfo> enumerator = typeInfo.DeclaredMethods.GetEnumerator();
+        MethodInfo result = null;
+        while (enumerator.MoveNext())
+        {
+            bool flag = enumerator.Current.Name.Equals(method);
+            if (flag)
+            {
+                result = enumerator.Current;
+                break;
+            }
+        }
+        return result;
+    }
+    public static int Main(string[] args)
+    {
+        Type typeTestClass = typeof(ClassA);
+        ClassA TestClass = (ClassA)Activator.CreateInstance(typeTestClass);
+        MethodInfo miPublicInstanceMethod = GetMethod(typeTestClass, "PublicInstanceMethod");
+        Delegate dlgt = miPublicInstanceMethod.CreateDelegate(typeof(Delegate_TC_Int));
+        Object retValue = ((Delegate_TC_Int)dlgt).DynamicInvoke(new Object[] { TestClass });
+
+        if(retValue.Equals(TestClass.PublicInstanceMethod()))
+        {
+            return 100;
+        }
+
+
+        return -1;
+
+    }
+
+}
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
+    <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
     <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartInt.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
@@ -30,6 +28,7 @@
   </ItemGroup>
   <ItemGroup>
     <!-- Add Compile Object Here -->
+    <Compile Include="OpenDelegate.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="app.config" />
@@ -41,4 +40,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
         <assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
       </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Globalization" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
-      </dependentAssembly>
     </assemblyBinding>
   </runtime>
-</configuration>
+</configuration>
\ No newline at end of file
@@ -14,7 +14,7 @@
     "System.IO.FileSystem.Primitives": "4.0.0",
     "System.Linq": "4.0.1-rc2-23816",
     "System.Linq.Queryable": "4.0.1-rc2-23816",
-    "System.Reflection": "4.1.0-rc2-23816",
+    "System.Reflection": "4.0.10",
     "System.Reflection.Primitives": "4.0.0",
     "System.Runtime": "4.1.0-rc2-23816",
     "System.Runtime.Extensions": "4.0.10",
@@ -24,7 +24,6 @@
     "System.Text.Encoding": "4.0.10",
     "System.Threading": "4.0.10",
     "System.Threading.Thread": "4.0.0-rc2-23816",
-    "System.Threading.ThreadPool": "4.0.10-rc2-23816",
     "System.Xml.ReaderWriter": "4.0.11-rc2-23816",
     "System.Xml.XDocument": "4.0.11-rc2-23816",
     "System.Xml.XmlDocument": "4.0.1-rc2-23816",
index bd6d96f..b097231 100644 (file)
@@ -13,6 +13,7 @@
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <GCStressIncompatible>true</GCStressIncompatible>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ae688be..8a4ded8 100644 (file)
@@ -13,6 +13,7 @@
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <GCStressIncompatible>true</GCStressIncompatible>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f0e5b3e..a5a2a3d 100644 (file)
@@ -13,6 +13,7 @@
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <GCStressIncompatible>true</GCStressIncompatible>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3540e68..7bff75c 100644 (file)
@@ -14,6 +14,7 @@
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <CLRTestExecutionArguments>1 1000 50000</CLRTestExecutionArguments>
+    <GCStressIncompatible>true</GCStressIncompatible>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5e2938f..e036f58 100644 (file)
@@ -13,9 +13,9 @@
     <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <CLRTestExecutionArguments>1 1000 50000</CLRTestExecutionArguments>
+    <GCStressIncompatible>true</GCStressIncompatible>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 8091381..eaf9466 100644 (file)
@@ -13,6 +13,7 @@
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <IsLongRunningGCTest>true</IsLongRunningGCTest>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c697d81..c1963cb 100644 (file)
@@ -14,6 +14,7 @@
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <CLRTestExecutionArguments>1000 40 191919</CLRTestExecutionArguments>
+    <GCStressIncompatible>true</GCStressIncompatible>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
@@ -4,18 +4,18 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <CLRTestKind>BuildOnly</CLRTestKind>
-    <GenerateRunScript>false</GenerateRunScript> 
+    <OutputType>Exe</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
+    <CLRTestKind>BuildOnly</CLRTestKind>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
       <Visible>False</Visible>
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
-  <PropertyGroup>
-    <DebugType>Full</DebugType>
-  </PropertyGroup>
   <ItemGroup>
-    <Compile Include="sinlib.il" />
+    <Compile Include="GCSimulator.cs" />
+    <Compile Include="lifetimefx.cs" />
   </ItemGroup>
-  <ItemGroup>
+    <ItemGroup>
     <None Include="app.config" />
+    <None Include="$(GCPackagesConfigFileDirectory)extra\project.json" />
   </ItemGroup>
+  <PropertyGroup>
+    <ProjectJson>$(GCPackagesConfigFileDirectory)extra\project.json</ProjectJson>
+    <ProjectLockJson>$(GCPackagesConfigFileDirectory)extra\project.lock.json</ProjectLockJson>
+  </PropertyGroup>
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
+  </PropertyGroup>
 </Project>
index 28f032d..4f308a8 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 20000 -sdc 8000 -lt 2 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6c7fcc3..6cb3879 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index fb8209c..0936b9b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2d8d38e..758df05 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f493112..bf67c0a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9dfa7df..86469e3 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 20000 -sdc 8000 -lt 4 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9036b0b..66b642c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2d8d38e..758df05 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f493112..bf67c0a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 60beb10..f85e3e6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index efb1097..8298916 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index fb8209c..0936b9b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f57ecaa..3144367 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 460655c..56e8aed 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bf95bc2..2c6af85 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 06442b9..7b76476 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a1a0b36..556c3dc 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e546eea..6218d73 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6038dd2..25a8a52 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e2f9d58..19ca41f 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0db1126..da33463 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6838099..667494c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f1ba385..a468772 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5ffa556..15a8586 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3e95b02..055858a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3e95b02..055858a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c9314f9..a9a108e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c9314f9..a9a108e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 18d27b6..be8e87c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2e5f255..cd4f5d4 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b94d3d1..76d808a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5916c74..c01be6c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ef32aa8..c519670 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 141e205..7a0c555 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e2d9647..f0af44f 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index fb8209c..0936b9b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e2d9647..f0af44f 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e2d9647..f0af44f 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6fc13dc..02699ab 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 1f3f703..1c0f260 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 546b43d..2011fb5 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ec23869..c25b0cb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ec23869..c25b0cb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ec23869..c25b0cb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a3f5fd0..cafee0d 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ec23869..c25b0cb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a2edfc0..74e0b04 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e0baf94..5d6dd02 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 96336cf..c659191 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b75953b..d6e6a84 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6a58176..17b9e42 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 8a11924..cdd7fd2 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 4634e41..30167e1 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bfd81c2..7148b24 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 55259a9..6f5473b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bccf110..e69bd71 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 55259a9..6f5473b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 200386e..c935f07 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c7de1bb..96fe542 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index aa44194..c053417 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0efdaf3..6e8c1cd 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ef8c34d..5b7a9d3 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index de07798..f5f6dbd 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 4d8939e..2e2105b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index cab5060..14996e6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7292be2..b7b36c0 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 8517 -sdz 17 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bccf110..e69bd71 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bdcca17..f4353f8 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 2 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 8da744c..07c0d50 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 2 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2ddeaaf..f8cfc3a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 2 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ac05dbd..f2a4428 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 2 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bd12f67..f2d0691 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 2 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bcf66b3..91ca392 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 4 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 635dda4..b08f91c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 4 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2cbf1ff..35ebf9e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 4 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 1705cdb..fa1cceb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 4 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 55a0bda..00a6c5e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 4 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 178fc8e..e01e3e8 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 686248d..9d966ef 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 5 -tp 0 -dz 17 -sdz 17 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7a3dde0..ce16928 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 5 -tp 0 -dz 17 -sdz 17 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 16e4341..d61f865 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 5 -tp 0 -dz 17 -sdz 17 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e098c19..a6893e9 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 7 -tp 0 -dz 17 -sdz 17 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6838099..667494c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index efb1097..8298916 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 18d27b6..be8e87c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b75953b..d6e6a84 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bf95bc2..2c6af85 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2d8d38e..758df05 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5e48bd4..e44ba58 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0960054..8bc3d0e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 215d608..40a2232 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6fc13dc..02699ab 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c7de1bb..96fe542 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6be4dc9..9ec1437 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 30000 -sdc 6000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7c0725c..85f6410 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 20000 -sdc 6000 -lt 2 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index db67960..9343214 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 20000 -sdc 8000 -lt 2 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9dfa7df..86469e3 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 20000 -sdc 8000 -lt 4 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f493112..bf67c0a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 60beb10..f85e3e6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 28f032d..4f308a8 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 20000 -sdc 8000 -lt 2 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bf95bc2..2c6af85 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index fb8209c..0936b9b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5d02fc1..1363ea3 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 08831f8..0ebcdd0 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 60beb10..f85e3e6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bf95bc2..2c6af85 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index fb8209c..0936b9b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f4f9e75..5812412 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2d8d38e..758df05 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f493112..bf67c0a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 08831f8..0ebcdd0 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f4f9e75..5812412 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5e48bd4..e44ba58 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9ca2dff..4d8531d 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b6840be..1d6304b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b5bd237..6ba89cf 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5e48bd4..e44ba58 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a6251f9..ca54460 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index d8463d3..3a6fcb1 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f0c2b6b..4000840 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 4f104e0..6783b2a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b0e9053..03c9bc1 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 73c88ab..0d85ac4 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index fb8209c..0936b9b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9ca2dff..4d8531d 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5c996cc..79e7ad1 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 28d0de7..50eb7c3 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7926d5a..865fefc 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b12a386..9e65e95 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c6394f8..d70479f 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0a87ec4..6a7b5ef 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a16d330..edae1ec 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index d21b025..884942b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 73c88ab..0d85ac4 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6c2cb1c..acebb78 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b6840be..1d6304b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 909a76a..070e753 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e20906b..faac00d 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c5013c5..a01d689 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a75ccd3..e5c023d 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index af2629b..85e5be9 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 8092737..d27acb0 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 8ffc7a0..247685d 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a34317b..77dfed2 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f04abc8..478aa41 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3c92258..8cea5a2 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b5bd237..6ba89cf 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 4f9e008..7ada157 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0c9bc5f..3a45c73 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7a3a380..432e968 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 124c5ec..636e79e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6dbbbe4..4d494de 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9bac5d0..4ab5cc9 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index d37b14d..4508cb9 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e586ea3..8899100 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b4cc86c..fe40492 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 223ae5e..3529575 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a6251f9..ca54460 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3c92258..8cea5a2 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b755894..5e879e1 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 882f391..6db0854 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7b1f2c4..18eab5c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 581da7e..59d0fa4 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f7db43c..e375d71 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 29704fd..61793fa 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a5f7200..cf9573e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c8de854..e52671c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3ca7881..3522c76 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index d8463d3..3a6fcb1 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a1b4a61..5edda6b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 798e06d..bf9515b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3cda5a5..4c25fd8 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index cec754a..2fd0c35 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bf2eb93..f331168 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 182e162..171dc24 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9c672d1..e83d11a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 4081ac7..c99ff22 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7f96180..ddf6e00 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0162adf..132f46e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f0c2b6b..4000840 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a5c541b..e35ea43 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 40b20d4..f10c3a6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e9dfeaf..8a268bb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index d7b72f8..3ee5181 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index eb49b88..cf115da 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b10fb92..5f173a9 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 60beb10..f85e3e6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 4f104e0..6783b2a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6c7fcc3..6cb3879 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index fb8209c..0936b9b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b0e9053..03c9bc1 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2d8d38e..758df05 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f493112..bf67c0a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9dfa7df..86469e3 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 20000 -sdc 8000 -lt 4 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9036b0b..66b642c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2d8d38e..758df05 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f493112..bf67c0a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 60beb10..f85e3e6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index efb1097..8298916 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index fb8209c..0936b9b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f57ecaa..3144367 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 460655c..56e8aed 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 06442b9..7b76476 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a1a0b36..556c3dc 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e546eea..6218d73 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6038dd2..25a8a52 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e2f9d58..19ca41f 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0db1126..da33463 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6838099..667494c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f1ba385..a468772 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 73c88ab..0d85ac4 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5ffa556..15a8586 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3e95b02..055858a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3e95b02..055858a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c9314f9..a9a108e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c9314f9..a9a108e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 18d27b6..be8e87c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2e5f255..cd4f5d4 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b94d3d1..76d808a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5916c74..c01be6c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ef32aa8..c519670 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 141e205..7a0c555 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e2d9647..f0af44f 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e2d9647..f0af44f 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e2d9647..f0af44f 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6fc13dc..02699ab 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 1f3f703..1c0f260 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 546b43d..2011fb5 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ec23869..c25b0cb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ec23869..c25b0cb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ec23869..c25b0cb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index fb8209c..0936b9b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a3f5fd0..cafee0d 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ec23869..c25b0cb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a2edfc0..74e0b04 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e0baf94..5d6dd02 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 96336cf..c659191 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b75953b..d6e6a84 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6a58176..17b9e42 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 8a11924..cdd7fd2 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 4634e41..30167e1 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bfd81c2..7148b24 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5c996cc..79e7ad1 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 55259a9..6f5473b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bccf110..e69bd71 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 55259a9..6f5473b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 200386e..c935f07 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c7de1bb..96fe542 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index aa44194..c053417 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0efdaf3..6e8c1cd 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ef8c34d..5b7a9d3 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index de07798..f5f6dbd 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 4d8939e..2e2105b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 28d0de7..50eb7c3 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index cab5060..14996e6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7292be2..b7b36c0 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 8517 -sdz 17 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bccf110..e69bd71 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bdcca17..f4353f8 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 2 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 8da744c..07c0d50 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 2 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2ddeaaf..f8cfc3a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 2 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ac05dbd..f2a4428 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 2 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bd12f67..f2d0691 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 2 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bcf66b3..91ca392 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 4 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 635dda4..b08f91c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 4 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7926d5a..865fefc 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2cbf1ff..35ebf9e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 4 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 1705cdb..fa1cceb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 4 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 55a0bda..00a6c5e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 4 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 178fc8e..e01e3e8 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 686248d..9d966ef 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 5 -tp 0 -dz 17 -sdz 17 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7a3dde0..ce16928 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 5 -tp 0 -dz 17 -sdz 17 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 16e4341..d61f865 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 5 -tp 0 -dz 17 -sdz 17 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e098c19..a6893e9 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 7 -tp 0 -dz 17 -sdz 17 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6838099..667494c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index efb1097..8298916 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b12a386..9e65e95 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 18d27b6..be8e87c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b75953b..d6e6a84 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5e48bd4..e44ba58 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0960054..8bc3d0e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 215d608..40a2232 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6fc13dc..02699ab 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c7de1bb..96fe542 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6be4dc9..9ec1437 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 30000 -sdc 6000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7c0725c..85f6410 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 20000 -sdc 6000 -lt 2 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index db67960..9343214 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 20000 -sdc 8000 -lt 2 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c6394f8..d70479f 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9dfa7df..86469e3 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 17 -dc 20000 -sdc 8000 -lt 4 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 60beb10..f85e3e6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index d4bc397..fd6f1fc 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 7 -tp 0 -dz 17 -sdc 1024 -dc 10000 -sdz 17 -lt 2 -dp 0.1 -dw 0.0 -f</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f3f4b37..1139d29 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 8 -tp 0 -dz 17 -sdc 1024 -dc 10000 -sdz 17 -lt 2 -dp 0.2 -dw 0.0 -f</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 88cb16c..4f0d43e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 10 -tp 0 -dz 17 -sdc 1024 -dc 10000 -sdz 17 -lt 2 -dp 0.2 -dw 0.0 -f</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index d35da3c..7039313 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 10 -tp 0 -dz 17 -sdc 1024 -dc 10000 -sdz 17 -lt 2 -dp 0.3 -dw 0.0 -f</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b1fa921..1a936f1 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 8 -tp 0 -dz 17 -sdc 1024 -dc 10000 -sdz 17 -lt 2 -dp 0.3 -dw 0.1 -f</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0a87ec4..6a7b5ef 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3ca7881..3522c76 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f493112..bf67c0a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index ef32aa8..c519670 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a16d330..edae1ec 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index d21b025..884942b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 73c88ab..0d85ac4 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6c2cb1c..acebb78 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 909a76a..070e753 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e20906b..faac00d 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c1d451f..2b8c48c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c5013c5..a01d689 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a75ccd3..e5c023d 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index af2629b..85e5be9 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 8092737..d27acb0 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 8ffc7a0..247685d 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a34317b..77dfed2 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f04abc8..478aa41 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3c92258..8cea5a2 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 4f9e008..7ada157 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0c9bc5f..3a45c73 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index fb8209c..0936b9b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7a3a380..432e968 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 124c5ec..636e79e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 6dbbbe4..4d494de 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9bac5d0..4ab5cc9 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index d37b14d..4508cb9 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e586ea3..8899100 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b4cc86c..fe40492 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 223ae5e..3529575 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3c92258..8cea5a2 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b755894..5e879e1 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5d02fc1..1363ea3 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 882f391..6db0854 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7b1f2c4..18eab5c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 581da7e..59d0fa4 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index f7db43c..e375d71 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 29704fd..61793fa 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a5f7200..cf9573e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.0 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c8de854..e52671c 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3ca7881..3522c76 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a1b4a61..5edda6b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 798e06d..bf9515b 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.8</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3cda5a5..4c25fd8 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index cec754a..2fd0c35 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index bf2eb93..f331168 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 182e162..171dc24 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 9c672d1..e83d11a 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.4 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 4081ac7..c99ff22 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 7f96180..ddf6e00 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 0162adf..132f46e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index a5c541b..e35ea43 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 40b20d4..f10c3a6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 60beb10..f85e3e6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index e9dfeaf..8a268bb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8517 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.8 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index d7b72f8..3ee5181 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index eb49b88..cf115da 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b10fb92..5f173a9 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 3 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -f -dp 0.8 -dw 0.4</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index c4d428e..9fd7d47 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 60beb10..f85e3e6 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b9d1327..05fcecb 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 4 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 38c3498..97d8705 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 5 -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index b010a3b..e56588e 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 2 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2b7b534..fa0ddda 100644 (file)
@@ -17,6 +17,8 @@
     <DefineConstants>$(DefineConstants);STATIC;PROJECTK_BUILD</DefineConstants>
     <CLRTestExecutionArguments>-t 1 -tp 0 -dz 17 -sdz 8500 -dc 10000 -sdc 5000 -lt 3 -f -dp 0.0 -dw 0.0</CLRTestExecutionArguments>
     <IsGCSimulatorTest>true</IsGCSimulatorTest>
+    <CLRTestKind>RunOnly</CLRTestKind>
+    <CLRTestProjectToRun>GCSimulator.csproj</CLRTestProjectToRun>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 642a696..2cc9142 100644 (file)
@@ -13,6 +13,7 @@
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <GCStressIncompatible>true</GCStressIncompatible>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index abf3dbd..68df7ea 100644 (file)
@@ -13,6 +13,7 @@
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <GCStressIncompatible>true</GCStressIncompatible>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 2df87c3..a88e62e 100644 (file)
@@ -14,6 +14,7 @@
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <CLRTestExecutionArguments>/numrequests:100</CLRTestExecutionArguments>
+    <GCStressIncompatible>true</GCStressIncompatible>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 5afe660..065f83d 100755 (executable)
@@ -7,34 +7,37 @@
 #include <locale.h>
 #include <xplatform.h>
 
+#pragma warning( push )
+#pragma warning( disable : 4996)
+
 
 static int fails = 0; //record the fail numbers
 // Overload methods for reportfailure  
 static int ReportFailure(const char* s)
 {
-       printf(" === Fail:%s\n",s);
-       return (++fails);
+    printf(" === Fail:%s\n", s);
+    return (++fails);
 }
 
 extern  "C" DLL_EXPORT int GetResult()
 {
-       return fails;
+    return fails;
 }
 
 //This method is used on Windows Only
 extern "C" DLL_EXPORT char _cdecl GetByteForWideChar()
 {
 #ifdef WINDOWS
-       char * p = new char[3];
-       WideCharToMultiByte(CP_ACP,0,W("\x263c"),-1,p,2,NULL,NULL);
-       p[1]='\0';
-       byte breturn = p[0];
-       
-       delete p;
-       
-       return breturn;
+    char * p = new char[3];
+    WideCharToMultiByte(CP_ACP, 0, W("\x263c"), -1, p, 2, NULL, NULL);
+    p[1] = '\0';
+    char breturn = p[0];
+
+    delete p;
+
+    return breturn;
 #else
-       return 0; //It wont be called MAC
+    return 0; //It wont be called MAC
 #endif
 
 }
@@ -44,229 +47,231 @@ extern "C" DLL_EXPORT char _cdecl GetByteForWideChar()
 //Now  both side(Managed Side and native side) takes the utf8 encoding when comparing string
 bool CheckInput(LPSTR str)
 {
-//int WideCharToMultiByte(
-//  UINT CodePage, 
-//  DWORD dwFlags, 
-//  LPCWSTR lpWideCharStr, 
-//  int cchWideChar, 
-//  LPSTR lpMultiByteStr, 
-//  int cbMultiByte, 
-//  LPCSTR lpDefaultChar, 
-//  LPBOOL lpUsedDefaultChar 
-//);
+    //int WideCharToMultiByte(
+    //  UINT CodePage, 
+    //  DWORD dwFlags, 
+    //  LPCWSTR lpWideCharStr, 
+    //  int cchWideChar, 
+    //  LPSTR lpMultiByteStr, 
+    //  int cbMultiByte, 
+    //  LPCSTR lpDefaultChar, 
+    //  LPBOOL lpUsedDefaultChar 
+    //);
 #ifdef WINDOWS
-       char * p = new char[3];
-       WideCharToMultiByte(CP_ACP,0,W("\x263c"),-1,p,2,NULL,NULL);
-       p[1]='\0';
+    char * p = new char[3];
+    WideCharToMultiByte(CP_ACP, 0, W("\x263c"), -1, p, 2, NULL, NULL);
+    p[1] = '\0';
 #else
-       char*  p = new char[4]; //00bc98e2,the utf8 code of "\263c",we can get these char value through the following code with C#
-       p[0] = (char)0xe2;      //Encoding enc = Encoding.Default;//UTF8 Encoding
-       p[1] = (char)0x98;      //Byte[] by = enc.GetBytes("\x263c");
-       p[2] = (char)0xbc;
-       p[3] = (char)0;
+    char*  p = new char[4]; //00bc98e2,the utf8 code of "\263c",we can get these char value through the following code with C#
+    p[0] = (char)0xe2;      //Encoding enc = Encoding.Default;//UTF8 Encoding
+    p[1] = (char)0x98;      //Byte[] by = enc.GetBytes("\x263c");
+    p[2] = (char)0xbc;
+    p[3] = (char)0;
 #endif
-       if(0 != _tcsncmp(str,p,4))
-       {
-               printf("CheckInput:Expected:%s,Actual:%d\n",p,str[0]);
-               delete []p;
-               return false;
-       }
-       delete []p;
-       return true;
+    if (0 != _tcsncmp(str, p, 4))
+    {
+        printf("CheckInput:Expected:%s,Actual:%d\n", p, str[0]);
+        delete[]p;
+        return false;
+    }
+    delete[]p;
+    return true;
 
 }
 
 //C Call,In attribute,LPstr
-extern "C" DLL_EXPORT LPSTR DLL_EXPORT _cdecl CLPStr_In(LPSTR pStr)
+extern "C" DLL_EXPORT LPSTR _cdecl CLPStr_In(LPSTR pStr)
 {
-       //Check the Input
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("CLPStr_In:Native Side");
-       }
-
-       //alloc,copy, since we cannot depend the Marshaler's activity.
-       int len = strlen(pStr)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
-       strncpy(pBack,pStr,len);
-
-       return pBack;
+    //Check the Input
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("CLPStr_In:Native Side");
+    }
+
+    //alloc,copy, since we cannot depend the Marshaler's activity.
+    size_t len = strlen(pStr) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
+    strncpy(pBack, pStr, len);
+
+    return pBack;
 }
-extern "C" DLL_EXPORT LPSTR DLL_EXPORT  _cdecl CLPStr_Out(LPSTR pStr)
+
+extern "C" DLL_EXPORT LPSTR _cdecl CLPStr_Out(LPSTR pStr)
 {
-       const char* pTemp ="AAAA";
-    int len = strlen(pTemp)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
-       strncpy(pBack,pTemp,strlen(pTemp)+1);
-       
-       strncpy(pStr,pTemp,strlen(pTemp)+1);
-       
-       return pBack;
+    const char* pTemp = "AAAA";
+    size_t len = strlen(pTemp) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
+    strncpy(pBack, pTemp, strlen(pTemp) + 1);
+
+    strncpy(pStr, pTemp, strlen(pTemp) + 1);
+
+    return pBack;
 }
-extern "C" DLL_EXPORT DLL_EXPORT LPSTR _cdecl CLPStr_InOut(LPSTR pStr)
+
+extern "C" DLL_EXPORT LPSTR _cdecl CLPStr_InOut(LPSTR pStr)
 {
-       //Check the Input
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("CLPStr_InOut:Native Side");
-       }
-
-       //alloc,copy, since we cannot depend the Marshaler's activity.
-       int len = strlen(pStr)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pBack,pStr,len);
-
-       return pBack;
+    //Check the Input
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("CLPStr_InOut:Native Side");
+    }
+
+    //alloc,copy, since we cannot depend the Marshaler's activity.
+    size_t len = strlen(pStr) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pBack, pStr, len);
+
+    return pBack;
 }
 
-extern "C" DLL_EXPORT DLL_EXPORT LPSTR _cdecl CLPStr_InByRef(LPSTR* ppStr)
+extern "C" DLL_EXPORT LPSTR _cdecl CLPStr_InByRef(LPSTR* ppStr)
 {
-       //Check the Input
-       if(!CheckInput(*ppStr))
-       {
-               ReportFailure("CLPStr_InByRef:Native Side");
-       }
-
-       //alloc,copy, since we cannot depend the Marshaler's activity.
-       int len = strlen(*ppStr)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pBack,*ppStr,len);
-
-       return pBack;
+    //Check the Input
+    if (!CheckInput(*ppStr))
+    {
+        ReportFailure("CLPStr_InByRef:Native Side");
+    }
+
+    //alloc,copy, since we cannot depend the Marshaler's activity.
+    size_t len = strlen(*ppStr) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pBack, *ppStr, len);
+
+    return pBack;
 }
 
 extern "C" DLL_EXPORT LPSTR _cdecl CLPStr_OutByRef(LPSTR* ppStr)
 {
-       const char* pTemp="AAAA";
-    int len = strlen(pTemp)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
-       strncpy(pBack,pTemp,strlen(pTemp)+1);
+    const char* pTemp = "AAAA";
+    size_t len = strlen(pTemp) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
+    strncpy(pBack, pTemp, strlen(pTemp) + 1);
 
     *ppStr = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
-       strncpy(*ppStr,pTemp,strlen(pTemp)+1);
-       return pBack;
+    strncpy(*ppStr, pTemp, strlen(pTemp) + 1);
+    return pBack;
 }
 
 extern "C" DLL_EXPORT LPSTR _cdecl CLPStr_InOutByRef(LPSTR* ppStr)
 {
-       //Check the Input
-       if(!CheckInput(*ppStr))
-       {
-               ReportFailure("CLPStr_InOutByRef:Native Side");
-       }
-
-       //alloc,copy, since we cannot depend the Marshaler's activity.
-       int len = strlen(*ppStr)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pBack,*ppStr,len);
-       return pBack;
+    //Check the Input
+    if (!CheckInput(*ppStr))
+    {
+        ReportFailure("CLPStr_InOutByRef:Native Side");
+    }
+
+    //alloc,copy, since we cannot depend the Marshaler's activity.
+    size_t len = strlen(*ppStr) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pBack, *ppStr, len);
+    return pBack;
 }
 
 
 typedef LPSTR (_cdecl* delegate_cdecl)(LPSTR* ppstr);
 extern "C" DLL_EXPORT delegate_cdecl CLPStr_DelegatePInvoke()
 {
-       return CLPStr_InOutByRef;
+    return CLPStr_InOutByRef;
 }
 
 //stdcall
 
 extern "C" DLL_EXPORT LPSTR __stdcall SLPStr_In(LPSTR pStr)
 {
-       //Check the Input
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("SLPStr_In:NativeSide");
-       }
-
-       //alloc,copy, since we cannot depend the Marshaler's activity.
-       int len = strlen(pStr)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pBack,pStr,len);
-       return pBack;
+    //Check the Input
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("SLPStr_In:NativeSide");
+    }
+
+    //alloc,copy, since we cannot depend the Marshaler's activity.
+    size_t len = strlen(pStr) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pBack, pStr, len);
+    return pBack;
 }
 
 extern "C" DLL_EXPORT LPSTR __stdcall SLPStr_Out(LPSTR pStr)
-{      
-    const char* pTemp="AAAA";
-    int len = strlen(pTemp)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
-       strncpy(pBack,pTemp,strlen(pTemp)+1);
-       
-       strncpy(pStr,pTemp,strlen(pTemp)+1);
-       return pBack;
+{
+    const char* pTemp = "AAAA";
+    size_t len = strlen(pTemp) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
+    strncpy(pBack, pTemp, strlen(pTemp) + 1);
+
+    strncpy(pStr, pTemp, strlen(pTemp) + 1);
+    return pBack;
 }
 
 extern "C" DLL_EXPORT LPSTR __stdcall SLPStr_InOut(LPSTR pStr)
 {
-       //Check the Input
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("SLPStr_InOut:NativeSide");
-       }
-
-       //alloc,copy, since we cannot depend the Marshaler's activity.
-       int len = strlen(pStr)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pBack,pStr,len);
-       return pBack;
+    //Check the Input
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("SLPStr_InOut:NativeSide");
+    }
+
+    //alloc,copy, since we cannot depend the Marshaler's activity.
+    size_t len = strlen(pStr) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pBack, pStr, len);
+    return pBack;
 }
 
 extern "C" DLL_EXPORT LPSTR __stdcall SLPStr_InByRef(LPSTR* ppStr)
 {
-       //Check the Input
-       if(!CheckInput(*ppStr))
-       {
-               ReportFailure("SLPStr_InByRef:NativeSide");
-       }
-       //alloc,copy, since we cannot depend the Marshaler's activity.
-       int len = strlen(*ppStr)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pBack,*ppStr,len);
-       return pBack;
+    //Check the Input
+    if (!CheckInput(*ppStr))
+    {
+        ReportFailure("SLPStr_InByRef:NativeSide");
+    }
+    //alloc,copy, since we cannot depend the Marshaler's activity.
+    size_t len = strlen(*ppStr) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pBack, *ppStr, len);
+    return pBack;
 }
 
 extern "C" DLL_EXPORT LPSTR __stdcall SLPStr_OutByRef(LPSTR* ppStr)
 {
-       const char* pTemp="AAAA";
-    int len = strlen(pTemp)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
-       strncpy(pBack,pTemp,strlen(pTemp)+1);
-       
-       *ppStr = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
-       strncpy(*ppStr,pTemp,strlen(pTemp)+1);
-
-       return pBack;
+    const char* pTemp = "AAAA";
+    size_t len = strlen(pTemp) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
+    strncpy(pBack, pTemp, strlen(pTemp) + 1);
+
+    *ppStr = (LPSTR)CoTaskMemAlloc(sizeof(char) * len);
+    strncpy(*ppStr, pTemp, strlen(pTemp) + 1);
+
+    return pBack;
 }
 
 extern "C" DLL_EXPORT LPSTR __stdcall SLPStr_InOutByRef(LPSTR* ppStr)
 {
-       //Check the Input
-       if(!CheckInput(*ppStr))
-       {
-               ReportFailure("SLPStr_InOutByRef:NativeSide");
-       }
-
-       //alloc,copy, since we cannot depend the Marshaler's activity.
-       int len = strlen(*ppStr)+ 1 ; //+1, Include the NULL Character.
-       LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pBack,*ppStr,len);
-       return pBack;
+    //Check the Input
+    if (!CheckInput(*ppStr))
+    {
+        ReportFailure("SLPStr_InOutByRef:NativeSide");
+    }
+
+    //alloc,copy, since we cannot depend the Marshaler's activity.
+    size_t len = strlen(*ppStr) + 1; //+1, Include the NULL Character.
+    LPSTR pBack = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pBack, *ppStr, len);
+    return pBack;
 }
 
 typedef LPSTR (__stdcall *delegate_stdcall)(LPSTR* ppstr);
 extern "C" DLL_EXPORT delegate_stdcall SLPStr_DelegatePInvoke()
 {
-       return SLPStr_InOutByRef;
+    return SLPStr_InOutByRef;
 }
 
 ///Cdecl, Reverse PInvoke
 
 typedef LPSTR (_cdecl *CCallBackIn)(LPSTR pstr);
-extern "C" DLL_EXPORT DLL_EXPORT DLL_EXPORT void _cdecl DoCCallBack_LPSTR_In(CCallBackIn callback)
+extern "C" DLL_EXPORT void _cdecl DoCCallBack_LPSTR_In(CCallBackIn callback)
 {
   const char* pTemp = "AAAA";
-  int len = strlen(pTemp)+1;
+  size_t len = strlen(pTemp)+1;
   LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
   strncpy(pStr,pTemp,len);
 
@@ -278,193 +283,194 @@ extern "C" DLL_EXPORT DLL_EXPORT DLL_EXPORT void _cdecl DoCCallBack_LPSTR_In(CCa
 }
 
 typedef LPSTR (_cdecl *CCallBackOut)(LPSTR pstr);
-extern "C" DLL_EXPORT DLL_EXPORT void _cdecl DoCCallBack_LPSTR_Out(CCallBackOut callback)
+extern "C" DLL_EXPORT void _cdecl DoCCallBack_LPSTR_Out(CCallBackOut callback)
 {
-       int len = 10;
-       LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
-       
-       //Check the return value
-       if(!CheckInput(callback(pStr)))
-       {
-               ReportFailure("DoCCallBack_LPSTR_Out:NativeSide,the first check");
-       }
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("DoCCallBack_LPSTR_Out:NativeSide,the Second Check");
-       }
-       CoTaskMemFree(pStr);
+    size_t len = 10;
+    LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
+
+    //Check the return value
+    if (!CheckInput(callback(pStr)))
+    {
+        ReportFailure("DoCCallBack_LPSTR_Out:NativeSide,the first check");
+    }
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("DoCCallBack_LPSTR_Out:NativeSide,the Second Check");
+    }
+    CoTaskMemFree(pStr);
 }
 
 typedef LPSTR (_cdecl *CCallBackInOut)(LPSTR pstr);
-extern "C" DLL_EXPORT DLL_EXPORT void _cdecl DoCCallBack_LPSTR_InOut(CCallBackInOut callback)
+extern "C" DLL_EXPORT void _cdecl DoCCallBack_LPSTR_InOut(CCallBackInOut callback)
 {
-       const char* pTemp = "AAAA";
-       int len = strlen(pTemp)+1;
-       LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pStr,pTemp,len);
-
-       if(!CheckInput(callback(pStr)))
-       {
-               ReportFailure("DoCCallBack_LPSTR_InOut:NativeSide,the first check");
-       }
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("DoCCallBack_LPSTR_InOut:NativeSide,the Second Check");
-       }
-       CoTaskMemFree(pStr);
+    const char* pTemp = "AAAA";
+    size_t len = strlen(pTemp) + 1;
+    LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pStr, pTemp, len);
+
+    if (!CheckInput(callback(pStr)))
+    {
+        ReportFailure("DoCCallBack_LPSTR_InOut:NativeSide,the first check");
+    }
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("DoCCallBack_LPSTR_InOut:NativeSide,the Second Check");
+    }
+    CoTaskMemFree(pStr);
 }
 
 typedef LPSTR (_cdecl *CallBackInByRef)(LPSTR* pstr);
-extern "C" DLL_EXPORT DLL_EXPORT void _cdecl DoCCallBack_LPSTR_InByRef(CallBackInByRef callback)
+extern "C" DLL_EXPORT void _cdecl DoCCallBack_LPSTR_InByRef(CallBackInByRef callback)
 {
-       const char* pTemp = "AAAA";
-       int len = strlen(pTemp)+1;
-       LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pStr,pTemp,len);
-
-       if(!CheckInput(callback(&pStr)))
-       {
-               ReportFailure("DoCCallBack_LPSTR_InByRef:NativeSide");
-       }
-       CoTaskMemFree(pStr);
+    const char* pTemp = "AAAA";
+    size_t len = strlen(pTemp) + 1;
+    LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pStr, pTemp, len);
+
+    if (!CheckInput(callback(&pStr)))
+    {
+        ReportFailure("DoCCallBack_LPSTR_InByRef:NativeSide");
+    }
+    CoTaskMemFree(pStr);
 }
 
 typedef LPSTR (_cdecl *CCallBackOutByRef)(LPSTR* pstr);
-extern "C" DLL_EXPORT DLL_EXPORT void _cdecl DoCCallBack_LPSTR_OutByRef(CCallBackOutByRef callback)
+extern "C" DLL_EXPORT void _cdecl DoCCallBack_LPSTR_OutByRef(CCallBackOutByRef callback)
 {
-       int len = 10;
-       LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
-
-       if(!CheckInput(callback(&pStr)))
-       {
-               ReportFailure("DoCCallBack_LPSTR_OutByRef:NativeSide,the first Check");
-       }
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("DoCCallBack_LPSTR_OutByRef:NativeSide,the Second Check");
-       }
-       CoTaskMemFree(pStr);
+    size_t len = 10;
+    LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
+
+    if (!CheckInput(callback(&pStr)))
+    {
+        ReportFailure("DoCCallBack_LPSTR_OutByRef:NativeSide,the first Check");
+    }
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("DoCCallBack_LPSTR_OutByRef:NativeSide,the Second Check");
+    }
+    CoTaskMemFree(pStr);
 }
 
 typedef LPSTR (_cdecl *CCallBackInOutByRef)(LPSTR* pstr);
-extern "C" DLL_EXPORT DLL_EXPORT void _cdecl DoCCallBack_LPSTR_InOutByRef(CCallBackInOutByRef callback)
+extern "C" DLL_EXPORT void _cdecl DoCCallBack_LPSTR_InOutByRef(CCallBackInOutByRef callback)
 {
-       const char* pTemp = "AAAA";
-       int len = strlen(pTemp)+1;
-       LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pStr,pTemp,len);
-
-       if(!CheckInput(callback(&pStr)))
-       {
-               ReportFailure("DoCCallBack_LPSTR_InOutByRef:NativeSide");
-       }
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("DoCCallBack_LPSTR_InOutByRef:NativeSide,the Second Check");
-       }
-       CoTaskMemFree(pStr);
+    const char* pTemp = "AAAA";
+    size_t len = strlen(pTemp) + 1;
+    LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pStr, pTemp, len);
+
+    if (!CheckInput(callback(&pStr)))
+    {
+        ReportFailure("DoCCallBack_LPSTR_InOutByRef:NativeSide");
+    }
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("DoCCallBack_LPSTR_InOutByRef:NativeSide,the Second Check");
+    }
+    CoTaskMemFree(pStr);
 }
 
 ///STDCALL Reverse PInvoke
 typedef LPSTR (__stdcall *SCallBackIn)(LPSTR pstr);
-extern "C" DLL_EXPORT DLL_EXPORT void _cdecl DoSCallBack_LPSTR_In(SCallBackIn callback)
+extern "C" DLL_EXPORT void _cdecl DoSCallBack_LPSTR_In(SCallBackIn callback)
 {
-       const char* pTemp = "AAAA";
-       int len = strlen(pTemp)+1;
-       LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pStr,pTemp,len);
-       
-       if(!CheckInput(callback(pStr)))
-       {
-               ReportFailure("DoSCallBack_LPSTR_In:NativeSide");
-       }
-       CoTaskMemFree(pStr);
+    const char* pTemp = "AAAA";
+    size_t len = strlen(pTemp) + 1;
+    LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pStr, pTemp, len);
+
+    if (!CheckInput(callback(pStr)))
+    {
+        ReportFailure("DoSCallBack_LPSTR_In:NativeSide");
+    }
+    CoTaskMemFree(pStr);
 }
 
 typedef LPSTR (__stdcall *SCallBackOut)(LPSTR pstr);
-extern "C" DLL_EXPORT DLL_EXPORT void _cdecl DoSCallBack_LPSTR_Out(SCallBackOut callback)
+extern "C" DLL_EXPORT void _cdecl DoSCallBack_LPSTR_Out(SCallBackOut callback)
 {
 
-       int len = 10;
-       LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
-
-       if(!CheckInput(callback(pStr)))
-       {
-               ReportFailure("DoSCallBack_LPSTR_Out:NativeSide,the first check");
-       }
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("DoSCallBack_LPSTR_Out:NativeSide,the Second Check");
-       }
-       CoTaskMemFree(pStr);
+    size_t len = 10;
+    LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
+
+    if (!CheckInput(callback(pStr)))
+    {
+        ReportFailure("DoSCallBack_LPSTR_Out:NativeSide,the first check");
+    }
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("DoSCallBack_LPSTR_Out:NativeSide,the Second Check");
+    }
+    CoTaskMemFree(pStr);
 }
 
 typedef LPSTR (__stdcall *SCallBackInOut)(LPSTR pstr);
-extern "C" DLL_EXPORT DLL_EXPORT void _cdecl DoSCallBack_LPSTR_InOut(SCallBackInOut callback)
+extern "C" DLL_EXPORT void _cdecl DoSCallBack_LPSTR_InOut(SCallBackInOut callback)
 {
-       const char* pTemp = "AAAA";
-       int len = strlen(pTemp)+1;
-       LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pStr,pTemp,len);
-
-       if(!CheckInput(callback(pStr)))
-       {
-               ReportFailure("DoSCallBack_LPSTR_InOut:NativeSide,the first check");
-       }
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("DoSCallBack_LPSTR_InOut:NativeSide,the second Check");
-       }
-       CoTaskMemFree(pStr);
+    const char* pTemp = "AAAA";
+    size_t len = strlen(pTemp) + 1;
+    LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pStr, pTemp, len);
+
+    if (!CheckInput(callback(pStr)))
+    {
+        ReportFailure("DoSCallBack_LPSTR_InOut:NativeSide,the first check");
+    }
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("DoSCallBack_LPSTR_InOut:NativeSide,the second Check");
+    }
+    CoTaskMemFree(pStr);
 }
 
 typedef LPSTR (__stdcall *SCallBackInByRef)(LPSTR* pstr);
-extern "C" DLL_EXPORT DLL_EXPORT void _cdecl DoSCallBack_LPSTR_InByRef(SCallBackInByRef callback)
+extern "C" DLL_EXPORT void _cdecl DoSCallBack_LPSTR_InByRef(SCallBackInByRef callback)
 {
-       const char* pTemp = "AAAA";
-       int len = strlen(pTemp)+1;
-       LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pStr,pTemp,len);
-
-       if(!CheckInput(callback(&pStr)))
-       {
-               ReportFailure("DoSCallBack_LPSTR_InByRef:NativeSide");
-       }
-       CoTaskMemFree(pStr);
+    const char* pTemp = "AAAA";
+    size_t len = strlen(pTemp) + 1;
+    LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pStr, pTemp, len);
+
+    if (!CheckInput(callback(&pStr)))
+    {
+        ReportFailure("DoSCallBack_LPSTR_InByRef:NativeSide");
+    }
+    CoTaskMemFree(pStr);
 }
 
 typedef LPSTR (__stdcall *SCallBackOutByRef)(LPSTR* pstr);
-extern "C" DLL_EXPORT DLL_EXPORT void _cdecl DoSCallBack_LPSTR_OutByRef(SCallBackOutByRef callback)
+extern "C" DLL_EXPORT void _cdecl DoSCallBack_LPSTR_OutByRef(SCallBackOutByRef callback)
 {
-       int len = 10;
-       LPSTR pStr  = (LPSTR)CoTaskMemAlloc(len);
-       
-       if(!CheckInput(callback(&pStr)))
-       {
-               ReportFailure("DoSCallBack_LPSTR_OutByRef:NativeSide,the first check");
-       }
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("DoSCallBack_LPSTR_OutByRef:NativeSide,the second Check");
-       }
-       CoTaskMemFree(pStr);
+    size_t len = 10;
+    LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
+
+    if (!CheckInput(callback(&pStr)))
+    {
+        ReportFailure("DoSCallBack_LPSTR_OutByRef:NativeSide,the first check");
+    }
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("DoSCallBack_LPSTR_OutByRef:NativeSide,the second Check");
+    }
+    CoTaskMemFree(pStr);
 }
 
 typedef LPSTR (__stdcall *SCallBackInOutByRef)(LPSTR* pstr);
-extern "C" DLL_EXPORT DLL_EXPORT void _cdecl DoSCallBack_LPSTR_InOutByRef(SCallBackInOutByRef callback)
+extern "C" DLL_EXPORT void _cdecl DoSCallBack_LPSTR_InOutByRef(SCallBackInOutByRef callback)
 {
-       const char* pTemp = "AAAA";
-       int len = strlen(pTemp)+1;
-       LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
-       strncpy(pStr,pTemp,len);
-
-       if(!CheckInput(callback(&pStr)))
-       {
-               ReportFailure("DoSCallBack_LPSTR_InOutByRef:NativeSide,the first check");
-       }
-       if(!CheckInput(pStr))
-       {
-               ReportFailure("DoSCallBack_LPSTR_InOutByRef:NativeSide,the second Check");
-       }
-       CoTaskMemFree(pStr);
+    const char* pTemp = "AAAA";
+    size_t len = strlen(pTemp) + 1;
+    LPSTR pStr = (LPSTR)CoTaskMemAlloc(len);
+    strncpy(pStr, pTemp, len);
+
+    if (!CheckInput(callback(&pStr)))
+    {
+        ReportFailure("DoSCallBack_LPSTR_InOutByRef:NativeSide,the first check");
+    }
+    if (!CheckInput(pStr))
+    {
+        ReportFailure("DoSCallBack_LPSTR_InOutByRef:NativeSide,the second Check");
+    }
+    CoTaskMemFree(pStr);
 }
+#pragma warning( pop )
\ No newline at end of file
index af51c5e..370b699 100644 (file)
@@ -14,5 +14,6 @@ add_subdirectory(RefInt)
 add_subdirectory(RefCharArray)
 add_subdirectory(StringMarshalling/LPSTR)
 add_subdirectory(StringMarshalling/LPTSTR)
+add_subdirectory(StringMarshalling/UTF8)
 add_subdirectory(MarshalAPI/FunctionPointer)
 add_subdirectory(MarshalAPI/IUnknown)
index f4ec24f..714dac8 100644 (file)
@@ -171,6 +171,32 @@ public class StringMarshalingTest
 
     }
 
+    public  void TestUTF8String()
+    {
+        foreach (String srcString in TestStrings)
+        {
+            // we assume string null terminated
+            if (srcString.Contains("\0"))
+                continue;
+
+            IntPtr ptrString = Marshal.StringToCoTaskMemUTF8(srcString);
+            string retString = Marshal.PtrToStringUTF8(ptrString);
+
+            if (!srcString.Equals(retString))
+            {
+                throw new Exception("Round triped strings do not match...");
+            }
+            if (srcString.Length > 0)
+            {
+                string retString2 = Marshal.PtrToStringUTF8(ptrString, srcString.Length - 1);
+                if (!retString2.Equals(srcString.Substring(0, srcString.Length - 1)))
+                {
+                    throw new Exception("Round triped strings do not match...");
+                }
+            }
+            Marshal.FreeHGlobal(ptrString);
+        }
+    }
 
     public  bool RunTests()
     {
@@ -179,6 +205,7 @@ public class StringMarshalingTest
         StringToCoTaskMemUniToString();
         StringToHGlobalAnsiToString();
         StringToHGlobalUniToString();
+        TestUTF8String();
         return true;
     }
 
index 9e3b782..d4528a5 100644 (file)
@@ -7,15 +7,16 @@
     <AssemblyName>StringMarshalingTest</AssemblyName>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{F1E66554-8C8E-4141-85CF-D0CD6A0CD0B0}</ProjectGuid>
-    <OutputType>Exe</OutputType>
+    <OutputType>exe</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>  
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <DefineConstants>$(DefineConstants);STATIC</DefineConstants>
+    <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
@@ -28,8 +29,8 @@
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="*.cs" />
-    <Compile Include="..\..\Common\Assertion.cs" />
+    <Compile Include="*.cs" />    
+    <Compile Include="..\..\common\Assertion.cs" />    
   </ItemGroup>
   <ItemGroup>
     <None Include="project.json" />
@@ -41,7 +42,7 @@
     <ProjectReference Include="..\..\..\Common\CoreCLRTestLibrary\CoreCLRTestLibrary.csproj">
       <Project>{c8c0dc74-fac4-45b1-81fe-70c4808366e0}</Project>
       <Name>CoreCLRTestLibrary</Name>
-    </ProjectReference>    
+    </ProjectReference>   
   </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-</Project>
+</Project>
\ No newline at end of file
index fc8ccb4..fc3f026 100644 (file)
@@ -1,34 +1,5 @@
 {
-  "dependencies": {
-    "Microsoft.NETCore.Platforms": "1.0.1-rc2-23816",
-    "System.Collections": "4.0.10",
-    "System.Collections.NonGeneric": "4.0.1-rc2-23816",
-    "System.Collections.Specialized": "4.0.1-rc2-23816",
-    "System.ComponentModel": "4.0.1-rc2-23816",
-    "System.Console": "4.0.0-rc2-23816",
-    "System.Diagnostics.Process": "4.1.0-rc2-23816",
-    "System.Globalization": "4.0.10",
-    "System.Globalization.Calendars": "4.0.0",
-    "System.IO": "4.0.10",
-    "System.IO.FileSystem": "4.0.0",
-    "System.IO.FileSystem.Primitives": "4.0.0",
-    "System.Linq": "4.0.1-rc2-23816",
-    "System.Linq.Queryable": "4.0.1-rc2-23816",
-    "System.Reflection": "4.0.10",
-    "System.Reflection.Primitives": "4.0.0",
-    "System.Runtime": "4.1.0-rc2-23816",
-    "System.Runtime.Extensions": "4.0.10",
-    "System.Runtime.Handles": "4.0.0",
-    "System.Runtime.InteropServices": "4.1.0-rc2-23816",
-    "System.Runtime.Loader": "4.0.0-rc2-23816",
-    "System.Text.Encoding": "4.0.10",
-    "System.Threading": "4.0.10",
-    "System.Threading.Thread": "4.0.0-rc2-23816",
-    "System.Xml.ReaderWriter": "4.0.11-rc2-23816",
-    "System.Xml.XDocument": "4.0.11-rc2-23816",
-    "System.Xml.XmlDocument": "4.0.1-rc2-23816",
-    "System.Xml.XmlSerializer": "4.0.11-rc2-23816"
-  },
+  "dependencies": {},
   "frameworks": {
     "dnxcore50": {}
   },
diff --git a/tests/src/Interop/StringMarshalling/UTF8/CMakeLists.txt b/tests/src/Interop/StringMarshalling/UTF8/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1e8edbf
--- /dev/null
@@ -0,0 +1,9 @@
+cmake_minimum_required (VERSION 2.6)
+project (UTF8TestNative)
+set(SOURCES UTF8TestNative.cpp )
+
+# add the executable
+add_library (UTF8TestNative SHARED ${SOURCES})
+
+# add the install targets
+install (TARGETS UTF8TestNative DESTINATION bin)
\ No newline at end of file
diff --git a/tests/src/Interop/StringMarshalling/UTF8/UTF8Test.cs b/tests/src/Interop/StringMarshalling/UTF8/UTF8Test.cs
new file mode 100644 (file)
index 0000000..7bfe19f
--- /dev/null
@@ -0,0 +1,221 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Collections.Generic;
+
+
+// UTF8 
+class UTF8StringTests
+{
+    [DllImport("UTF8TestNative", CallingConvention = CallingConvention.Cdecl)]
+    [return: MarshalAs(UnmanagedType.LPUTF8Str)]
+    public static extern string StringParameterInOut([In, Out][MarshalAs(UnmanagedType.LPUTF8Str)]string s, int index);
+    public static void TestInOutStringParameter(string orgString, int index)
+    {
+        string passedString = orgString;
+        string expectedNativeString = passedString;
+
+        string nativeString = StringParameterInOut(passedString, index);
+        if (!(nativeString == expectedNativeString))
+        {
+            throw new Exception("StringParameterInOut: nativeString != expecedNativeString ");
+        }
+    }
+
+    [DllImport("UTF8TestNative", CallingConvention = CallingConvention.Cdecl)]
+    [return: MarshalAs(UnmanagedType.LPUTF8Str)]
+    public static extern string StringParameterOut([Out][MarshalAs(UnmanagedType.LPUTF8Str)]string s, int index);
+    public static void TestOutStringParameter(string orgString, int index)
+    {
+        string passedString = orgString;
+        string expecedNativeString = passedString;
+        string nativeString = StringParameterInOut(passedString, index);
+        if (!(nativeString == expecedNativeString))
+        {
+            throw new Exception("StringParameterInOut: nativeString != expecedNativeString ");
+        }
+    }
+
+    [DllImport("UTF8TestNative", CallingConvention = CallingConvention.Cdecl)]
+    public static extern void StringParameterRefOut([MarshalAs(UnmanagedType.LPUTF8Str)]out string s, int index);
+    public static void TestStringPassByOut(string orgString, int index)
+    {
+        // out string 
+        string expectedNative = string.Empty;
+        StringParameterRefOut(out expectedNative, index);
+        if (orgString != expectedNative)
+        {
+            throw new Exception("TestStringPassByOut : expectedNative != outString");
+        }
+    }
+
+    [DllImport("UTF8TestNative", CallingConvention = CallingConvention.Cdecl)]
+    public static extern void StringParameterRef([MarshalAs(UnmanagedType.LPUTF8Str)]ref string s, int index);
+    public static void TestStringPassByRef(string orgString, int index)
+    {
+        string orgCopy = new string(orgString.ToCharArray());
+        StringParameterRef(ref orgString, index);
+        if (orgString != orgCopy)
+        {
+            throw new Exception("TestStringPassByOut : string mismatch");
+        }
+    }
+
+    public static void EmptyStringTest()
+    {
+        StringParameterInOut(string.Empty, 0);
+        StringParameterOut(string.Empty, 0);
+    }
+}
+
+// UTF8 stringbuilder
+class UTF8StringBuilderTests
+{
+    [DllImport("UTF8TestNative", CallingConvention = CallingConvention.Cdecl)]
+    public static extern void StringBuilderParameterInOut([In, Out][MarshalAs(UnmanagedType.LPUTF8Str)]StringBuilder s, int index);
+    public static void TestInOutStringBuilderParameter(string expectedString, int index)
+    {
+        StringBuilder nativeStrBuilder = new StringBuilder(expectedString);
+        StringBuilderParameterInOut(nativeStrBuilder, index);
+
+        if (!nativeStrBuilder.ToString().Equals(expectedString))
+        {
+            throw new Exception("TestInOutStringBuilderParameter: nativeString != expecedNativeString ");
+        }        
+    }
+
+    [DllImport("UTF8TestNative", CallingConvention = CallingConvention.Cdecl)]
+    public static extern void StringBuilderParameterOut([Out][MarshalAs(UnmanagedType.LPUTF8Str)]StringBuilder s, int index);
+    public static void TestOutStringBuilderParameter(string expectedString, int index)
+    {
+        // string builder capacity
+        StringBuilder nativeStringBuilder = new StringBuilder(expectedString.Length);
+        StringBuilderParameterOut(nativeStringBuilder, index);
+
+        if (!nativeStringBuilder.ToString().Equals(expectedString))
+        {
+            throw new Exception("TestOutStringBuilderParameter: string != expecedString ");
+        }
+    }
+
+
+    [DllImport("UTF8TestNative", CallingConvention = CallingConvention.Cdecl)]
+    [return: MarshalAs(UnmanagedType.LPUTF8Str,SizeConst = 512)]
+    public static extern StringBuilder StringBuilderParameterReturn(int index);
+    public static void TestReturnStringBuilder(string expectedReturn, int index)
+    {
+        StringBuilder nativeString = StringBuilderParameterReturn(index);
+        if (!expectedReturn.Equals(nativeString.ToString()))
+        {
+            throw new Exception(string.Format( "TestReturnStringBuilder: nativeString {0} != expecedNativeString {1}",nativeString.ToString(),expectedReturn) );
+        }
+    }
+}
+
+// UTF8 string as struct field
+class UTF8StructMarshalling
+{
+    public struct Utf8Struct
+    {
+        [MarshalAs(UnmanagedType.LPUTF8Str)]
+        public string FirstName;
+        public int index;
+    }
+
+    [DllImport("UTF8TestNative", CallingConvention = CallingConvention.Cdecl)]
+    public static extern void TestStructWithUtf8Field(Utf8Struct utfStruct);
+    public static void TestUTF8StructMarshalling(string[] utf8Strings)
+    {
+        Utf8Struct utf8Struct = new Utf8Struct();
+        for (int i = 0; i < utf8Strings.Length; i++)
+        {
+            utf8Struct.FirstName = utf8Strings[i];
+            utf8Struct.index = i;
+            TestStructWithUtf8Field(utf8Struct);
+        }
+    }
+}
+
+// UTF8 string as delegate parameter
+class UTF8DelegateMarshalling
+{
+    [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+    public delegate void DelegateUTF8Parameter([MarshalAs(UnmanagedType.LPUTF8Str)]string utf8String, int index);
+
+
+    [DllImport("UTF8TestNative", CallingConvention = CallingConvention.Cdecl)]
+    public static extern void Utf8DelegateAsParameter(DelegateUTF8Parameter param);
+
+   
+    public static void TestUTF8DelegateMarshalling()
+    {        
+        Utf8DelegateAsParameter(new DelegateUTF8Parameter(Utf8StringCallback));
+    }
+
+    public static void Utf8StringCallback(string nativeString, int index)
+    {
+        if (string.CompareOrdinal(nativeString, Test.utf8Strings[index]) != 0)
+        {
+            throw new Exception("Utf8StringCallback string do not match");
+        }
+    }
+}
+
+class Test
+{
+    //test strings
+    public static string[] utf8Strings = {
+                                "Managed",
+                                 "Sîne klâwen durh die wolken sint geslagen" ,
+                                 "काचं शक्नोम्यत्तुम् । नोपहिनस्ति माम्",
+                                 "我能吞下玻璃而不伤身体",
+                                 "ღმერთსი შემვედრე,შემვედრე, ნუთუ კვლა დამხსნას შემვედრე,სოფლისა შემვედრე, შემვედრე,შემვედრე,შემვედრე,შრომასა, ცეცხლს, წყალსა და მიწასა, ჰაერთა თანა მრომასა; მომცნეს ფრთენი და აღვფრინდე, მივჰხვდე მას ჩემსა ნდომასა, დღისით და ღამით ვჰხედვიდე მზისა ელვათა კრთომაასაშემვედრე,შემვედრე,",
+                                 "Τη γλώσσα μου έδωσαν ελληνική",
+                                 null,
+                               };
+
+    public static int Main(string[] args)
+    {
+        // Test string as [In,Out] parameter
+        for (int i = 0; i < utf8Strings.Length; i++)
+            UTF8StringTests.TestInOutStringParameter(utf8Strings[i], i);
+
+        // Test string as [Out] parameter
+        for (int i = 0; i < utf8Strings.Length; i++)
+            UTF8StringTests.TestOutStringParameter(utf8Strings[i], i);
+
+        for (int i = 0; i < utf8Strings.Length - 1; i++)
+            UTF8StringTests.TestStringPassByOut(utf8Strings[i], i);
+
+        for (int i = 0; i < utf8Strings.Length - 1; i++)
+            UTF8StringTests.TestStringPassByRef(utf8Strings[i], i);
+
+
+        // Test StringBuilder as [In,Out] parameter
+        for (int i = 0; i < utf8Strings.Length - 1; i++)
+            UTF8StringBuilderTests.TestInOutStringBuilderParameter(utf8Strings[i], i);
+
+        // Test StringBuilder as [Out] parameter
+        for (int i = 0; i < utf8Strings.Length - 1; i++)
+            UTF8StringBuilderTests.TestOutStringBuilderParameter(utf8Strings[i], i);
+
+        // utf8 string as struct fields
+        UTF8StructMarshalling.TestUTF8StructMarshalling(utf8Strings);
+
+        // delegate
+        UTF8DelegateMarshalling.TestUTF8DelegateMarshalling();
+
+        // Test StringBuilder as [Out] parameter
+        for (int i = 0; i < utf8Strings.Length - 1; i++)
+            UTF8StringBuilderTests.TestReturnStringBuilder(utf8Strings[i], i);
+
+        // String.Empty tests
+        UTF8StringTests.EmptyStringTest();
+
+        return 100;
+    }
+}
\ No newline at end of file
@@ -4,22 +4,24 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <AssemblyName>UTF8Test</AssemblyName>
     <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
+    <ProjectGuid>{F1E66554-8C8E-4141-85CF-D0CD6A0CD0B0}</ProjectGuid>
+    <OutputType>exe</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>  
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestKind>BuildOnly</CLRTestKind> 
+    <DefineConstants>$(DefineConstants);STATIC</DefineConstants>
+    <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
   </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
   </PropertyGroup>
   <ItemGroup>
     <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
   <ItemGroup>
-    <!-- Add Compile Object Here -->
-    <Compile Include="MultiInstance.cs" />
+    <Compile Include="*.cs" />    
+    <Compile Include="..\..\common\Assertion.cs" />    
   </ItemGroup>
   <ItemGroup>
-    <None Include="app.config" />
     <None Include="project.json" />
   </ItemGroup>
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="$(SourceDir)\Common\CoreCLRTestLibrary\CoreCLRTestLibrary.csproj">
-      <Project>{8ffe99c0-22f8-4462-b839-970eac1b3472}</Project>
-      <Name>coreclr</Name>
+    <ProjectReference Include="..\..\..\Common\CoreCLRTestLibrary\CoreCLRTestLibrary.csproj">
+      <Project>{c8c0dc74-fac4-45b1-81fe-70c4808366e0}</Project>
+      <Name>CoreCLRTestLibrary</Name>
+    </ProjectReference>
+    <ProjectReference Include="CMakeLists.txt">
     </ProjectReference>
   </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
 </Project>
\ No newline at end of file
diff --git a/tests/src/Interop/StringMarshalling/UTF8/UTF8TestNative.cpp b/tests/src/Interop/StringMarshalling/UTF8/UTF8TestNative.cpp
new file mode 100644 (file)
index 0000000..f4e0f2f
--- /dev/null
@@ -0,0 +1,284 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+#include <xplatform.h>
+
+const int NSTRINGS = 6;
+#ifdef _WIN32
+wchar_t  *utf8strings[] = { L"Managed",
+L"S\x00EEne kl\x00E2wen durh die wolken sint geslagen" ,
+L"\x0915\x093E\x091A\x0902 \x0936\x0915\x094D\x0928\x094B\x092E\x094D\x092F\x0924\x094D\x0924\x0941\x092E\x094D \x0964 \x0928\x094B\x092A\x0939\x093F\x0928\x0938\x094D\x0924\x093F \x092E\x093E\x092E\x094D",
+L"\x6211\x80FD\x541E\x4E0B\x73BB\x7483\x800C\x4E0D\x4F24\x8EAB\x4F53",
+L"\x10E6\x10DB\x10D4\x10E0\x10D7\x10E1\x10D8 \x10E8\x10D4\x10DB\x10D5\x10D4\x10D3\x10E0\x10D4,\x10E8\x10D4\x10DB\x10D5\x10D4\x10D3\x10E0\x10D4, \x10DC\x10E3\x10D7\x10E3 \x10D9\x10D5\x10DA\x10D0 \x10D3\x10D0\x10DB\x10EE\x10E1\x10DC\x10D0\x10E1 \x10E8\x10D4\x10DB\x10D5\x10D4\x10D3\x10E0\x10D4,\x10E1\x10DD\x10E4\x10DA\x10D8\x10E1\x10D0 \x10E8\x10D4\x10DB\x10D5\x10D4\x10D3\x10E0\x10D4, \x10E8\x10D4\x10DB\x10D5\x10D4\x10D3\x10E0\x10D4,\x10E8\x10D4\x10DB\x10D5\x10D4\x10D3\x10E0\x10D4,\x10E8\x10D4\x10DB\x10D5\x10D4\x10D3\x10E0\x10D4,\x10E8\x10E0\x10DD\x10DB\x10D0\x10E1\x10D0, \x10EA\x10D4\x10EA\x10EE\x10DA\x10E1, \x10EC\x10E7\x10D0\x10DA\x10E1\x10D0 \x10D3\x10D0 \x10DB\x10D8\x10EC\x10D0\x10E1\x10D0, \x10F0\x10D0\x10D4\x10E0\x10D7\x10D0 \x10D7\x10D0\x10DC\x10D0 \x10DB\x10E0\x10DD\x10DB\x10D0\x10E1\x10D0; \x10DB\x10DD\x10DB\x10EA\x10DC\x10D4\x10E1 \x10E4\x10E0\x10D7\x10D4\x10DC\x10D8 \x10D3\x10D0 \x10D0\x10E6\x10D5\x10E4\x10E0\x10D8\x10DC\x10D3\x10D4, \x10DB\x10D8\x10D5\x10F0\x10EE\x10D5\x10D3\x10D4 \x10DB\x10D0\x10E1 \x10E9\x10D4\x10DB\x10E1\x10D0 \x10DC\x10D3\x10DD\x10DB\x10D0\x10E1\x10D0, \x10D3\x10E6\x10D8\x10E1\x10D8\x10D7 \x10D3\x10D0 \x10E6\x10D0\x10DB\x10D8\x10D7 \x10D5\x10F0\x10EE\x10D4\x10D3\x10D5\x10D8\x10D3\x10D4 \x10DB\x10D6\x10D8\x10E1\x10D0 \x10D4\x10DA\x10D5\x10D0\x10D7\x10D0 \x10D9\x10E0\x10D7\x10DD\x10DB\x10D0\x10D0\x10E1\x10D0\x10E8\x10D4\x10DB\x10D5\x10D4\x10D3\x10E0\x10D4,\x10E8\x10D4\x10DB\x10D5\x10D4\x10D3\x10E0\x10D4,",
+L"\x03A4\x03B7 \x03B3\x03BB\x03CE\x03C3\x03C3\x03B1 \x03BC\x03BF\x03C5 \x03AD\x03B4\x03C9\x03C3\x03B1\x03BD \x03B5\x03BB\x03BB\x03B7\x03BD\x03B9\x03BA\x03AE",
+L"\0"
+};
+
+
+
+char* utf16_to_utf8(wchar_t *srcstring)
+{
+    if ((srcstring == NULL) || (*srcstring == L'\0')) {
+        return 0;
+    }
+    size_t cchUTF16 = wcslen(srcstring) + 1;
+    int cbUTF8 = WideCharToMultiByte(CP_UTF8, 0,
+        srcstring,
+        (int)cchUTF16,
+        NULL,
+        0/* request buffer size*/,
+        NULL,
+        NULL);
+
+    char *pszUTF8 = (char*)CoTaskMemAlloc(sizeof(char) * (cbUTF8 + 1));
+    int nc = WideCharToMultiByte(CP_UTF8, // convert to UTF-8
+        0,       //default flags 
+        srcstring, //source wide string
+        (int)cchUTF16,     // length of wide string
+        pszUTF8,      // destination buffer 
+        cbUTF8,       // destination buffer size
+        NULL,
+        NULL);
+
+    if (!nc)
+    {
+        throw;
+    }
+
+    pszUTF8[nc] = '\0';
+    return pszUTF8;
+}
+
+wchar_t* utf8_to_utf16(const char *utf8)
+{
+    // Special case of empty input string
+    //wszTextUTF16
+    wchar_t *wszTextUTF16 = 0;
+    if (!utf8 || !(*utf8))
+        return wszTextUTF16;
+    size_t szUtf8 = strlen(utf8);
+
+    //Get length (in wchar_t's) of resulting UTF-16 string
+    int cbUTF16 = ::MultiByteToWideChar(
+        CP_UTF8,            // convert from UTF-8
+        0,                  // default flags
+        utf8,        // source UTF-8 string
+        (int)szUtf8,      // length (in chars) of source UTF-8 string
+        NULL,               // unused - no conversion done in this step
+        0                   // request size of destination buffer, in wchar_t's
+    );
+
+    wszTextUTF16 = (wchar_t*)(CoTaskMemAlloc((cbUTF16 + 1) * sizeof(wchar_t)));
+    // Do the actual conversion from UTF-8 to UTF-16
+    int nc = ::MultiByteToWideChar(
+        CP_UTF8,            // convert from UTF-8
+        0,                  // default flags
+        utf8,        // source UTF-8 string
+        (int)szUtf8,      // length (in chars) of source UTF-8 string
+        wszTextUTF16,          // destination buffer
+        cbUTF16);  // size of destination buffer, in wchar_t's
+
+    if (!nc)
+    {
+        throw;
+    }
+    //MultiByteToWideChar do not null terminate the string when cbMultiByte is not -1
+    wszTextUTF16[nc] = '\0';
+    return wszTextUTF16;
+}
+
+char *get_utf8_string(int index) {
+    char *pszTextutf8 = utf16_to_utf8(utf8strings[index]);
+    return pszTextutf8;
+}
+
+void free_utf8_string(char *str)
+{
+    CoTaskMemFree(str);
+}
+
+#else //Not WIndows
+
+//test strings
+const char  *utf8strings[] = { "Managed",
+"Sîne klâwen durh die wolken sint geslagen",
+"काचं शक्नोम्यत्तुम् । नोपहिनस्ति माम्",
+"我能吞下玻璃而不伤身体",
+"ღმერთსი შემვედრე,შემვედრე, ნუთუ კვლა დამხსნას შემვედრე,სოფლისა შემვედრე, შემვედრე,შემვედრე,შემვედრე,შრომასა, ცეცხლს, წყალსა და მიწასა, ჰაერთა თანა მრომასა; მომცნეს ფრთენი და აღვფრინდე, მივჰხვდე მას ჩემსა ნდომასა, დღისით და ღამით ვჰხედვიდე მზისა ელვათა კრთომაასაშემვედრე,შემვედრე,",
+"Τη γλώσσα μου έδωσαν ελληνική",
+"\0"
+};
+
+char *get_utf8_string(int index) {
+    return (char*)utf8strings[index];
+}
+
+void free_utf8_string(char *str)
+{
+    // do nothing , we never allocated the temp buffer on non-windows 
+}
+
+#endif
+
+LPSTR build_return_string(const char* pReturn)
+{
+    char *ret = 0;
+    if (pReturn == 0 || *pReturn == 0)
+        return ret;
+
+    size_t strLength = strlen(pReturn);
+    ret = (LPSTR)(CoTaskMemAlloc(sizeof(char)* (strLength + 1)));
+    memset(ret, '\0', strLength + 1);
+    strncpy_s(ret, strLength + 1, pReturn, strLength);
+    return ret;
+}
+
+// Modify the string builder in place, managed side validates.
+extern "C" DLL_EXPORT void __cdecl StringBuilderParameterInOut(/*[In,Out] StringBuilder*/ char *s, int index)
+{
+    // if string.empty 
+    if (s == 0 || *s == 0)
+        return;
+
+    char *pszTextutf8 = get_utf8_string(index);
+
+    // do byte by byte validation of in string
+    size_t szLen = strlen(s);
+    for (size_t i = 0; i < szLen; i++) 
+    {
+        if (s[i] != pszTextutf8[i])
+        {
+            printf("[in] managed string do not match native string\n");
+            throw;
+        }
+    }  
+
+    // modify the string inplace 
+    size_t outLen = strlen(pszTextutf8);
+    for (size_t i = 0; i < outLen; i++) {
+        s[i] = pszTextutf8[i];
+    }
+    s[outLen] = '\0';
+    free_utf8_string(pszTextutf8);
+}
+
+//out string builder
+extern "C" DLL_EXPORT void __cdecl  StringBuilderParameterOut(/*[Out] StringBuilder*/ char *s, int index)
+{
+    char *pszTextutf8 = get_utf8_string(index);
+    // modify the string inplace 
+    size_t outLen = strlen(pszTextutf8);
+    for (size_t i = 0; i < outLen; i++) {
+        s[i] = pszTextutf8[i];
+    }
+    s[outLen] = '\0';
+    free_utf8_string(pszTextutf8);
+}
+
+// return utf8 stringbuilder
+extern "C" DLL_EXPORT char* __cdecl  StringBuilderParameterReturn(int index) 
+{
+    char *pszTextutf8 = get_utf8_string(index);
+    size_t strLength = strlen(pszTextutf8);
+    LPSTR ret = (LPSTR)(CoTaskMemAlloc(sizeof(char)* (strLength + 1)));
+    memcpy(ret, pszTextutf8, strLength);
+    ret[strLength] = '\0';
+    free_utf8_string(pszTextutf8);
+    return  ret;
+}
+
+extern "C" DLL_EXPORT LPSTR __cdecl StringParameterOut(/*[Out]*/ char *s, int index)
+{
+    // return a copy
+    return build_return_string(s);
+}
+
+// string 
+extern "C" DLL_EXPORT LPSTR __cdecl StringParameterInOut(/*[In,Out]*/ char *s, int index)
+{
+    // return a copy
+    return build_return_string(s);
+}
+
+// Utf8 field
+typedef struct FieldWithUtf8
+{
+    char *pFirst;
+    int index;
+}FieldWithUtf8;
+
+//utf8 struct field
+extern "C" DLL_EXPORT void _cdecl TestStructWithUtf8Field(struct FieldWithUtf8 fieldStruct)
+{
+    char *pszManagedutf8 = fieldStruct.pFirst;
+    int stringIndex = fieldStruct.index;
+    char *pszNative = 0;
+    size_t outLen = 0;
+
+    if (pszManagedutf8 == 0 || *pszManagedutf8 == 0)
+        return;
+
+    pszNative = get_utf8_string(stringIndex);
+    outLen = strlen(pszNative);
+    // do byte by byte comparision
+    for (size_t i = 0; i < outLen; i++) 
+    {
+        if (pszNative[i] != pszManagedutf8[i]) 
+        {
+            printf("Native and managed string do not match.\n");
+            throw;
+        }
+    }
+    free_utf8_string(pszNative);
+}
+
+// test c# out keyword
+extern "C" DLL_EXPORT void __cdecl StringParameterRefOut(/*out*/ char **s, int index)
+{
+    char *pszTextutf8 = get_utf8_string(index);
+    size_t strLength = strlen(pszTextutf8);
+     *s = (LPSTR)(CoTaskMemAlloc(sizeof(char)* (strLength + 1)));
+    memcpy(*s, pszTextutf8, strLength);
+    (*s)[strLength] = '\0';
+    free_utf8_string(pszTextutf8);
+}
+
+//c# ref
+extern "C" DLL_EXPORT void __cdecl StringParameterRef(/*ref*/ char **s, int index)
+{
+    char *pszTextutf8 = get_utf8_string(index);
+    size_t strLength = strlen(pszTextutf8);
+    // do byte by byte validation of in string
+    size_t szLen = strlen(*s);
+    for (size_t i = 0; i < szLen; i++)
+    {
+        if ((*s)[i] != pszTextutf8[i])
+        {
+            printf("[in] managed string do not match native string\n");
+            throw;
+        }
+    }
+
+    if (*s)
+    {
+       CoTaskMemFree(*s);
+    }
+    // overwrite the orginal 
+    *s = (LPSTR)(CoTaskMemAlloc(sizeof(char)* (strLength + 1)));
+    memcpy(*s, pszTextutf8, strLength);
+    (*s)[strLength] = '\0';
+    free_utf8_string(pszTextutf8);
+}
+
+// delegate test
+typedef void (__cdecl * Callback)(char *text, int index);
+extern "C" DLL_EXPORT void _cdecl Utf8DelegateAsParameter(Callback managedCallback)
+{
+    for (int i = 0; i < NSTRINGS; ++i) 
+    {        
+        char *pszNative = get_utf8_string(i);
+        managedCallback(pszNative, i);
+        free_utf8_string(pszNative);
+    }
+}
\ No newline at end of file
diff --git a/tests/src/Interop/StringMarshalling/UTF8/project.json b/tests/src/Interop/StringMarshalling/UTF8/project.json
new file mode 100644 (file)
index 0000000..fc3f026
--- /dev/null
@@ -0,0 +1,15 @@
+{
+  "dependencies": {},
+  "frameworks": {
+    "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
+  }
+}
index 39af8a9..ead777e 100644 (file)
@@ -787,7 +787,7 @@ void ChangeU(U* p)
        p->uiPtr = (LPVOID)(64);
        p->s = 32767;
        p->us = 0;
-       p->b = 255;
+       p->b = -1;
        p->sb = -128;
        p->l = -1234567890;
        p->ul = 0;
@@ -897,4 +897,4 @@ bool IsCorrectLongStructPack16Explicit(LongStructPack16Explicit* p)
        if(p->l1 != 32 || p->l2 != 32)
                return false;
        return true;
-}
\ No newline at end of file
+}
index bea7256..3f64f24 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // NOT Int32 Example in IL
 .assembly extern legacy library mscorlib {}
diff --git a/tests/src/JIT/CodeGenBringUpTests/DivConst.cs b/tests/src/JIT/CodeGenBringUpTests/DivConst.cs
new file mode 100644 (file)
index 0000000..3a2ca09
--- /dev/null
@@ -0,0 +1,423 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Runtime.CompilerServices;
+
+static class DivConst
+{
+    // I4
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Div_0(int i4)
+    {
+        return i4 / 0;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Div_1(int i4)
+    {
+        return i4 / 1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Div_Minus1(int i4)
+    {
+        return i4 / -1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Div_3(int i4)
+    {
+        return i4 / 3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_DivRef_5(ref int i4)
+    {
+        return i4 / 5;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Div_7(int i4)
+    {
+        return i4 / 7;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Div_Minus3(int i4)
+    {
+        return i4 / -3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_DivPow2_2(int i4)
+    {
+        return i4 / 2;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_DivPow2_Minus2(int i4)
+    {
+        return i4 / -2;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_DivPow2_8(ref int i4)
+    {
+        return i4 / 8;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_DivPow2_Minus4(int i4)
+    {
+        return i4 / -4;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_DivPow2_I4Min(int i4)
+    {
+        return i4 / int.MinValue;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_DivPow2Embedded_4(int x, int y)
+    {
+        return y * 2 + (x + 2) / 4 + (x * y >> 31);
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_DivPow2Call_8(int i4)
+    {
+        return I4_DivPow2_2(i4 / 8) + I4_DivRef_5(ref i4) / 8;
+    }
+
+    // I8
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Div_0(long i8)
+    {
+        return i8 / 0;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Div_1(long i8)
+    {
+        return i8 / 1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Div_Minus1(long i8)
+    {
+        return i8 / -1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Div_3(long i8)
+    {
+        return i8 / 3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Div_5(long i8)
+    {
+        return i8 / 5;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Div_7(ref long i8)
+    {
+        return i8 / 7;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Div_Minus3(long i8)
+    {
+        return i8 / -3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_DivPow2_4(long i8)
+    {
+        return i8 / 4;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_DivPow2_Minus8(long i8)
+    {
+        return i8 / -8;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_DivUncontainedPow2_1Shl32(long i8)
+    {
+        return i8 / (1L << 32);
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_DivUncontainedPow2_I8Min(long i8)
+    {
+        return i8 / long.MinValue;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_DivPow2Embedded_4(long x, long y)
+    {
+        return y * 2 + (x + 2) / 4 + (x * y >> 31);
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_DivPow2Call_8(long i8)
+    {
+        return I8_DivPow2_4(i8 / 8) + I8_Div_5(i8) / 8;
+    }
+}
+
+static class DivProgram
+{
+    public static int Main()
+    {
+        const int Pass = 100;
+        const int Fail = -1;
+
+        // I4
+
+        try
+        {
+            DivConst.I4_Div_0(42);
+            return Fail;
+        }
+        catch (DivideByZeroException)
+        {
+        }
+        catch (Exception)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_Div_1(42) != 42)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_Div_Minus1(42) != -42)
+        {
+            return Fail;
+        }
+
+        try
+        {
+            DivConst.I4_Div_Minus1(int.MinValue);
+            return Fail;
+        }
+        catch (OverflowException)
+        {
+        }
+        catch (Exception)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_Div_3(42) != 14)
+        {
+            return Fail;
+        }
+
+        {
+            int dividend = 42;
+
+            if (DivConst.I4_DivRef_5(ref dividend) != 8)
+            {
+                return Fail;
+            }
+        }
+
+        if (DivConst.I4_Div_7(42) != 6)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_Div_Minus3(42) != -14)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_DivPow2_2(42) != 21)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_DivPow2_2(43) != 21)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_DivPow2_2(-42) != -21)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_DivPow2_2(-43) != -21)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_DivPow2_Minus2(43) != -21)
+        {
+            return Fail;
+        }
+
+        {
+            int dividend = 42;
+
+            if (DivConst.I4_DivPow2_8(ref dividend) != 5)
+            {
+                return Fail;
+            }
+        }
+
+        {
+            int dividend = -42;
+
+            if (DivConst.I4_DivPow2_8(ref dividend) != -5)
+            {
+                return Fail;
+            }
+        }
+
+        if (DivConst.I4_DivPow2_Minus4(42) != -10)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_DivPow2_Minus4(-42) != 10)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_DivPow2_I4Min(-42) != 0)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_DivPow2_I4Min(int.MinValue) != 1)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_DivPow2Embedded_4(420, 938) != 1981)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I4_DivPow2Call_8(420) != 36)
+        {
+            return Fail;
+        }
+
+        // I8
+
+        try
+        {
+            DivConst.I8_Div_0(42);
+            return Fail;
+        }
+        catch (DivideByZeroException)
+        {
+        }
+        catch (Exception)
+        {
+            return Pass;
+        }
+
+        if (DivConst.I8_Div_1(42) != 42)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I8_Div_Minus1(42) != -42)
+        {
+            return Fail;
+        }
+
+        try
+        {
+            DivConst.I8_Div_Minus1(long.MinValue);
+            return Fail;
+        }
+        catch (OverflowException)
+        {
+        }
+        catch (Exception)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I8_Div_3(42) != 14)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I8_Div_5(42) != 8)
+        {
+            return Fail;
+        }
+
+        {
+            long dividend = 45;
+
+            if (DivConst.I8_Div_7(ref dividend) != 6)
+            {
+                return Fail;
+            }
+        }
+
+        if (DivConst.I8_Div_Minus3(42) != -14)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I8_DivPow2_4(42) != 10)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I8_DivPow2_Minus8(42) != -5)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I8_DivPow2_Minus8(-42) != 5)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I8_DivUncontainedPow2_1Shl32(1L << 33) != 2)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I8_DivUncontainedPow2_I8Min(42) != 0)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I8_DivUncontainedPow2_I8Min(long.MinValue) != 1)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I8_DivPow2Embedded_4(420, 938) != 1981)
+        {
+            return Fail;
+        }
+
+        if (DivConst.I8_DivPow2Call_8(420) != 23)
+        {
+            return Fail;
+        }
+
+        return Pass;
+    }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/DivConst.csproj b/tests/src/JIT/CodeGenBringUpTests/DivConst.csproj
new file mode 100644 (file)
index 0000000..58b6823
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{EC6FD253-5247-4D8C-887E-453B5647A0A7}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+  </PropertyGroup>
+  <!-- Default configurations to help VS understand the configurations -->
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+  </PropertyGroup>
+  <ItemGroup>
+    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+      <Visible>False</Visible>
+    </CodeAnalysisDependentAssemblyPaths>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="$(JitPackagesConfigFileDirectory)threading+thread\project.json" />
+  </ItemGroup>
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DivConst.cs" />
+  </ItemGroup>
+  <PropertyGroup>
+    <ProjectJson>$(JitPackagesConfigFileDirectory)threading+thread\project.json</ProjectJson>
+    <ProjectLockJson>$(JitPackagesConfigFileDirectory)threading+thread\project.lock.json</ProjectLockJson>
+  </PropertyGroup>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/ModConst.cs b/tests/src/JIT/CodeGenBringUpTests/ModConst.cs
new file mode 100644 (file)
index 0000000..4552fed
--- /dev/null
@@ -0,0 +1,427 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Runtime.CompilerServices;
+
+static class ModConst
+{
+    // I4
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Mod_0(int i4)
+    {
+        return i4 % 0;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Mod_1(int i4)
+    {
+        return i4 % 1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Mod_Minus1(int i4)
+    {
+        return i4 % -1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Mod_3(int i4)
+    {
+        return i4 % 3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_ModRef_5(ref int i4)
+    {
+        return i4 % 5;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Mod_7(int i4)
+    {
+        return i4 % 7;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_Mod_Minus3(int i4)
+    {
+        return i4 % -3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_ModPow2_2(int i4)
+    {
+        return i4 % 2;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_ModPow2_Minus2(int i4)
+    {
+        return i4 % -2;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_ModPow2_8(ref int i4)
+    {
+        return i4 % 8;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_ModPow2_Minus4(int i4)
+    {
+        return i4 % -4;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_ModPow2_I4Min(ref int i4)
+    {
+        return i4 % int.MinValue;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_ModPow2Embedded_4(int x, int y)
+    {
+        return y * 2 + (x + 2) % 4 + (x * y >> 31);
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static int I4_ModPow2Call_8(int i4)
+    {
+        return I4_ModPow2_2(i4 % 8) + I4_ModRef_5(ref i4) % 8;
+    }
+
+    // I8
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Mod_0(long i8)
+    {
+        return i8 % 0;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Mod_1(long i8)
+    {
+        return i8 % 1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Mod_Minus1(long i8)
+    {
+        return i8 % -1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Mod_3(long i8)
+    {
+        return i8 % 3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Mod_5(long i8)
+    {
+        return i8 % 5;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Mod_7(long i8)
+    {
+        return i8 % 7;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_Mod_Minus3(long i8)
+    {
+        return i8 % -3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_ModPow2_4(long i8)
+    {
+        return i8 % 4;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_ModPow2_Minus8(long i8)
+    {
+        return i8 % -8;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_ModUncontainedPow2_1Shl32(long i8)
+    {
+        return i8 % (1L << 32);
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_ModUncontainedPow2_I8Min(long i8)
+    {
+        return i8 % long.MinValue;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_ModPow2Embedded_4(long x, long y)
+    {
+        return y * 2 + (x + 2) % 4 + (x * y >> 31);
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static long I8_ModPow2Call_8(long i8)
+    {
+        return I8_ModPow2_4(i8 % 8) + I8_Mod_5(i8) % 8;
+    }
+}
+
+static class ModProgram
+{
+    public static int Main()
+    {
+        const int Pass = 100;
+        const int Fail = -1;
+
+        // I4
+
+        try
+        {
+            ModConst.I4_Mod_0(42);
+            return Fail;
+        }
+        catch (DivideByZeroException)
+        {
+        }
+        catch (Exception)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I4_Mod_1(42) != 0)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I4_Mod_Minus1(42) != 0)
+        {
+            return Fail;
+        }
+
+        try
+        {
+            ModConst.I4_Mod_Minus1(int.MinValue);
+            return Fail;
+        }
+        catch (OverflowException)
+        {
+        }
+        catch (Exception)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I4_Mod_3(41) != 2)
+        {
+            return Fail;
+        }
+
+        {
+            int dividend = 42;
+
+            if (ModConst.I4_ModRef_5(ref dividend) != 2)
+            {
+                return Fail;
+            }
+        }
+
+        if (ModConst.I4_Mod_7(42) != 0)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I4_Mod_Minus3(41) != 2)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I4_ModPow2_2(43) != 1)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I4_ModPow2_2(42) != 0)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I4_ModPow2_2(-43) != -1)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I4_ModPow2_2(-42) != 0)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I4_ModPow2_Minus2(43) != 1)
+        {
+            return Fail;
+        }
+
+        {
+            int dividend = 42;
+
+            if (ModConst.I4_ModPow2_8(ref dividend) != 2)
+            {
+                return Fail;
+            }
+        }
+
+        {
+            int dividend = -42;
+
+            if (ModConst.I4_ModPow2_8(ref dividend) != -2)
+            {
+                return Fail;
+            }
+        }
+
+        if (ModConst.I4_ModPow2_Minus4(42) != 2)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I4_ModPow2_Minus4(-42) != -2)
+        {
+            return Fail;
+        }
+
+        {
+            int dividend = -42;
+
+            if (ModConst.I4_ModPow2_I4Min(ref dividend) != -42)
+            {
+                return Fail;
+            }
+        }
+
+        {
+            int dividend = int.MinValue;
+
+            if (ModConst.I4_ModPow2_I4Min(ref dividend) != 0)
+            {
+                return Fail;
+            }
+        }
+
+        if (ModConst.I4_ModPow2Embedded_4(420, 938) != 1878)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I4_ModPow2Call_8(3674) != 4)
+        {
+            return Fail;
+        }
+
+        // I8
+
+        try
+        {
+            ModConst.I8_Mod_0(42);
+            return Fail;
+        }
+        catch (DivideByZeroException)
+        {
+        }
+        catch (Exception)
+        {
+            return Pass;
+        }
+
+        if (ModConst.I8_Mod_1(42) != 0)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_Mod_Minus1(42) != 0)
+        {
+            return Fail;
+        }
+
+        try
+        {
+            ModConst.I8_Mod_Minus1(long.MinValue);
+            return Fail;
+        }
+        catch (OverflowException)
+        {
+        }
+        catch (Exception)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_Mod_3(43) != 1)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_Mod_5(42) != 2)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_Mod_7(45) != 3)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_Mod_Minus3(-43) != -1)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_ModPow2_4(42) != 2)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_ModPow2_Minus8(42) != 2)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_ModPow2_Minus8(-42) != -2)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_ModUncontainedPow2_1Shl32((1L << 33) + 42L) != 42)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_ModUncontainedPow2_I8Min(42) != 42)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_ModUncontainedPow2_I8Min(long.MinValue) != 0)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_ModPow2Embedded_4(420, 938) != 1878)
+        {
+            return Fail;
+        }
+
+        if (ModConst.I8_ModPow2Call_8(3674) != 6)
+        {
+            return Fail;
+        }
+
+        return Pass;
+    }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/ModConst.csproj b/tests/src/JIT/CodeGenBringUpTests/ModConst.csproj
new file mode 100644 (file)
index 0000000..7e04c92
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{314823E3-7BB2-4C19-BA04-5AC565215BA3}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+  </PropertyGroup>
+  <!-- Default configurations to help VS understand the configurations -->
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+  </PropertyGroup>
+  <ItemGroup>
+    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+      <Visible>False</Visible>
+    </CodeAnalysisDependentAssemblyPaths>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="$(JitPackagesConfigFileDirectory)threading+thread\project.json" />
+  </ItemGroup>
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="ModConst.cs" />
+  </ItemGroup>
+  <PropertyGroup>
+    <ProjectJson>$(JitPackagesConfigFileDirectory)threading+thread\project.json</ProjectJson>
+    <ProjectLockJson>$(JitPackagesConfigFileDirectory)threading+thread\project.lock.json</ProjectLockJson>
+  </PropertyGroup>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/UDivConst.cs b/tests/src/JIT/CodeGenBringUpTests/UDivConst.cs
new file mode 100644 (file)
index 0000000..cd507fe
--- /dev/null
@@ -0,0 +1,219 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Runtime.CompilerServices;
+
+static class UDivConst
+{
+    // U4
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_Div_0(uint u4)
+    {
+        return u4 / 0;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_Div_1(uint u4)
+    {
+        return u4 / 1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_Div_3(uint u4)
+    {
+        return u4 / 3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_Div_5(uint u4)
+    {
+        return u4 / 5;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_Div_7(uint u4)
+    {
+        return u4 / 7;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_DivPow2_16(uint u4)
+    {
+        return u4 / 16;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_DivPow2_I4Min(uint u4)
+    {
+        return u4 / 0x80000000u;
+    }
+
+    // U8
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_Div_0(ulong u8)
+    {
+        return u8 / 0;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_Div_1(ulong u8)
+    {
+        return u8 / 1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_Div_3(ulong u8)
+    {
+        return u8 / 3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_Div_5(ulong u8)
+    {
+        return u8 / 5;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_Div_7(ulong u8)
+    {
+        return u8 / 7;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_DivUncontained_I8Max(ulong u8)
+    {
+        return u8 / ulong.MaxValue;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_DivPow2_2(ulong u8)
+    {
+        return u8 / 2;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_DivUncontainedPow2_1Shl32(ulong u8)
+    {
+        return u8 / (1UL << 32);
+    }
+}
+
+static class UDivProgram
+{
+    public static int Main()
+    {
+        const int Pass = 100;
+        const int Fail = -1;
+
+        // U4
+
+        try
+        {
+            UDivConst.U4_Div_0(42);
+            return Fail;
+        }
+        catch (DivideByZeroException)
+        {
+        }
+        catch (Exception)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U4_Div_1(42) != 42)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U4_Div_3(42) != 14)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U4_Div_5(42) != 8)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U4_Div_7(43) != 6)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U4_DivPow2_16(42) != 2)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U4_DivPow2_I4Min(3) != 0)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U4_DivPow2_I4Min(0x80000001u) != 1)
+        {
+            return Fail;
+        }
+
+        // U8
+
+        try
+        {
+            UDivConst.U8_Div_0(42);
+            return Fail;
+        }
+        catch (DivideByZeroException)
+        {
+        }
+        catch (Exception)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U8_Div_1(42) != 42)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U8_Div_3(42) != 14)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U8_Div_5(42) != 8)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U8_Div_7(420) != 60)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U8_DivUncontained_I8Max(ulong.MaxValue - 1) != 0)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U8_DivUncontained_I8Max(ulong.MaxValue) != 1)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U8_DivPow2_2(42) != 21)
+        {
+            return Fail;
+        }
+
+        if (UDivConst.U8_DivUncontainedPow2_1Shl32(1UL << 33) != 2)
+        {
+            return Fail;
+        }
+
+        return Pass;
+    }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/UDivConst.csproj b/tests/src/JIT/CodeGenBringUpTests/UDivConst.csproj
new file mode 100644 (file)
index 0000000..81a799a
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{53C70B64-C175-43BF-A98A-719868D6D695}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+  </PropertyGroup>
+  <!-- Default configurations to help VS understand the configurations -->
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+  </PropertyGroup>
+  <ItemGroup>
+    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+      <Visible>False</Visible>
+    </CodeAnalysisDependentAssemblyPaths>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="$(JitPackagesConfigFileDirectory)threading+thread\project.json" />
+  </ItemGroup>
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="UDivConst.cs" />
+  </ItemGroup>
+  <PropertyGroup>
+    <ProjectJson>$(JitPackagesConfigFileDirectory)threading+thread\project.json</ProjectJson>
+    <ProjectLockJson>$(JitPackagesConfigFileDirectory)threading+thread\project.lock.json</ProjectLockJson>
+  </PropertyGroup>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/UModConst.cs b/tests/src/JIT/CodeGenBringUpTests/UModConst.cs
new file mode 100644 (file)
index 0000000..06cc28d
--- /dev/null
@@ -0,0 +1,224 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Runtime.CompilerServices;
+
+static class UModConst
+{
+    // U4
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_Mod_0(uint u4)
+    {
+        return u4 % 0;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_Mod_1(uint u4)
+    {
+        return u4 % 1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_Mod_3(uint u4)
+    {
+        return u4 % 3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_Mod_5(uint u4)
+    {
+        return u4 % 5;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_Mod_7(uint u4)
+    {
+        return u4 % 7;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_ModPow2_16(uint u4)
+    {
+        return u4 % 16;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static uint U4_ModPow2_0x80000000(uint u4)
+    {
+        return u4 % 0x80000000u;
+    }
+
+    // U8
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_Mod_0(ulong u8)
+    {
+        return u8 % 0;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_Mod_1(ulong u8)
+    {
+        return u8 % 1;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_Mod_3(ulong u8)
+    {
+        return u8 % 3;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_Mod_5(ulong u8)
+    {
+        return u8 % 5;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_Mod_7(ulong u8)
+    {
+        return u8 % 7;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_ModUncontained_I8Max(ulong u8)
+    {
+        return u8 % ulong.MaxValue;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_ModPow2_8(ulong u8)
+    {
+        return u8 % 8;
+    }
+
+    [MethodImpl(MethodImplOptions.NoInlining)]
+    public static ulong U8_ModUncontainedPow2_1Shl32(ulong u8)
+    {
+        return u8 % (1UL << 32);
+    }
+}
+
+static class UModProgram
+{
+    public static int Main()
+    {
+        const int Pass = 100;
+        const int Fail = -1;
+
+        // U4
+
+        try
+        {
+            UModConst.U4_Mod_0(42);
+            return Fail;
+        }
+        catch (DivideByZeroException)
+        {
+        }
+        catch (Exception)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U4_Mod_1(42) != 0)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U4_Mod_3(43) != 1)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U4_Mod_5(42) != 2)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U4_Mod_7(43) != 1)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U4_ModPow2_16(42) != 10)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U4_ModPow2_0x80000000(3) != 3)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U4_ModPow2_0x80000000(0x80000001u) != 1)
+        {
+            return Fail;
+        }
+
+        // U8
+
+        try
+        {
+            UModConst.U8_Mod_0(42);
+            return Fail;
+        }
+        catch (DivideByZeroException)
+        {
+        }
+        catch (Exception)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U8_Mod_1(42) != 0)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U8_Mod_3(43) != 1)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U8_Mod_5(42) != 2)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U8_Mod_7(420) != 0)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U8_ModUncontained_I8Max(ulong.MaxValue - 1) != ulong.MaxValue - 1)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U8_ModUncontained_I8Max(ulong.MaxValue) != 0)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U8_ModPow2_8(42) != 2)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U8_ModPow2_8(43) != 3)
+        {
+            return Fail;
+        }
+
+        if (UModConst.U8_ModUncontainedPow2_1Shl32((1UL << 33) + 42) != 42)
+        {
+            return Fail;
+        }
+
+        return Pass;
+    }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/UModConst.csproj b/tests/src/JIT/CodeGenBringUpTests/UModConst.csproj
new file mode 100644 (file)
index 0000000..942ffbe
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{D7512FD8-08E1-4BB6-8701-E3FEEAE4FF66}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+  </PropertyGroup>
+  <!-- Default configurations to help VS understand the configurations -->
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+  </PropertyGroup>
+  <ItemGroup>
+    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+      <Visible>False</Visible>
+    </CodeAnalysisDependentAssemblyPaths>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="$(JitPackagesConfigFileDirectory)threading+thread\project.json" />
+  </ItemGroup>
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="UModConst.cs" />
+  </ItemGroup>
+  <PropertyGroup>
+    <ProjectJson>$(JitPackagesConfigFileDirectory)threading+thread\project.json</ProjectJson>
+    <ProjectLockJson>$(JitPackagesConfigFileDirectory)threading+thread\project.lock.json</ProjectLockJson>
+  </PropertyGroup>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+  </PropertyGroup>
+</Project>
\ No newline at end of file
index 99bc671..d52257d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 1805bcb..dfafc43 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 1c9a81c..40cc66b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e8a1542..4ce1767 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 30c5ea9..3f69ae6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8c89327..be27cfb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 6188985..caaed70 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7ab7a54..c11c540 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8214d87..ef89aa7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2daf2fa..4fd1840 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 8275a28..07d6b42 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8ae93d5..d42f1d7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fc13217..5a9b1c9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 0f57b00..f8189bd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
  .module 'rethrow.exe'
 .assembly extern legacy library mscorlib {}
index 4334981..a7c8b7a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 5bc4eb5..12117db 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 297c726..fd7ed65 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index bce29d0..355685f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index afcc553..02ad880 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 43edc53..f7dce28 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -9,7 +12,7 @@
 {
 }
 
-.class public auto ansi Thread_EA   
+.class public auto ansi Thread_EA
 {
   .method public static void Dispatch(method explicit instance void *(int32), int32)
   {
     IL_0007:  ldc.i4     0x1
     IL_000c:  add
      call       void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0019:  ldftn      void ?Function1_2@@YAXH@Z(int32) 
+    IL_0019:  ldftn      void ?Function1_2@@YAXH@Z(int32)
     IL_0012:  ldloc.0
     IL_0013:  ldc.i4     0x1
     IL_0018:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0025:  ldftn      void ?Function1_3@@YAXH@Z(int32) 
+    IL_0025:  ldftn      void ?Function1_3@@YAXH@Z(int32)
     IL_001e:  ldloc.0
     IL_001f:  ldc.i4     0x1
     IL_0024:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0031:  ldftn      void ?Function1_4@@YAXH@Z(int32) 
+    IL_0031:  ldftn      void ?Function1_4@@YAXH@Z(int32)
     IL_002a:  ldloc.0
     IL_002b:  ldc.i4     0x1
     IL_0030:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_003d:  ldftn      void ?Function1_5@@YAXH@Z(int32) 
+    IL_003d:  ldftn      void ?Function1_5@@YAXH@Z(int32)
     IL_0036:  ldloc.0
     IL_0037:  ldc.i4     0x1
     IL_003c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0049:  ldftn      void ?Function1_6@@YAXH@Z(int32) 
+    IL_0049:  ldftn      void ?Function1_6@@YAXH@Z(int32)
     IL_0042:  ldloc.0
     IL_0043:  ldc.i4     0x1
     IL_0048:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0055:  ldftn      void ?Function1_7@@YAXH@Z(int32) 
+    IL_0055:  ldftn      void ?Function1_7@@YAXH@Z(int32)
     IL_004e:  ldloc.0
     IL_004f:  ldc.i4     0x1
     IL_0054:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0061:  ldftn      void ?Function1_8@@YAXH@Z(int32) 
+    IL_0061:  ldftn      void ?Function1_8@@YAXH@Z(int32)
     IL_005a:  ldloc.0
     IL_005b:  ldc.i4     0x1
     IL_0060:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_006d:  ldftn      void ?Function1_9@@YAXH@Z(int32) 
+    IL_006d:  ldftn      void ?Function1_9@@YAXH@Z(int32)
     IL_0066:  ldloc.0
     IL_0067:  ldc.i4     0x1
     IL_006c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0079:  ldftn      void ?Function1_10@@YAXH@Z(int32) 
+    IL_0079:  ldftn      void ?Function1_10@@YAXH@Z(int32)
     IL_0072:  ldloc.0
     IL_0073:  ldc.i4     0x1
     IL_0078:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0085:  ldftn      void ?Function1_11@@YAXH@Z(int32) 
+    IL_0085:  ldftn      void ?Function1_11@@YAXH@Z(int32)
     IL_007e:  ldloc.0
     IL_007f:  ldc.i4     0x1
     IL_0084:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0091:  ldftn      void ?Function1_12@@YAXH@Z(int32) 
+    IL_0091:  ldftn      void ?Function1_12@@YAXH@Z(int32)
     IL_008a:  ldloc.0
     IL_008b:  ldc.i4     0x1
     IL_0090:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_009d:  ldftn      void ?Function1_13@@YAXH@Z(int32) 
+    IL_009d:  ldftn      void ?Function1_13@@YAXH@Z(int32)
     IL_0096:  ldloc.0
     IL_0097:  ldc.i4     0x1
     IL_009c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_00a9:  ldftn      void ?Function1_14@@YAXH@Z(int32) 
+    IL_00a9:  ldftn      void ?Function1_14@@YAXH@Z(int32)
     IL_00a2:  ldloc.0
     IL_00a3:  ldc.i4     0x1
     IL_00a8:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_00b5:  ldftn      void ?Function1_15@@YAXH@Z(int32) 
+    IL_00b5:  ldftn      void ?Function1_15@@YAXH@Z(int32)
     IL_00ae:  ldloc.0
     IL_00af:  ldc.i4     0x1
     IL_00b4:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_00c1:  ldftn      void ?Function1_16@@YAXH@Z(int32) 
+    IL_00c1:  ldftn      void ?Function1_16@@YAXH@Z(int32)
     IL_00ba:  ldloc.0
     IL_00bb:  ldc.i4     0x1
     IL_00c0:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_00cd:  ldftn      void ?Function1_17@@YAXH@Z(int32) 
+    IL_00cd:  ldftn      void ?Function1_17@@YAXH@Z(int32)
     IL_00c6:  ldloc.0
     IL_00c7:  ldc.i4     0x1
     IL_00cc:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_00d9:  ldftn      void ?Function1_18@@YAXH@Z(int32) 
+    IL_00d9:  ldftn      void ?Function1_18@@YAXH@Z(int32)
     IL_00d2:  ldloc.0
     IL_00d3:  ldc.i4     0x1
     IL_00d8:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_00e5:  ldftn      void ?Function1_19@@YAXH@Z(int32) 
+    IL_00e5:  ldftn      void ?Function1_19@@YAXH@Z(int32)
     IL_00de:  ldloc.0
     IL_00df:  ldc.i4     0x1
     IL_00e4:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_00f1:  ldftn      void ?Function1_20@@YAXH@Z(int32) 
+    IL_00f1:  ldftn      void ?Function1_20@@YAXH@Z(int32)
     IL_00ea:  ldloc.0
     IL_00eb:  ldc.i4     0x1
     IL_00f0:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_00fd:  ldftn      void ?Function1_21@@YAXH@Z(int32) 
+    IL_00fd:  ldftn      void ?Function1_21@@YAXH@Z(int32)
     IL_00f6:  ldloc.0
     IL_00f7:  ldc.i4     0x1
     IL_00fc:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0109:  ldftn      void ?Function1_22@@YAXH@Z(int32) 
+    IL_0109:  ldftn      void ?Function1_22@@YAXH@Z(int32)
     IL_0102:  ldloc.0
     IL_0103:  ldc.i4     0x1
     IL_0108:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0115:  ldftn      void ?Function1_23@@YAXH@Z(int32) 
+    IL_0115:  ldftn      void ?Function1_23@@YAXH@Z(int32)
     IL_010e:  ldloc.0
     IL_010f:  ldc.i4     0x1
     IL_0114:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0121:  ldftn      void ?Function1_24@@YAXH@Z(int32) 
+    IL_0121:  ldftn      void ?Function1_24@@YAXH@Z(int32)
     IL_011a:  ldloc.0
     IL_011b:  ldc.i4     0x1
     IL_0120:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_012d:  ldftn      void ?Function1_25@@YAXH@Z(int32) 
+    IL_012d:  ldftn      void ?Function1_25@@YAXH@Z(int32)
     IL_0126:  ldloc.0
     IL_0127:  ldc.i4     0x1
     IL_012c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0139:  ldftn      void ?Function1_26@@YAXH@Z(int32) 
+    IL_0139:  ldftn      void ?Function1_26@@YAXH@Z(int32)
     IL_0132:  ldloc.0
     IL_0133:  ldc.i4     0x1
     IL_0138:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0145:  ldftn      void ?Function1_27@@YAXH@Z(int32) 
+    IL_0145:  ldftn      void ?Function1_27@@YAXH@Z(int32)
     IL_013e:  ldloc.0
     IL_013f:  ldc.i4     0x1
     IL_0144:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0151:  ldftn      void ?Function1_28@@YAXH@Z(int32) 
+    IL_0151:  ldftn      void ?Function1_28@@YAXH@Z(int32)
     IL_014a:  ldloc.0
     IL_014b:  ldc.i4     0x1
     IL_0150:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_015d:  ldftn      void ?Function1_29@@YAXH@Z(int32) 
+    IL_015d:  ldftn      void ?Function1_29@@YAXH@Z(int32)
     IL_0156:  ldloc.0
     IL_0157:  ldc.i4     0x1
     IL_015c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0169:  ldftn      void ?Function1_30@@YAXH@Z(int32) 
+    IL_0169:  ldftn      void ?Function1_30@@YAXH@Z(int32)
     IL_0162:  ldloc.0
     IL_0163:  ldc.i4     0x1
     IL_0168:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0175:  ldftn      void ?Function1_31@@YAXH@Z(int32) 
+    IL_0175:  ldftn      void ?Function1_31@@YAXH@Z(int32)
     IL_016e:  ldloc.0
     IL_016f:  ldc.i4     0x1
     IL_0174:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0181:  ldftn      void ?Function1_32@@YAXH@Z(int32) 
+    IL_0181:  ldftn      void ?Function1_32@@YAXH@Z(int32)
     IL_017a:  ldloc.0
     IL_017b:  ldc.i4     0x1
     IL_0180:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_018d:  ldftn      void ?Function1_33@@YAXH@Z(int32) 
+    IL_018d:  ldftn      void ?Function1_33@@YAXH@Z(int32)
     IL_0186:  ldloc.0
     IL_0187:  ldc.i4     0x1
     IL_018c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0199:  ldftn      void ?Function1_34@@YAXH@Z(int32) 
+    IL_0199:  ldftn      void ?Function1_34@@YAXH@Z(int32)
     IL_0192:  ldloc.0
     IL_0193:  ldc.i4     0x1
     IL_0198:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_01a5:  ldftn      void ?Function1_35@@YAXH@Z(int32) 
+    IL_01a5:  ldftn      void ?Function1_35@@YAXH@Z(int32)
     IL_019e:  ldloc.0
     IL_019f:  ldc.i4     0x1
     IL_01a4:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_01b1:  ldftn      void ?Function1_36@@YAXH@Z(int32) 
+    IL_01b1:  ldftn      void ?Function1_36@@YAXH@Z(int32)
     IL_01aa:  ldloc.0
     IL_01ab:  ldc.i4     0x1
     IL_01b0:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_01bd:  ldftn      void ?Function1_37@@YAXH@Z(int32) 
+    IL_01bd:  ldftn      void ?Function1_37@@YAXH@Z(int32)
     IL_01b6:  ldloc.0
     IL_01b7:  ldc.i4     0x1
     IL_01bc:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_01c9:  ldftn      void ?Function1_38@@YAXH@Z(int32) 
+    IL_01c9:  ldftn      void ?Function1_38@@YAXH@Z(int32)
     IL_01c2:  ldloc.0
     IL_01c3:  ldc.i4     0x1
     IL_01c8:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_01d5:  ldftn      void ?Function1_39@@YAXH@Z(int32) 
+    IL_01d5:  ldftn      void ?Function1_39@@YAXH@Z(int32)
     IL_01ce:  ldloc.0
     IL_01cf:  ldc.i4     0x1
     IL_01d4:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_01e1:  ldftn      void ?Function1_40@@YAXH@Z(int32) 
+    IL_01e1:  ldftn      void ?Function1_40@@YAXH@Z(int32)
     IL_01da:  ldloc.0
     IL_01db:  ldc.i4     0x1
     IL_01e0:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_01ed:  ldftn      void ?Function1_41@@YAXH@Z(int32) 
+    IL_01ed:  ldftn      void ?Function1_41@@YAXH@Z(int32)
     IL_01e6:  ldloc.0
     IL_01e7:  ldc.i4     0x1
     IL_01ec:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_01f9:  ldftn      void ?Function1_42@@YAXH@Z(int32) 
+    IL_01f9:  ldftn      void ?Function1_42@@YAXH@Z(int32)
     IL_01f2:  ldloc.0
     IL_01f3:  ldc.i4     0x1
     IL_01f8:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0205:  ldftn      void ?Function1_43@@YAXH@Z(int32) 
+    IL_0205:  ldftn      void ?Function1_43@@YAXH@Z(int32)
     IL_01fe:  ldloc.0
     IL_01ff:  ldc.i4     0x1
     IL_0204:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0211:  ldftn      void ?Function1_44@@YAXH@Z(int32) 
+    IL_0211:  ldftn      void ?Function1_44@@YAXH@Z(int32)
     IL_020a:  ldloc.0
     IL_020b:  ldc.i4     0x1
     IL_0210:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_021d:  ldftn      void ?Function1_45@@YAXH@Z(int32) 
+    IL_021d:  ldftn      void ?Function1_45@@YAXH@Z(int32)
     IL_0216:  ldloc.0
     IL_0217:  ldc.i4     0x1
     IL_021c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0229:  ldftn      void ?Function1_46@@YAXH@Z(int32) 
+    IL_0229:  ldftn      void ?Function1_46@@YAXH@Z(int32)
     IL_0222:  ldloc.0
     IL_0223:  ldc.i4     0x1
     IL_0228:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0235:  ldftn      void ?Function1_47@@YAXH@Z(int32) 
+    IL_0235:  ldftn      void ?Function1_47@@YAXH@Z(int32)
     IL_022e:  ldloc.0
     IL_022f:  ldc.i4     0x1
     IL_0234:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0241:  ldftn      void ?Function1_48@@YAXH@Z(int32) 
+    IL_0241:  ldftn      void ?Function1_48@@YAXH@Z(int32)
     IL_023a:  ldloc.0
     IL_023b:  ldc.i4     0x1
     IL_0240:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_024d:  ldftn      void ?Function1_49@@YAXH@Z(int32) 
+    IL_024d:  ldftn      void ?Function1_49@@YAXH@Z(int32)
     IL_0246:  ldloc.0
     IL_0247:  ldc.i4     0x1
     IL_024c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0259:  ldftn      void ?Function1_50@@YAXH@Z(int32) 
+    IL_0259:  ldftn      void ?Function1_50@@YAXH@Z(int32)
     IL_0252:  ldloc.0
     IL_0253:  ldc.i4     0x1
     IL_0258:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0265:  ldftn      void ?Function1_51@@YAXH@Z(int32) 
+    IL_0265:  ldftn      void ?Function1_51@@YAXH@Z(int32)
     IL_025e:  ldloc.0
     IL_025f:  ldc.i4     0x1
     IL_0264:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0271:  ldftn      void ?Function1_52@@YAXH@Z(int32) 
+    IL_0271:  ldftn      void ?Function1_52@@YAXH@Z(int32)
     IL_026a:  ldloc.0
     IL_026b:  ldc.i4     0x1
     IL_0270:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_027d:  ldftn      void ?Function1_53@@YAXH@Z(int32) 
+    IL_027d:  ldftn      void ?Function1_53@@YAXH@Z(int32)
     IL_0276:  ldloc.0
     IL_0277:  ldc.i4     0x1
     IL_027c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0289:  ldftn      void ?Function1_54@@YAXH@Z(int32) 
+    IL_0289:  ldftn      void ?Function1_54@@YAXH@Z(int32)
     IL_0282:  ldloc.0
     IL_0283:  ldc.i4     0x1
     IL_0288:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0295:  ldftn      void ?Function1_55@@YAXH@Z(int32) 
+    IL_0295:  ldftn      void ?Function1_55@@YAXH@Z(int32)
     IL_028e:  ldloc.0
     IL_028f:  ldc.i4     0x1
     IL_0294:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_02a1:  ldftn      void ?Function1_56@@YAXH@Z(int32) 
+    IL_02a1:  ldftn      void ?Function1_56@@YAXH@Z(int32)
     IL_029a:  ldloc.0
     IL_029b:  ldc.i4     0x1
     IL_02a0:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_02ad:  ldftn      void ?Function1_57@@YAXH@Z(int32) 
+    IL_02ad:  ldftn      void ?Function1_57@@YAXH@Z(int32)
     IL_02a6:  ldloc.0
     IL_02a7:  ldc.i4     0x1
     IL_02ac:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_02b9:  ldftn      void ?Function1_58@@YAXH@Z(int32) 
+    IL_02b9:  ldftn      void ?Function1_58@@YAXH@Z(int32)
     IL_02b2:  ldloc.0
     IL_02b3:  ldc.i4     0x1
     IL_02b8:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_02c5:  ldftn      void ?Function1_59@@YAXH@Z(int32) 
+    IL_02c5:  ldftn      void ?Function1_59@@YAXH@Z(int32)
     IL_02be:  ldloc.0
     IL_02bf:  ldc.i4     0x1
     IL_02c4:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_02d1:  ldftn      void ?Function1_60@@YAXH@Z(int32) 
+    IL_02d1:  ldftn      void ?Function1_60@@YAXH@Z(int32)
     IL_02ca:  ldloc.0
     IL_02cb:  ldc.i4     0x1
     IL_02d0:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_02dd:  ldftn      void ?Function1_61@@YAXH@Z(int32) 
+    IL_02dd:  ldftn      void ?Function1_61@@YAXH@Z(int32)
     IL_02d6:  ldloc.0
     IL_02d7:  ldc.i4     0x1
     IL_02dc:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_02e9:  ldftn      void ?Function1_62@@YAXH@Z(int32) 
+    IL_02e9:  ldftn      void ?Function1_62@@YAXH@Z(int32)
     IL_02e2:  ldloc.0
     IL_02e3:  ldc.i4     0x1
     IL_02e8:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_02f5:  ldftn      void ?Function1_63@@YAXH@Z(int32) 
+    IL_02f5:  ldftn      void ?Function1_63@@YAXH@Z(int32)
     IL_02ee:  ldloc.0
     IL_02ef:  ldc.i4     0x1
     IL_02f4:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0301:  ldftn      void ?Function1_64@@YAXH@Z(int32) 
+    IL_0301:  ldftn      void ?Function1_64@@YAXH@Z(int32)
     IL_02fa:  ldloc.0
     IL_02fb:  ldc.i4     0x1
     IL_0300:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_030d:  ldftn      void ?Function1_65@@YAXH@Z(int32) 
+    IL_030d:  ldftn      void ?Function1_65@@YAXH@Z(int32)
     IL_0306:  ldloc.0
     IL_0307:  ldc.i4     0x1
     IL_030c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0319:  ldftn      void ?Function1_66@@YAXH@Z(int32) 
+    IL_0319:  ldftn      void ?Function1_66@@YAXH@Z(int32)
     IL_0312:  ldloc.0
     IL_0313:  ldc.i4     0x1
     IL_0318:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0325:  ldftn      void ?Function1_67@@YAXH@Z(int32) 
+    IL_0325:  ldftn      void ?Function1_67@@YAXH@Z(int32)
     IL_031e:  ldloc.0
     IL_031f:  ldc.i4     0x1
     IL_0324:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0331:  ldftn      void ?Function1_68@@YAXH@Z(int32) 
+    IL_0331:  ldftn      void ?Function1_68@@YAXH@Z(int32)
     IL_032a:  ldloc.0
     IL_032b:  ldc.i4     0x1
     IL_0330:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_033d:  ldftn      void ?Function1_69@@YAXH@Z(int32) 
+    IL_033d:  ldftn      void ?Function1_69@@YAXH@Z(int32)
     IL_0336:  ldloc.0
     IL_0337:  ldc.i4     0x1
     IL_033c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0349:  ldftn      void ?Function1_70@@YAXH@Z(int32) 
+    IL_0349:  ldftn      void ?Function1_70@@YAXH@Z(int32)
     IL_0342:  ldloc.0
     IL_0343:  ldc.i4     0x1
     IL_0348:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0355:  ldftn      void ?Function1_1@@YAXH@Z(int32) 
+    IL_0355:  ldftn      void ?Function1_1@@YAXH@Z(int32)
     IL_034e:  ldloc.0
     IL_034f:  ldc.i4     0x1
     IL_0354:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0361:  ldftn      void ?Function1_2@@YAXH@Z(int32) 
+    IL_0361:  ldftn      void ?Function1_2@@YAXH@Z(int32)
     IL_035a:  ldloc.0
     IL_035b:  ldc.i4     0x1
     IL_0360:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_036d:  ldftn      void ?Function1_3@@YAXH@Z(int32) 
+    IL_036d:  ldftn      void ?Function1_3@@YAXH@Z(int32)
     IL_0366:  ldloc.0
     IL_0367:  ldc.i4     0x1
     IL_036c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0379:  ldftn      void ?Function1_4@@YAXH@Z(int32) 
+    IL_0379:  ldftn      void ?Function1_4@@YAXH@Z(int32)
     IL_0372:  ldloc.0
     IL_0373:  ldc.i4     0x1
     IL_0378:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0385:  ldftn      void ?Function1_5@@YAXH@Z(int32) 
+    IL_0385:  ldftn      void ?Function1_5@@YAXH@Z(int32)
     IL_037e:  ldloc.0
     IL_037f:  ldc.i4     0x1
     IL_0384:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0391:  ldftn      void ?Function1_6@@YAXH@Z(int32) 
+    IL_0391:  ldftn      void ?Function1_6@@YAXH@Z(int32)
     IL_038a:  ldloc.0
     IL_038b:  ldc.i4     0x1
     IL_0390:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_039d:  ldftn      void ?Function1_7@@YAXH@Z(int32) 
+    IL_039d:  ldftn      void ?Function1_7@@YAXH@Z(int32)
     IL_0396:  ldloc.0
     IL_0397:  ldc.i4     0x1
     IL_039c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_03a9:  ldftn      void ?Function1_8@@YAXH@Z(int32) 
+    IL_03a9:  ldftn      void ?Function1_8@@YAXH@Z(int32)
     IL_03a2:  ldloc.0
     IL_03a3:  ldc.i4     0x1
     IL_03a8:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_03b5:  ldftn      void ?Function1_9@@YAXH@Z(int32) 
+    IL_03b5:  ldftn      void ?Function1_9@@YAXH@Z(int32)
     IL_03ae:  ldloc.0
     IL_03af:  ldc.i4     0x1
     IL_03b4:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_03c1:  ldftn      void ?Function1_10@@YAXH@Z(int32) 
+    IL_03c1:  ldftn      void ?Function1_10@@YAXH@Z(int32)
     IL_03ba:  ldloc.0
     IL_03bb:  ldc.i4     0x1
     IL_03c0:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_03cd:  ldftn      void ?Function1_11@@YAXH@Z(int32) 
+    IL_03cd:  ldftn      void ?Function1_11@@YAXH@Z(int32)
     IL_03c6:  ldloc.0
     IL_03c7:  ldc.i4     0x1
     IL_03cc:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_03d9:  ldftn      void ?Function1_12@@YAXH@Z(int32) 
+    IL_03d9:  ldftn      void ?Function1_12@@YAXH@Z(int32)
     IL_03d2:  ldloc.0
     IL_03d3:  ldc.i4     0x1
     IL_03d8:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_03e5:  ldftn      void ?Function1_13@@YAXH@Z(int32) 
+    IL_03e5:  ldftn      void ?Function1_13@@YAXH@Z(int32)
     IL_03de:  ldloc.0
     IL_03df:  ldc.i4     0x1
     IL_03e4:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_03f1:  ldftn      void ?Function1_14@@YAXH@Z(int32) 
+    IL_03f1:  ldftn      void ?Function1_14@@YAXH@Z(int32)
     IL_03ea:  ldloc.0
     IL_03eb:  ldc.i4     0x1
     IL_03f0:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_03fd:  ldftn      void ?Function1_15@@YAXH@Z(int32) 
+    IL_03fd:  ldftn      void ?Function1_15@@YAXH@Z(int32)
     IL_03f6:  ldloc.0
     IL_03f7:  ldc.i4     0x1
     IL_03fc:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0409:  ldftn      void ?Function1_16@@YAXH@Z(int32) 
+    IL_0409:  ldftn      void ?Function1_16@@YAXH@Z(int32)
     IL_0402:  ldloc.0
     IL_0403:  ldc.i4     0x1
     IL_0408:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0415:  ldftn      void ?Function1_17@@YAXH@Z(int32) 
+    IL_0415:  ldftn      void ?Function1_17@@YAXH@Z(int32)
     IL_040e:  ldloc.0
     IL_040f:  ldc.i4     0x1
     IL_0414:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0421:  ldftn      void ?Function1_18@@YAXH@Z(int32) 
+    IL_0421:  ldftn      void ?Function1_18@@YAXH@Z(int32)
     IL_041a:  ldloc.0
     IL_041b:  ldc.i4     0x1
     IL_0420:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_042d:  ldftn      void ?Function1_19@@YAXH@Z(int32) 
+    IL_042d:  ldftn      void ?Function1_19@@YAXH@Z(int32)
     IL_0426:  ldloc.0
     IL_0427:  ldc.i4     0x1
     IL_042c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0439:  ldftn      void ?Function1_20@@YAXH@Z(int32) 
+    IL_0439:  ldftn      void ?Function1_20@@YAXH@Z(int32)
     IL_0432:  ldloc.0
     IL_0433:  ldc.i4     0x1
     IL_0438:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0445:  ldftn      void ?Function1_21@@YAXH@Z(int32) 
+    IL_0445:  ldftn      void ?Function1_21@@YAXH@Z(int32)
     IL_043e:  ldloc.0
     IL_043f:  ldc.i4     0x1
     IL_0444:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0451:  ldftn      void ?Function1_22@@YAXH@Z(int32) 
+    IL_0451:  ldftn      void ?Function1_22@@YAXH@Z(int32)
     IL_044a:  ldloc.0
     IL_044b:  ldc.i4     0x1
     IL_0450:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_045d:  ldftn      void ?Function1_23@@YAXH@Z(int32) 
+    IL_045d:  ldftn      void ?Function1_23@@YAXH@Z(int32)
     IL_0456:  ldloc.0
     IL_0457:  ldc.i4     0x1
     IL_045c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0469:  ldftn      void ?Function1_24@@YAXH@Z(int32) 
+    IL_0469:  ldftn      void ?Function1_24@@YAXH@Z(int32)
     IL_0462:  ldloc.0
     IL_0463:  ldc.i4     0x1
     IL_0468:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0475:  ldftn      void ?Function1_25@@YAXH@Z(int32) 
+    IL_0475:  ldftn      void ?Function1_25@@YAXH@Z(int32)
     IL_046e:  ldloc.0
     IL_046f:  ldc.i4     0x1
     IL_0474:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0481:  ldftn      void ?Function1_26@@YAXH@Z(int32) 
+    IL_0481:  ldftn      void ?Function1_26@@YAXH@Z(int32)
     IL_047a:  ldloc.0
     IL_047b:  ldc.i4     0x1
     IL_0480:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_048d:  ldftn      void ?Function1_27@@YAXH@Z(int32) 
+    IL_048d:  ldftn      void ?Function1_27@@YAXH@Z(int32)
     IL_0486:  ldloc.0
     IL_0487:  ldc.i4     0x1
     IL_048c:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_0499:  ldftn      void ?Function1_28@@YAXH@Z(int32) 
+    IL_0499:  ldftn      void ?Function1_28@@YAXH@Z(int32)
     IL_0492:  ldloc.0
     IL_0493:  ldc.i4     0x1
     IL_0498:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_04a5:  ldftn      void ?Function1_29@@YAXH@Z(int32) 
+    IL_04a5:  ldftn      void ?Function1_29@@YAXH@Z(int32)
     IL_049e:  ldloc.0
     IL_049f:  ldc.i4     0x1
     IL_04a4:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_04b1:  ldftn      void ?Function1_30@@YAXH@Z(int32) 
+    IL_04b1:  ldftn      void ?Function1_30@@YAXH@Z(int32)
     IL_04aa:  ldloc.0
     IL_04ab:  ldc.i4     0x1
     IL_04b0:  add
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
-    IL_04b6:   call        class [mscorlib]System.IO.TextWriter [System.Console]System.Console::get_Out()
+    IL_04b6:    call        class [mscorlib]System.IO.TextWriter [System.Console]System.Console::get_Out()
     IL_04bb:  ldstr "on thread finished"
-    IL_04c0:  
-         
+    IL_04c0:
+
     IL_04c5:  callvirt   instance void [mscorlib]System.IO.TextWriter::WriteLine(class [mscorlib]System.String)
     IL_04ca:  ret
-  } 
+  }
 
   .method public specialname rtspecialname  instance void .ctor() il managed
   {
     .maxstack  1
 
     IL_0000:  ldarg.0
-         
+
     IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
     IL_0006:  ret
-  } 
+  }
 
-} 
+}
 
-.class value sealed public explicit ansi $MultiByte$42   
+.class value sealed public explicit ansi $MultiByte$42
 {
   .pack 1
   .size 42
-} 
+}
 
-.class value sealed public explicit  ansi $MultiByte$26   
+.class value sealed public explicit  ansi $MultiByte$26
 {
   .pack 1
   .size 26
-} 
+}
 
-.class value sealed public explicit  ansi $MultiByte$54   
+.class value sealed public explicit  ansi $MultiByte$54
 {
   .pack 1
   .size 54
-} 
+}
 
-.class value sealed public explicit  ansi $MultiByte$0   
+.class value sealed public explicit  ansi $MultiByte$0
 {
   .pack 1
   .size 0
-} 
+}
 
 .method public static void ?Function1_1@@YAXH@Z(int32 A_0) il managed
 {
@@ -600,7 +603,7 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_0034:  add
   IL_0035:  starg.s    A_0
   IL_0037:  ret
-} 
+}
 
 .method public static void ?Function1_2@@YAXH@Z(int32 A_0) il managed
 {
@@ -630,11 +633,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_1@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_1@@YAXH@Z(int32)
   IL_0037:  ldarg.0
   call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_3@@YAXH@Z(int32 A_0) il managed
 {
@@ -664,12 +667,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_2@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_2@@YAXH@Z(int32)
   IL_0037:  ldarg.0
-         
+
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_4@@YAXH@Z(int32 A_0) il managed
 {
@@ -699,12 +702,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_3@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_3@@YAXH@Z(int32)
   IL_0037:  ldarg.0
-         
+
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_5@@YAXH@Z(int32 A_0) il managed
 {
@@ -734,12 +737,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_4@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_4@@YAXH@Z(int32)
   IL_0037:  ldarg.0
-         
+
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_6@@YAXH@Z(int32 A_0) il managed
 {
@@ -769,12 +772,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_5@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_5@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_7@@YAXH@Z(int32 A_0) il managed
 {
@@ -804,12 +807,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_6@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_6@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_8@@YAXH@Z(int32 A_0) il managed
 {
@@ -839,12 +842,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_7@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_7@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_9@@YAXH@Z(int32 A_0) il managed
 {
@@ -874,12 +877,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_8@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_8@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_10@@YAXH@Z(int32 A_0) il managed
 {
@@ -909,12 +912,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_9@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_9@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_11@@YAXH@Z(int32 A_0) il managed
 {
@@ -944,12 +947,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_10@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_10@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_12@@YAXH@Z(int32 A_0) il managed
 {
@@ -979,12 +982,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_11@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_11@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_13@@YAXH@Z(int32 A_0) il managed
 {
@@ -1014,12 +1017,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_12@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_12@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_14@@YAXH@Z(int32 A_0) il managed
 {
@@ -1049,12 +1052,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_13@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_13@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_15@@YAXH@Z(int32 A_0) il managed
 {
@@ -1084,12 +1087,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_14@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_14@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_16@@YAXH@Z(int32 A_0) il managed
 {
@@ -1119,12 +1122,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_15@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_15@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_17@@YAXH@Z(int32 A_0) il managed
 {
@@ -1154,12 +1157,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_16@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_16@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_18@@YAXH@Z(int32 A_0) il managed
 {
@@ -1189,12 +1192,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_17@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_17@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_19@@YAXH@Z(int32 A_0) il managed
 {
@@ -1224,12 +1227,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_18@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_18@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_20@@YAXH@Z(int32 A_0) il managed
 {
@@ -1259,12 +1262,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_19@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_19@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_21@@YAXH@Z(int32 A_0) il managed
 {
@@ -1294,12 +1297,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_20@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_20@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_22@@YAXH@Z(int32 A_0) il managed
 {
@@ -1329,12 +1332,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_21@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_21@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_23@@YAXH@Z(int32 A_0) il managed
 {
@@ -1364,12 +1367,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_22@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_22@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_24@@YAXH@Z(int32 A_0) il managed
 {
@@ -1399,12 +1402,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_23@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_23@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_25@@YAXH@Z(int32 A_0) il managed
 {
@@ -1434,12 +1437,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_24@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_24@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_26@@YAXH@Z(int32 A_0) il managed
 {
@@ -1469,12 +1472,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_25@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_25@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_27@@YAXH@Z(int32 A_0) il managed
 {
@@ -1504,12 +1507,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_26@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_26@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_28@@YAXH@Z(int32 A_0) il managed
 {
@@ -1539,12 +1542,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_27@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_27@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_29@@YAXH@Z(int32 A_0) il managed
 {
@@ -1574,12 +1577,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_28@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_28@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_30@@YAXH@Z(int32 A_0) il managed
 {
@@ -1609,12 +1612,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_29@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_29@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_31@@YAXH@Z(int32 A_0) il managed
 {
@@ -1644,11 +1647,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_30@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_30@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_32@@YAXH@Z(int32 A_0) il managed
 {
@@ -1678,12 +1681,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_31@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_31@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_33@@YAXH@Z(int32 A_0) il managed
 {
@@ -1713,11 +1716,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_32@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_32@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_34@@YAXH@Z(int32 A_0) il managed
 {
@@ -1747,12 +1750,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_33@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_33@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_35@@YAXH@Z(int32 A_0) il managed
 {
@@ -1782,12 +1785,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_34@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_34@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_36@@YAXH@Z(int32 A_0) il managed
 {
@@ -1817,12 +1820,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_35@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_35@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_37@@YAXH@Z(int32 A_0) il managed
 {
@@ -1852,12 +1855,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_36@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_36@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_38@@YAXH@Z(int32 A_0) il managed
 {
@@ -1887,12 +1890,12 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-         
-  IL_0038:  ldftn      void ?Function1_37@@YAXH@Z(int32) 
+
+  IL_0038:  ldftn      void ?Function1_37@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_39@@YAXH@Z(int32 A_0) il managed
 {
@@ -1922,11 +1925,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_38@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_38@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_40@@YAXH@Z(int32 A_0) il managed
 {
@@ -1956,11 +1959,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_39@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_39@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_41@@YAXH@Z(int32 A_0) il managed
 {
@@ -1990,11 +1993,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_40@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_40@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_42@@YAXH@Z(int32 A_0) il managed
 {
@@ -2024,11 +2027,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_41@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_41@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_43@@YAXH@Z(int32 A_0) il managed
 {
@@ -2058,11 +2061,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_42@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_42@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_44@@YAXH@Z(int32 A_0) il managed
 {
@@ -2092,11 +2095,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_43@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_43@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_45@@YAXH@Z(int32 A_0) il managed
 {
@@ -2126,11 +2129,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_44@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_44@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_46@@YAXH@Z(int32 A_0) il managed
 {
@@ -2160,11 +2163,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_45@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_45@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_47@@YAXH@Z(int32 A_0) il managed
 {
@@ -2194,11 +2197,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_46@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_46@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_48@@YAXH@Z(int32 A_0) il managed
 {
@@ -2228,11 +2231,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_47@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_47@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_49@@YAXH@Z(int32 A_0) il managed
 {
@@ -2262,11 +2265,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_48@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_48@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_50@@YAXH@Z(int32 A_0) il managed
 {
@@ -2296,11 +2299,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_49@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_49@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_51@@YAXH@Z(int32 A_0) il managed
 {
@@ -2330,11 +2333,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_50@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_50@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_52@@YAXH@Z(int32 A_0) il managed
 {
@@ -2364,11 +2367,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_51@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_51@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_53@@YAXH@Z(int32 A_0) il managed
 {
@@ -2398,11 +2401,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_52@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_52@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_54@@YAXH@Z(int32 A_0) il managed
 {
@@ -2432,11 +2435,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_53@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_53@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_55@@YAXH@Z(int32 A_0) il managed
 {
@@ -2466,11 +2469,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_54@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_54@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_56@@YAXH@Z(int32 A_0) il managed
 {
@@ -2500,11 +2503,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_55@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_55@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_57@@YAXH@Z(int32 A_0) il managed
 {
@@ -2534,11 +2537,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_56@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_56@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_58@@YAXH@Z(int32 A_0) il managed
 {
@@ -2568,11 +2571,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_57@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_57@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_59@@YAXH@Z(int32 A_0) il managed
 {
@@ -2602,11 +2605,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_58@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_58@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_60@@YAXH@Z(int32 A_0) il managed
 {
@@ -2636,11 +2639,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_59@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_59@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_61@@YAXH@Z(int32 A_0) il managed
 {
@@ -2670,11 +2673,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_60@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_60@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_62@@YAXH@Z(int32 A_0) il managed
 {
@@ -2704,11 +2707,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_61@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_61@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_63@@YAXH@Z(int32 A_0) il managed
 {
@@ -2738,11 +2741,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_62@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_62@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_64@@YAXH@Z(int32 A_0) il managed
 {
@@ -2772,11 +2775,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_63@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_63@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_65@@YAXH@Z(int32 A_0) il managed
 {
@@ -2806,11 +2809,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_64@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_64@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_66@@YAXH@Z(int32 A_0) il managed
 {
@@ -2840,11 +2843,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_65@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_65@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_67@@YAXH@Z(int32 A_0) il managed
 {
@@ -2874,11 +2877,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_66@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_66@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_68@@YAXH@Z(int32 A_0) il managed
 {
@@ -2908,11 +2911,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_67@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_67@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_69@@YAXH@Z(int32 A_0) il managed
 {
@@ -2942,11 +2945,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_68@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_68@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static void ?Function1_70@@YAXH@Z(int32 A_0) il managed
 {
@@ -2976,11 +2979,11 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_002f:  ldc.i4     0x1
   IL_0034:  add
   IL_0035:  starg.s    A_0
-  IL_0038:  ldftn      void ?Function1_69@@YAXH@Z(int32) 
+  IL_0038:  ldftn      void ?Function1_69@@YAXH@Z(int32)
   IL_0037:  ldarg.0
 call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
   IL_003d:  ret
-} 
+}
 
 .method public static int32 main() il managed
 {
@@ -2990,18 +2993,14 @@ call void Thread_EA::Dispatch(method explicit instance void *(int32), int32)
            class Thread_EA ThdObj,
            int32 V_2)
 
-       call        class [mscorlib]System.IO.TextWriter [System.Console]System.Console::get_Out()
-call       class [mscorlib]System.IO.TextWriter [mscorlib]System.IO.TextWriter::Synchronized(class [mscorlib]System.IO.TextWriter)
-call       void [System.Console]System.Console::SetOut(class [mscorlib]System.IO.TextWriter)
-
   IL_0000:  ldc.i4     0xa
   IL_0005:  newarr     [mscorlib]System.Threading.Thread
   IL_000a:  stloc.0
   IL_000b:  newobj     instance void Thread_EA::.ctor()
   IL_0010:  stloc.1
-  IL_0011:     call        class [mscorlib]System.IO.TextWriter [System.Console]System.Console::get_Out()
-  IL_0016:  ldstr "test started"
-  IL_001b:  
+  IL_0011:  call       class [mscorlib]System.IO.TextWriter [System.Console]System.Console::get_Out()
+  IL_0016:  ldstr      "test started"
+  IL_001b:
   IL_0020:  callvirt   instance void [mscorlib]System.IO.TextWriter::WriteLine(class [mscorlib]System.String)
   IL_0025:  ldc.i4     0x0
   IL_002a:  stloc.2
@@ -3046,10 +3045,10 @@ call       void [System.Console]System.Console::SetOut(class [mscorlib]System.IO
   IL_0085:  callvirt   instance void [mscorlib]System.Threading.Thread::Join()
   IL_008a:  br         IL_006f
 
-  IL_008f:     call        class [mscorlib]System.IO.TextWriter [System.Console]System.Console::get_Out()
-  IL_0094:  ldstr "mutualthdrecur-fptr done"
-  IL_0099:  
+  IL_008f:  call       class [mscorlib]System.IO.TextWriter [System.Console]System.Console::get_Out()
+  IL_0094:  ldstr      "mutualthdrecur-fptr done"
+  IL_0099:
   IL_009e:  callvirt   instance void [mscorlib]System.IO.TextWriter::WriteLine(class [mscorlib]System.String)
   IL_00a3:  ldc.i4     0x64
   IL_00a8:  ret
-} 
+}
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
   <PropertyGroup>
@@ -11,7 +11,7 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT  .0\UITestExtensionPackages</ReferencePath>
+    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
   </PropertyGroup>
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
   <PropertyGroup>
+    <DebugType>PdbOnly</DebugType> 
   </PropertyGroup>
   <ItemGroup>
-    <Compile Include="tail.il" />
+    <Compile Include="MutualThdRecur-fptr.il" />
   </ItemGroup>
   <ItemGroup>
     <None Include="app.config" />
index c46ef43..9cca2b5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3573667..44aa92f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a8aae34..53a30e5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index a8aae34..53a30e5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 2c86a52..9b993bf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index e04456d..54822dd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index 1b6b00e..86c23ca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index ea2c9a3..cb97ea6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 85fd978..af7e8b3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2633ff1..ce8d56e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 91f6dad..a9d68e1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a82134c..fe219fd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3ef3b47..b4aeec0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 476e6af..c5d760b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index bb60e52..183032d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a7b7d8d..422c799 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cdc5877..491918f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 06852e5..9548b3e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index e54e0f7..cb58258 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 41f024a..b69f281 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // (04/08/09) Updated the layout field values to match unaligned.0x2. Else the test fails on IA64 if explicit layouts are specified.
 
index c619cee..23200f5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index 8ec67bf..b5f89a8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index f3b54f9..70f5a65 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index 5983d25..6b9ec1c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 97b592a..2b82686 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5156263..0023dd6 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index a168857..3ea233e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 938af8b..9b352c8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ea56b5c..c161224 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7d6c5e6..f81bff1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 837674c..a6b7318 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 499ef0b..67733bb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b8ddcf0..ee322be 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 08a1188..2d2a9db 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index e20566a..ddd113c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8c304a4..6f5f1ab 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 8f9507b..aca837a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 53a3852..ab01dae 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index 60fd8ad..551203c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index 628896f..cbceb06 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index ad74dc4..daaaea5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f6dcaff..c1e9bfd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 1de0b26..e837cc0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 3725c05..170a019 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 94ed742..04c319a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f13a780..183692e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4ffd9b6..ae86d06 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 12993b6..bf54a80 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7abd056..34f9224 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5207345..3653d44 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index cc54425..1a8eefc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 3bdf4b4..0e8e484 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 76b3c75..58f6324 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 20db66c..718fb6d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 5a42942..626e951 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index 77ae3e5..5f27fa6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index e6b04ab..ebaa115 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 /*
index 09ee26e..0132359 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 634346f..23b2e75 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a5c4676..513ecea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index b0758a6..deea09f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 406bde7..b16b664 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 1ae034f..37ced20 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 57aeff0..98864c4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 013f6eb..e84b51e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 831a5e7..b38cf75 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4735769..7cb694f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 46da2b5..393f4f0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 50d504e..a562fa9 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index dc409b0..f6ba3b1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 5127d16..2f4b477 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 260d7f2..fbe537a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f88f874..9d962f1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 778c4df..3b3fd03 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
 .data D_1 = bytearray( 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- )
\ No newline at end of file
+ )
index 7a6e877..83b5490 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index cbe994a..5c60727 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //different ways to invoke method inside a loop (no tail. call or jmp/jmpi since they require empty stack)
 .assembly extern legacy library mscorlib {}
index 97cbe26..e66ba52 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 24dcad0..d38c497 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index aae1a1d..e43debc 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3671aa2..5cb41cc 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .assembly badldslfd { }
index 33b5c7d..75cf168 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -43,4 +46,4 @@ ret
        call void [System.Console]System.Console::WriteLine(string)
         ldc.i4 100
        ret
-  }
\ No newline at end of file
+  }
index 34aaa22..77655de 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -126,4 +129,4 @@ ldc.i4 100
     IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
     IL_0006:  ret
   } 
-}
\ No newline at end of file
+}
index 73d078d..9b2209f 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
@@ -34,4 +37,4 @@ ret
 PASS:
 ldc.i4 100
 ret
-}
\ No newline at end of file
+}
index 042ed64..2da9c97 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -56,4 +59,4 @@
     IL_0039:  ldloc.0
     IL_003a:  ret
   }
-}
\ No newline at end of file
+}
index e674918..0e5cbe9 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -56,4 +59,4 @@
     IL_0039:  ldloc.0
     IL_003a:  ret
   }
-}
\ No newline at end of file
+}
index d49bf8d..307203d 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 28e765e..ad24c09 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index f4bd051..407e678 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 10a68f4..7552199 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
@@ -48,4 +51,4 @@
         ldc.i4 100
        ret
   }
-}
\ No newline at end of file
+}
index c2c2a6e..a1bd12a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
@@ -48,4 +51,4 @@
         ldc.i4 100
        ret
   }
-}
\ No newline at end of file
+}
index 746cdf1..b6666f4 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly refanytype1 { }
@@ -15,4 +18,4 @@ refanytype
 pop
 ldc.i4 100
 ret
-}
\ No newline at end of file
+}
index 8be4ec7..3bc8888 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 4d584d4..6226144 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index c1851ce..1116f3f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly badendfinally {}
 .assembly extern mscorlib { }
index f9a49f1..c29bf29 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly badtailcall {}
 .assembly extern mscorlib { }
index 675ef6c..c68031e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2349dff..ed0d619 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5f43c39..1859b54 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4a1599e..d4af5e5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f62868e..157d5f5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 03e2525..0416739 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 405093f..2d11dd0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly ldvirtftnsideeffect {}
 .assembly extern mscorlib { }
index b10a894..d354d37 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cf5c013..b8a5a83 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 78eaf11..e78651b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 80019fc..1710a2b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2861b14..de4c96a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly volatilldind {}
 .assembly extern mscorlib { }
index 7146e23..4d566ee 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly volatilstind {}
 .assembly extern mscorlib { }
index 6c89570..a6d43f5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //Testing calli with pinvoke methods
 .assembly extern legacy library mscorlib {}
index 820ccd7..69ccc0f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 69ca5f1..cb70de7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //Testing calli with pinvoke methods
 .assembly extern legacy library mscorlib {}
index a94e96d..3b95549 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2f60e3c..8b64f57 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index b850da5..1bc9a14 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0c49144..6103eb4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //Testing inliner on a small func that contains ldvirtftn and calli
 .assembly extern legacy library mscorlib {}
index 73197f7..ec80efa 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index ea1672f..8ef5ab7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib { }
index 1244c0a..ce0c5d5 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index f769ed4..8a7a780 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib { }
index d574454..7d9a0ce 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // stfld on static
 .assembly extern legacy library mscorlib {}
index 4a41e34..073f331 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // volatile. stfld on static field
 .assembly extern legacy library mscorlib {}
index b312d29..0bfcf29 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // Arithemetic operations are generally only allowed with
 // primitive types, but certain operations are allowed
index 1a7fa04..61fb946 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 75ec4e5..dbca4e7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 935cf2d..de42377 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 02248bf..af8573b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly tls1 {}
index c7511de..fcd51bc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly tls2 {}
index 072b0e4..a72f955 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 49477f0..8030ae7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib { }
index f386216..7b72007 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // volatilecpobj.il
 .assembly extern mscorlib { }
index 0bd6d07..ffe0d77 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //testing .zeroinit
 .assembly extern legacy library mscorlib {}
index 95de54e..9f830ec 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index ac0daec..bd3fc67 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index f46430c..ce1be90 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 9256bff..d1b748a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 4b9f6da..326836d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index f670401..d9f2451 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 53a2064..19e5b1a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //different datatype in try block
 //
index 79d56ec..f176a78 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 9dad6f1..364fa6a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 9035fab..a7e29a4 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 9e46c33..a0cda9c 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
 
 
 } 
-
index 7c7b970..321029e 100644 (file)
@@ -85,8 +85,8 @@ LOOP1:
 
 .class auto ansi Pin1_Test
 {
-  .method public static pinvokeimpl("Mirror" cdecl) int32 Ret_Ptr(void *) il managed preservesig{ }
-  .method public static pinvokeimpl("Mirror" cdecl) void Set_Val(void*,int32 c) il managed preservesig { }
+  .method public static pinvokeimpl("mirror" cdecl) int32 Ret_Ptr(void *) il managed preservesig{ }
+  .method public static pinvokeimpl("mirror" cdecl) void Set_Val(void*,int32 c) il managed preservesig { }
   .method public static int32 Main(class [mscorlib]System.String[] args) il managed
   {
     .entrypoint
index 08c52d6..157643f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index e61baf5..609bd80 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index ad633dc..1e3b310 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
   } 
 
 } 
-
-
-
index 0995fca..6ce231c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .module extern kernel32
 .assembly extern mscorlib { }
index 5dbebc6..748accd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 324f5f4..5310485 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index ff67ec8..3fdfa07 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 521f2b3..8b1ed2b 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 9870ef4..9d0b324 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 37ba91b..e697cf8 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 23c0168..5e2895c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 7515c43..b427dbc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index dcae5ef..9e78261 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index a8e31ce..eabc6dd 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
   } 
 
 } 
-
-
-
index a3f6b22..3f29ede 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index e7936cc..727df80 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index f2e8823..37e9d19 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index d588913..008c8d5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index fc55cf9..9d7e1e8 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index eb1e5b3..b629aac 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 23475bb..5b5ed8b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index c56525d..3aea281 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index dedd6c6..d45ad2f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 08126d6..4ec4eb7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 0f5ab66..e0f1360 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index cca6ec5..1ceebb3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index d3ee5b8..db7be48 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index c8953e0..82e6892 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 9af3ae5..c730448 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index cc79d94..c91f040 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // valuetype - implemented methods
 // ldflda, ldelema, ldarga
index 30fc999..888df5e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // valuetype -Inherited method
 // ldflda, ldelema, ldarga
index 6202606..7c03321 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // valuetype -Implemented method
 // ldflda, ldelema, ldarga
index c8efec4..bd64f5c 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 4cf8f03..a377fc9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index ee7d5c2..07fa866 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 407d3db..837d457 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b4c912b..5a2af27 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 9bf28ce..940defc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f34e613..6e8c883 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index dc17d2a..b0b7518 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 37c64c0..d4c3327 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 0606827..4bebbf1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 67fcecc..ed65b1a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1b34d19..b55f24c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index a46e44e..aff92ca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 8a5aebe..fd271ad 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 894f43d..8cede3a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 12e091a..53671c3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 61cd1d2..e27f62a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b683ca7..e6d2bef 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b2edf0e..61f428d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1b9a633..f2c5299 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 216c432..5cc8e74 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 62a43e2..1f31611 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 3b03b61..96bb967 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 2737120..c9f7c7d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 3e4740c..5a3a144 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 2c11ed3..af631cc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e3caf51..68d5aa7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 05fe744..b9688ef 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e9b5564..977af42 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b2123a7..db5cc57 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1f52826..f960249 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 4d9c3cc..c70611f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 5db2997..5168fc9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 6c6ec1c..1def892 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 79c2141..ffa5d2d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 244523c..be09655 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d961dbd..efd593f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 130c8c5..584f63a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index a9f17e9..d2bd6df 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 8272969..1254f14 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d009917..01bff63 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 90fcf1a..ff90e1f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index cb9551d..fc29291 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 9631be1..16e2150 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e262cd0..d2b0e46 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e9f22fc..0a1d9db 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f0c8db7..8d04222 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 25a583e..9fa91da 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1636ba3..c450f6a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d9a49ac..903f376 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 3e1fb2f..286f184 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index fccc4c5..c9a5f0f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b14efc4..24d2355 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 5a31c84..fb24a05 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 3ada31f..246b251 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 2e7d5a9..49a6c4e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index cefccd7..4d9e667 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern  mscorlib {}
index 157fb1f..b26892a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 3260aee..65ae3c7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 55e22f9..b4a7f15 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index db7804d..4caca77 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 756a7e3..1fbcca6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .assembly volatile.exe{}
index 4b92ec7..62ecd8a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index efb3c37..96f5f78 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //======================================
 //
index 4e53e88..9b60d59 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b50ef8b..670d73b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index c7adbce..05d2b06 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
  
index df4e6cb..d59a096 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1b60d6f..d93c7a5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .class public _add {
index d064a47..cf23035 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index a0314d7..89f32bd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b44d2ea..dbdecef 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b7dc539..28be515 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 155fe0b..7a3ec67 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 5e649d3..ac3b02f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 6e2558d..fda95d2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 59b93f9..24e03e9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 8fa575f..13559f9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 4396562..04e869f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 2e9b37b..4c05490 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index bd6ad6f..bfe52dc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1c73c0a..a322c2f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 5699958..611473f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 5c5bb77..58021c6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 4699f71..b1e6c92 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index c6383ec..7dc95ab 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 323ff84..f033a38 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index af04928..30ea41a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f137e33..4a87f54 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ebebb7c..ccbdaf1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 73d54ca..9e40d20 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 9a80abc..2f6655f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1020e4f..8312d67 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index c794ee8..09f1d74 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index c74c83e..ea5452b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 3cc4a83..6f425bd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 7f672ad..6e3c39f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e464805..758eb76 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 387b59a..19be37c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 150f82c..40376bc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index dc279a7..19ba426 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index daa1b66..9dda40d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f370173..58ffaa2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 7c5a30f..b182728 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index faec5e2..ec2f721 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 4916a8c..e2e95c4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 07cddc4..4710550 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index a70d9bb..1653f5b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 5645e61..92b2792 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index fe82852..4744123 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index c603cbc..f7c181f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e95dc24..e7911fb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index bee4fe1..ac29aae 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 999f1c8..c37c5ba 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 719b96f..91ec45d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e7f7c8d..ccaada5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 7d6e2e1..46c84f0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index fbcead7..dc1fb31 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 030caac..da01571 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 5fae293..5ad240c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 0a54fc4..ddf33e9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ad1957d..7ae7617 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 2773033..860a010 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 57f14d0..16df3a7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 4d992c6..d0869b6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e9b55c9..c122094 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 51c3121..cba669b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 3773749..06789ff 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e8579f7..dbf089c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .class public _br {
index 12992c0..9636e3c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .class public _brfalse {
index 1e9294a..22cf8d3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .class public _brtrue {
index 490e7aa..06c8b37 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index a558ae2..639cae6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 55be65b..7ba9753 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 47a1bee..c3898eb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 3a5f3a5..c29d31f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 7eb0e0a..e260683 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ea18257..9bebec5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 789bb3d..36c7380 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ddd3c83..b8f2158 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .class          _nop {
index 3dbd02b..383e799 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .class          _ret {
index daba487..0964734 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 6e32acf..b9f274a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .method public static int32 test() {
index 9c6d096..d970d1b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 6976f44..4b271a9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e905812..1e7e433 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 78e2e37..ef9d988 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ba00fe2..601df94 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 914c826..ea1747c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ee1889e..5be8248 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index dd4e5c0..ffd29e3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b58b905..f459995 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 09858b8..b88588a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b1cbd2f..5561fde 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e1bb478..054106a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1313502..cff2b26 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 2a435ad..3946c31 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 335120c..ffc8029 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b04bd14..1b60c1f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b1f4b0b..2d4eae8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 5b780f5..0641382 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ae676e6..4fc11b4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 3af3128..f2a923b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1c66f4a..ba330a5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 6a9014a..8abf88a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .class public clt_un {
index d450990..717f60f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 651fa21..12129a1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 67a1aa0..c6e3377 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b1c4c41..f10f010 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 459c9e1..f668359 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b823291..2c38234 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 471d8ac..558d9f6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 03bd915..56b3b84 100644 (file)
@@ -1,3 +1,7 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
 .assembly extern legacy library mscorlib {}
 
 
@@ -167,13 +171,13 @@ END2:
        ldc.i8                  0xFFFFFFFF80000000
        ldc.i4                  0x80000000
        call            int32 conv_ovf_i4::conv_un(int64,int32)
-       ldc.i4                  0x11111111
+       ldc.i4                  0xEEEEEEEE
        ceq
        brfalse                 FAIL
        ldc.i8                  0xFFFFFFFFFFFFFFFF
        ldc.i4                  0xFFFFFFFF
        call            int32 conv_ovf_i4::conv_un(int64,int32)
-       ldc.i4                  0x11111111
+       ldc.i4                  0xEEEEEEEE
        ceq
        brfalse                 FAIL
        ldc.i8                  0x0000000000000000
@@ -196,7 +200,7 @@ END2:
        brfalse                 FAIL
 
 PASS:
-       ldc.i4  0xAAAA
+       ldc.i4  100
        br              END
 
 FAIL:
index fa25664..8e211e7 100644 (file)
@@ -14,6 +14,8 @@
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT  .0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <DisableProjectBuild Condition="'$(Platform)' == 'x64'">true</DisableProjectBuild>
+    <DisableProjectBuild Condition="'$(Platform)' == 'arm64'">true</DisableProjectBuild>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 3baf2ca..937cfb3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index dc83ab1..b16b71e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 8f66b86..3a87a08 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 9f4f0d4..0947ede 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index fc8553a..a7c322d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ca82c48..b36fc5e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index bb271ae..e86932b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 457d9d1..c425407 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 774ab85..0084158 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e0f6db4..c3c3428 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 0455093..ba438f8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 62804f7..a6eabfc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .class public          _cpblk {
index 1424f27..76dde91 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 9b1a697..247a315 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f4d7cfc..2242cc6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1355d3d..05d0c65 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index cc6e538..a6439fd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index bf3abd2..b8f23ff 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 7aebc7e..22591e0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 36c9909..889fd1f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index c8a0e77..a63431b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index a159f9d..0b5e2df 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .class public          _initblk {
index a1f8818..b70cba5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index bef122f..a62c88b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 8e0e741..f4eddf5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 24e1363..5e7660c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f0b9965..17ea44f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d1759d1..86ea18b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b411d7d..2e2c130 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 61416d8..3dd498d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 4d0e2a7..f40d4db 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 87d2ae1..d223141 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index a5d7aeb..27d91ff 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 9daac93..c80d5c9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 3af65c4..724051a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index b381cbb..dcaefc9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 265dc98..a6dbf48 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 6094c7f..b71c24a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 8a304ab..5fa314f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 32295f1..532ea27 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 9f1d525..7baaf36 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index f8b77ee..bb2b2ec 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index a8aba3a..c2ceb2b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 62ddeca..81d2a1a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index ec72adb..8674fc4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index a218539..e8e60a6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 7e1ef66..78b8188 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 063f7fe..6138c76 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 83f2822..536a52b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 227d3bd..fc2796c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 0ea80fc..1dd9d7e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index c8d92f6..d6e35a1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 6be24c6..d35c240 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index db95211..3d6a233 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 144b74b..dba66da 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 2cb35bc..50979fb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 431ffb9..7657c1c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index e6bf530..f568e55 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 0c871fd..ed6a129 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index d7abbb5..65a1bee 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 342aaab..5dc3aa7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 9740ce8..bdbcc3e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index ac61f28..d2336f7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 03d5607..4e7c7fd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 23153e6..b90c438 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b9036a6..f3f6c54 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 82d2e46..1627060 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 2d17d78..62a720d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index d2fb466..deabdeb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 0c0841d..a30efea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 47a272d..3932944 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 1e88825..1693bbc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index d5201fd..780f9bf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 54e5aac..d5dae63 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index ef98e22..4cdfd44 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 663bb2a..b96aa19 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 13e15a6..f9268d6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f067dd7..6c65a4f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 2010cc4..4ceafa2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index b25624a..e16b25f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 832f855..af2a932 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 444d2de..a6b04a5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 845f90f..b817889 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index eb3c48e..65c4b36 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 8fd3b56..088c89a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index bfb9b83..c0f0eb4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 45c4cae..f316aa9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index cf5e0d9..80ac25e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index f1678ed..f367fd9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index c6583ca..24ac7d9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index eee87a8..316b177 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index cf3e8a0..8e8b1cc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 3043774..bbd220c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d987251..d110927 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f331e7f..04f9b3c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 6b7373f..697f105 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 41db271..8d00935 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b18aee7..1ff7dbd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 485ccbf..f29509c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f74f684..081a1bc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 76050f7..ca4105b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d6eee54..1f808a3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d1b9c9c..2130fe1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index afbf1a2..8e510b1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 53c144e..6836711 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 4c810a9..258bbd3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 06cf9b1..f06340f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index abe83ae..9dc29b6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d591c4a..ce8b15e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1f5fdc6..3528a95 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index fb836d6..4e1f5bc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .class public ldnull_i {
index 620b3e3..0aa96ef 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 28fda5b..cf628fa 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 87fec70..3aa9c1c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .class public _localloc {
index 8cc8b74..ef4f611 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ef9c63c..dec205b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b7bf6bd..e4e72ec 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 7c66af5..570f39a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 663b774..76c0d97 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f639cea..4f0d776 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index aee7bdf..5249765 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 159580c..1ec474d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ce705c7..34148bd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index da967b7..4dff56b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 0adcfe5..96d8128 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 0532e24..d14c848 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 9396d3a..63803e1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1234f0f..b1596fd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f762709..3fa0c5f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 641e0f4..0c158d2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d23137b..481c227 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .assembly nop.exe{}
index d2a8dde..e36561d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 7fa16bc..d2ff0d3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 9bf7fe4..1bee36a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 62c22fd..175022c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 89056c4..c14619b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 0828639..b66438c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 068466b..de4cdce 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1014eec..c7cfa76 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b94c4da..0e38ee7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 59c0e9e..e27bf25 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index adab799..21d2369 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -854,7 +857,7 @@ FINISH:
        brfalse         FAIL
 
 // -- PASS --
-       ldc.i4  0xAAAA
+       ldc.i4  100
        ret
 
 // -- FAIL --
index 70bd296..cd30076 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 58d47e2..d17b731 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d2fcf10..459f3ea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 2c17122..ba191dc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .assembly ret.exe{}
index f7f069b..c6d806d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 2105a42..1106ba6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e4c812b..47c0b18 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b09497d..c8b6fa4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 54500aa..040b4cd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b6646f0..6242ab7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 98c0927..da33803 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .class public Shl_U4 {
index 2d1be5e..f1a18c7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .class public Shl_U8 {
index 5181877..d1471b0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 9a08594..1cd971f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d1f8c05..27e3002 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 37f0584..3a48ac0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 4dc0730..d27fe6c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index bef3f3f..d534171 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index efb2251..663de64 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 7d26563..98c4a3c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b78d191..120de89 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 6a1c7a1..3b555b9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index aaf8619..f9fdd92 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 5b9a588..5c3d054 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 133d66f..e929ef1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index be8f6f4..3fceba7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index b186eb8..1528c7b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 27fc500..47ad90c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ea31fa6..3cae328 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .class public stind_ref {
index 928764f..6113254 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 7e278f7..edb7612 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index d6e3b33..1dae174 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index c5a345f..a8eb170 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 31b824f..b316496 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index f8468d4..d7951cb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 5aae4de..b286573 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e6873ca..1154b19 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 36beabe..1f9383a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 370a102..cce8dad 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 293ad7f..92bfa34 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 9fd224b..005275e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 86dba5c..4901b33 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1dd34d8..889a984 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index e4677a6..4614ede 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 29a8011..08647d0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1642326..09977ab 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index aa10d45..17bcc5d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index ccdf2be..0fc44d1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 54e727b..464e41b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .assembly switch.exe{}
index 9cbf800..c36245f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 09740ab..a32a9f7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 7d598e7..5d8157b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 6dbcd0c..c8e8fdf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 850595e..b4ac94f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index bff7f6f..8ad3dda 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index e17f17f..69a25a5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 6691cc8..841be7a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 0ac5270..2c2d9b3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 7146bdd..120fe8d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index b34c88c..49cce9a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 5abbc67..34e2aed 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 4ce9dde..e865981 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index d76280e..82d519d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 7baf6fc..17048b3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index d0db095..35a13b0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index a6cc087..61fcb69 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 3171af0..a597536 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 3dda9f4..95ca06c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 53b4af1..54f5d7c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index ebb821c..a0e6b91 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 45e5e4e..a29d017 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 2f517a9..75f42e3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index dc34197..afd6bfd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 13bd1de..076b027 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 58d3a96..820f845 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index b0e7348..cdeed02 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 644d8ab..3325b03 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index d39caeb..77b2259 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index ddba577..1e7f569 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 1e143fd..9b2f126 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index bfe0d7b..e795b76 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 0d68a57..5906d5a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 79f8293..ec249a4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e26715a..861e7e4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 8c2a71d..cb474cb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 5697293..cd29c2e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index b8fd389..ce45d3a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 41f43c1..d24c80e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index b9d4c2c..fcc5b08 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index fb5c540..36aab4d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index a423ee9..d85301a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index aa0a52e..ee5340d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 84670a2..940239d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 5364f64..6bc7044 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 929a5bf..ee7df4c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 07d9668..aafa15d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 35f1884..e20f72d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 55724e9..66016be 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 8d3b58e..f2c611e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f18e506..63722c0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e7cd64b..c871f79 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 649eeea..92dbf14 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 1ed68d9..a1d8dde 100644 (file)
@@ -28,6 +28,7 @@
   </ItemGroup>
   <PropertyGroup>
     <DebugType>PdbOnly</DebugType>
+    <JitOptimizationSensitive>true</JitOptimizationSensitive>
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="arrres.il" />
@@ -46,4 +47,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
-</Project>
\ No newline at end of file
+</Project>
index faad447..7fecc43 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 31e1e05..ebdf160 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index cb75ae7..50255b5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 7a7150a..04f8f25 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 521618d..dc92ccc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 2805999..e97cf6a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index c7f11d4..d3b8cc7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6bba533..16f2fcf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 0843c9b..91703be 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 8c09c83..ae30e3e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f1783db..b5be849 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index bfa04e9..3cd3964 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index bfa04e9..3cd3964 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 83e20c3..98eab09 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index b39be81..20b32e2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3692cba..5539b2f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6a5e2fd..4c7287b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index b0ee370..fac1651 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 81b03ec..d2e5ab2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly ILGEN_0x1d013582 {}
 .assembly extern mscorlib{auto}
index 87e0789..ee53045 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index d8b8169..f94f3ff 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 124bee1..846cf51 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index b84eba5..0d2c1b0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 3b63fae..36858bb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 05b987a..6301f1d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 108d346..6eef467 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 64e28a9..219e24f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index ba209da..59fcba5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index df07da9..6a85a00 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 87dacfd..6c0b239 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index e0b3091..7f0b89e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 2af6136..8a38cf5 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
 
 
 } 
-
index 65f1fe7..ad0abb1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index ec381b9..f24cd8e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 48f49f4..960a96a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d69a5c0..82ebbec 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 8d6aed7..dbb1d64 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 0276fd5..625d5e8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 8f17ca2..8cce217 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index c1924f3..6f1b364 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 931d345..df020e3 100644 (file)
@@ -45,7 +45,7 @@
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
   </PropertyGroup>
   <ItemGroup>
-    <ProjectReference Include="sinlib.csproj" />
+    <ProjectReference Include="sinlib_cs.csproj" />
   </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
index d2a3bf0..f9252ab 100644 (file)
@@ -35,7 +35,6 @@
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="sin.cs" />
-    <ProjectReference Include="sinlib_il_d.ilproj" />
   </ItemGroup>
   <ItemGroup>
     <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
@@ -44,6 +43,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_il.ilproj" />
+  </ItemGroup>
   <PropertyGroup>
     <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
index 6f5265e..d4711a0 100644 (file)
@@ -37,6 +37,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_cs.csproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
index 591a8b9..865d3a8 100644 (file)
@@ -37,6 +37,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_il.ilproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
index 1e81a89..033a757 100644 (file)
@@ -45,7 +45,7 @@
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
   </PropertyGroup>
   <ItemGroup>
-    <ProjectReference Include="sinlib.csproj" />
+    <ProjectReference Include="sinlib_cs.csproj" />
   </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
index 5bed94e..bfa25bb 100644 (file)
@@ -35,7 +35,6 @@
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="sin.cs" />
-    <ProjectReference Include="sinlib_il_d.ilproj" />
   </ItemGroup>
   <ItemGroup>
     <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
@@ -44,6 +43,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_il.ilproj" />
+  </ItemGroup>
   <PropertyGroup>
     <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
index 6f5265e..d4711a0 100644 (file)
@@ -37,6 +37,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_cs.csproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
index 591a8b9..865d3a8 100644 (file)
@@ -37,6 +37,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_il.ilproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
index 227896d..9c03a0d 100644 (file)
@@ -45,7 +45,7 @@
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
   </PropertyGroup>
   <ItemGroup>
-    <ProjectReference Include="sinlib.csproj" />
+    <ProjectReference Include="sinlib_cs.csproj" />
   </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
index 860eb38..9a7f4b1 100644 (file)
@@ -35,7 +35,6 @@
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="sin.cs" />
-    <ProjectReference Include="sinlib_il_r.ilproj" />
   </ItemGroup>
   <ItemGroup>
     <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
@@ -44,6 +43,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_il.ilproj" />
+  </ItemGroup>
   <PropertyGroup>
     <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
index edde65b..8916b60 100644 (file)
@@ -36,6 +36,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_cs.csproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
index 1162194..79c77d1 100644 (file)
@@ -36,6 +36,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_il.ilproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
index 29ebd95..dfe6003 100644 (file)
@@ -45,7 +45,7 @@
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
   </PropertyGroup>
   <ItemGroup>
-    <ProjectReference Include="sinlib.csproj" />
+    <ProjectReference Include="sinlib_cs.csproj" />
   </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
index c50739b..fe12df9 100644 (file)
@@ -35,7 +35,6 @@
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="sin.cs" />
-    <ProjectReference Include="sinlib_il_r.ilproj" />
   </ItemGroup>
   <ItemGroup>
     <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
@@ -44,6 +43,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_il.ilproj" />
+  </ItemGroup>
   <PropertyGroup>
     <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
index edde65b..8916b60 100644 (file)
@@ -36,6 +36,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_cs.csproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
index 1162194..79c77d1 100644 (file)
@@ -36,6 +36,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="sinlib_il.ilproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
index d9b0d49..b5f317d 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 .module 'sin_il_cs.exe'
 
 .assembly extern System.Console
   } 
 
 } 
-
index f4c13a9..cc5b936 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 .module 'sin_il_il.exe'
 
 .assembly extern System.Console
   } 
 
 } 
-
index 8810368..0fc0307 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 .module 'sinlib_il.dll'
 .assembly extern legacy library mscorlib { auto }
 .assembly 'sinlib_il' {}
index cc8b765..273895f 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 55979b7..255dcab 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2738263..1a76e70 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index a2e183b..3373630 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 1bce8fa..f4339fe 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index e949fec..05d60ee 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index 7cce3cf..a92a069 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index b2ead4d..8e8b9da 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index 694f28e..2f3c423 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index cef1376..bf0bdac 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 191630a..29e2678 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index ea6cfea..bef4e4f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index 0186cfc..38aac85 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index 97df599..096a6eb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index ef6a4fb..2efdf59 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6df99a6..d42bb81 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index 65b9a2e..7ca54ca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3378333..c92bace 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index d392111..e5db925 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 538cd6c..7191427 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index 39f4089..3961cbf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index 7d92bed..dea67fb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //.corflags 0x00000002
index 140d2a1..e4a0899 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 9433d29..db5c5b4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 99f5f23..7b50ed6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e2698ee..1dd83a9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 0831fd4..3b05679 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index eac24ce..d776dcf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 790740c..e13c203 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index 639168a..4accb54 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index 1c7e236..5cc9457 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index a2677ab..926617a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3fb073f..403a9e9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index e7e858f..741dd97 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 0e98942..0f42b6e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 84c84b6..8953868 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 312bc13..462b04f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index 8e73808..d1a5d21 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index 05b3b80..11ca8d3 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index bc65845..d488e1f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 91083d5..202c724 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3069abf..5218a42 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 6c132d9..90ec277 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 132abbe..5fe53f0 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -373,4 +376,4 @@ call void [System.Console]System.Console::WriteLine(string)
     IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
     IL_0006:  ret
   } 
-}
\ No newline at end of file
+}
index 8a8400b..ee2d8d0 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -399,4 +402,4 @@ call void [System.Console]System.Console::WriteLine(string)
     IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
     IL_0006:  ret
   } 
-}
\ No newline at end of file
+}
index 4525adc..e0e29bd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 49cd2fa..34dfed8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 388067e..e5fa510 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index f1cabec..563485a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 9f86fbb..899240c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 74cfc50..8085c02 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index cf4ddbe..50f365a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index aa6ecb1..6af5551 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3f1fb3d..e9c311a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index ae55e9b..4dbd362 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 1be2145..c0f11e1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 05dd155..f8cda9a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e3a83ca..0e8abda 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index fd5d5e3..8592b5b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3ac528a..23c5143 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e3f1f04..210249b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 5ec48bb..288dd3a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 51a2e9f..2ad9fea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e915640..77500da 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 1d72376..a6be7b5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index ab126eb..74161b0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 9ccfd81..000caea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6d8e210..2d8da01 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6b75d7e..e33c9fa 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index fa60d12..fd89d72 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 51c4851..053eafb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 30ae9f9..2fa7e05 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 2b72986..916e6e1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f056743..e88a83d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 54e2c6f..1bac4f7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index aab95a5..07da2d2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index a510d05..da248d0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f1003b1..7d6e588 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f8d077e..92f82a1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 92151cf..ffb4159 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index a1f2cb0..232f864 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index eff99a9..61c7f66 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index d044eec..a736932 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index a52f511..0d0eee9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 119f90a..c08fb3d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 304b2d5..6506aa8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e624f1e..a5738ec 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index c183305..dea7ac7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 7c982bf..bd107fe 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6e2f874..b7d5668 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 2729fbd..afd8122 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 3d93bf6..567acd5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 33f3f6a..cd56fd5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 3ab5b37..f92e5aa 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 48489c2..ef9bc0a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index c7891b5..b29a24e 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index f055134..2e19ad8 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 5a336e3..2e4b0a9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 3c9603d..6dcf39a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index fb444dd..24ee164 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index cf2ed27..97a1a9d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3d2b448..c781b0c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 47e471d..adbdf9c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 5f819e2..4b4b1ae 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 66a8bed..6bbd455 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 148c524..86e95c3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 8fc0c1f..86b4a70 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index a4c8d34..6e4da60 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 449d1c5..17d870b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 0a2c292..3391c00 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 2328464..c5b2226 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index cb6e686..a34596d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 0699a6f..6884b3f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 67b16c3..266f78b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 981d25b..f4efa66 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 2b1ee79..d00be62 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 9ac9639..fbcf132 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3ecd39a..e1476d3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 9e53bcd..4108a8a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index a874a48..de6704d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index c392efd..261af21 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6677b00..3242f4f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index c2b0cf2..d3a871a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3d4e395..f791f5f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 2dfc22a..3ec8551 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 1afd68f..2179364 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // castclass_catch_neg.il
 .assembly extern mscorlib { }
index 3f3f85f..291f712 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index d470e43..5715b3c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 6c7b231..5d79069 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // isinst_catch_neg.il
 .assembly extern mscorlib { }
index ce29e22..a885613 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // arrays.il
 .assembly extern mscorlib { }
index 8576c9b..a0df541 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ldlen.il
 .assembly extern mscorlib { }
index 4c9c337..013d5ed 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ldlen.il
 .assembly extern mscorlib { }
index 07f6d0f..4e80960 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index d27584e..3b2be4a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 28fd83e..c202393 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 189d9ab..d5c7988 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index b198e9b..38b69f2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 4f8d13f..4d8e7b6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index e4df730..f8ba214 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index e85f852..97f943e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index c853d4e..6f3ded2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 6f84d60..92b90c2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // iface2.il
 .assembly extern mscorlib { }
index 801557d..9f4996f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly ILGEN_0x6d358988 {}
 .assembly extern mscorlib{auto}
index dec9416..9156f90 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
diff --git a/tests/src/JIT/Methodical/cctor/misc/tail.il b/tests/src/JIT/Methodical/cctor/misc/tail.il
deleted file mode 100644 (file)
index 8beebf2..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-
-.assembly extern System.Console
-{
-  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )
-  .ver 4:0:0:0
-}
-.assembly extern mscorlib {}
-.assembly precise3 {}
-.class private auto ansi beforefieldinit measure
-       extends [mscorlib]System.Object
-{
-  .field public static int32 a
-  .method private hidebysig specialname rtspecialname static 
-          void  .cctor() cil managed
-  {
-    .maxstack  1
-    IL_0000:  ldc.i4.0
-    IL_0001:  stsfld     int32 measure::a
-    IL_0006:  ret
-  } 
-
-  .method public hidebysig specialname rtspecialname 
-          instance void  .ctor() cil managed
-  {
-    .maxstack  1
-    IL_0000:  ldarg.0
-    IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
-    IL_0006:  ret
-  } 
-
-} 
-
-.class private auto ansi test
-       extends [mscorlib]System.Object
-{
-  .method public hidebysig newslot virtual 
-          instance void  f(unsigned int8& b) cil managed
-  {
-    .maxstack  0
-    IL_0000:  br.s       IL_0002
-
-    IL_0002:  ret
-  } 
-
-  .method private hidebysig specialname rtspecialname static 
-          void  .cctor() cil managed
-  {
-    .maxstack  2
-    IL_0000:  ldsfld     int32 measure::a
-    IL_0005:  brfalse.s  IL_002b
-
-    IL_0007:  ldstr      "in .cctor(), measure.a is {0}"
-    IL_000c:  ldsfld     int32 measure::a
-    IL_0011:  box        [mscorlib]System.Int32
-    IL_0016:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                  object)
-    IL_001b:  ldstr      "FAILED"
-    IL_0020:  call       void [System.Console]System.Console::WriteLine(string)
-    IL_0025:  newobj     instance void [mscorlib]System.Exception::.ctor()
-    IL_002a:  throw
-
-    IL_002b:  ldstr      "in .cctor(), measure.a is {0}"
-    IL_0030:  ldsfld     int32 measure::a
-    IL_0035:  box        [mscorlib]System.Int32
-    IL_003a:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                  object)
-    IL_003f:  ldsfld     int32 measure::a
-    IL_0044:  ldc.i4.8
-    IL_0045:  add
-    IL_0046:  stsfld     int32 measure::a
-    IL_004b:  ldsfld     int32 measure::a
-    IL_0050:  ldc.i4.8
-    IL_0051:  beq.s      IL_0077
-
-    IL_0053:  ldstr      "in .cctor() after measure.a=8, measure.a is {0}"
-    IL_0058:  ldsfld     int32 measure::a
-    IL_005d:  box        [mscorlib]System.Int32
-    IL_0062:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                  object)
-    IL_0067:  ldstr      "FAILED"
-    IL_006c:  call       void [System.Console]System.Console::WriteLine(string)
-    IL_0071:  newobj     instance void [mscorlib]System.Exception::.ctor()
-    IL_0076:  throw
-
-    IL_0077:  ldstr      "in .cctor() after measure.a=8, measure.a is {0}"
-    IL_007c:  ldsfld     int32 measure::a
-    IL_0081:  box        [mscorlib]System.Int32
-    IL_0086:  tail. call       void [System.Console]System.Console::WriteLine(string,
-                                                                  object) 
-    ret                                                              
-  } 
-
-  .method public hidebysig specialname rtspecialname 
-          instance void  .ctor() cil managed
-  {
-    .maxstack  1
-    IL_0000:  ldarg.0
-    IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
-    IL_0006:  ret
-  } 
-
-} 
-
-.class private auto ansi beforefieldinit test2
-       extends test
-{
-  .method public hidebysig specialname rtspecialname 
-          instance void  .ctor() cil managed
-  {
-    .maxstack  1
-    IL_0000:  ldarg.0
-    IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
-    IL_0006:  ret
-  } 
-
-} 
-
-.class private auto ansi beforefieldinit Driver
-       extends [mscorlib]System.Object
-{
-  .method public hidebysig static int32  Main() cil managed
-  {
-    .entrypoint
-    .maxstack  2
-    .locals init (unsigned int8 V_0,
-             class test2 V_1,
-             class [mscorlib]System.Exception V_2,
-             int32 V_3)
-    .try
-    {
-      ldstr      "Testing .cctor() invocation by calling virtual method"
-      call       void [System.Console]System.Console::WriteLine(string)
-      ldnull
-      call       void [System.Console]System.Console::WriteLine(string)
-      IL_0000:  ldc.i4.s   15
-      IL_0002:  stloc.0
-      IL_0003:  newobj     instance void test2::.ctor()
-      IL_0008:  stloc.1
-      IL_0009:  ldsfld     int32 measure::a
-      IL_000e:  brfalse.s  IL_0032
-
-      IL_0010:  ldstr      "in Main(), measure.a is {0}"
-      IL_0015:  ldsfld     int32 measure::a
-      IL_001a:  box        [mscorlib]System.Int32
-      IL_001f:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                    object)
-      IL_0024:  ldstr      "FAILED"
-      IL_0029:  call       void [System.Console]System.Console::WriteLine(string)
-      IL_002e:  ldc.i4.1
-      IL_002f:  stloc.3
-      IL_0030:  leave.s    IL_009e
-
-      IL_0032:  ldstr      "Before running virtual method"
-      IL_0037:  call       void [System.Console]System.Console::WriteLine(string)
-      IL_003c:  ldloc.1
-      IL_003d:  ldloca.s   V_0
-      IL_003f:  callvirt   instance void test::f(unsigned int8&)
-      IL_0044:  ldstr      "After running virtual method"
-      IL_0049:  call       void [System.Console]System.Console::WriteLine(string)
-      IL_004e:  ldsfld     int32 measure::a
-      IL_0053:  ldc.i4.8
-      IL_0054:  beq.s      IL_0078
-
-      IL_0056:  ldstr      "in Main() after f(ref b), measure.a is {0}"
-      IL_005b:  ldsfld     int32 measure::a
-      IL_0060:  box        [mscorlib]System.Int32
-      IL_0065:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                    object)
-      IL_006a:  ldstr      "FAILED"
-      IL_006f:  call       void [System.Console]System.Console::WriteLine(string)
-      IL_0074:  ldc.i4.m1
-      IL_0075:  stloc.3
-      IL_0076:  leave.s    IL_009e
-
-      IL_0078:  leave.s    IL_008a
-
-    }  
-    catch [mscorlib]System.Exception 
-    {
-      IL_007a:  stloc.2
-      IL_007b:  ldloc.2
-      IL_007c:  callvirt   instance string [mscorlib]System.Exception::get_StackTrace()
-      IL_0081:  call       void [System.Console]System.Console::WriteLine(string)
-      IL_0086:  ldc.i4.m1
-      IL_0087:  stloc.3
-      IL_0088:  leave.s    IL_009e
-
-    }  
-    IL_008a:  call       void [System.Console]System.Console::WriteLine()
-    IL_008f:  ldstr      "PASSED"
-    IL_0094:  call       void [System.Console]System.Console::WriteLine(string)
-    IL_0099:  ldc.i4.s   100
-    IL_009b:  stloc.3
-    IL_009c:  br.s       IL_009e
-
-    IL_009e:  ldloc.3
-    IL_009f:  ret
-  } 
-
-  .method public hidebysig specialname rtspecialname 
-          instance void  .ctor() cil managed
-  {
-    .maxstack  1
-    IL_0000:  ldarg.0
-    IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
-    IL_0006:  ret
-  } 
-}
diff --git a/tests/src/JIT/Methodical/cctor/misc/tail_il_d.ilproj b/tests/src/JIT/Methodical/cctor/misc/tail_il_d.ilproj
deleted file mode 100644 (file)
index 80b5827..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT  .0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <PropertyGroup>
-    <DebugType>Full</DebugType>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="tail.il" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
-</Project>
diff --git a/tests/src/JIT/Methodical/cctor/misc/threads3.il b/tests/src/JIT/Methodical/cctor/misc/threads3.il
deleted file mode 100644 (file)
index 018b220..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-
-.assembly extern System.Console
-{
-  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )
-  .ver 4:0:0:0
-}
-.assembly extern mscorlib {}
-.assembly threads3 {}
-.module threads3.EXE
-.namespace Precise
-{
-  .class public auto ansi beforefieldinit measure
-         extends [mscorlib]System.Object
-  {
-    .field public static int32 a
-    .method private hidebysig specialname rtspecialname static 
-            void  .cctor() cil managed
-    {
-      .maxstack  1
-      IL_0000:  ldc.i4.0
-      IL_0001:  stsfld     int32 Precise.measure::a
-      IL_0006:  ret
-    } 
-  } 
-
-  .class public auto ansi test
-         extends [mscorlib]System.Object
-  {
-    .method public hidebysig specialname rtspecialname static 
-            void  .cctor() cil managed
-    {
-      .maxstack  3
-      IL_0000:  ldstr      "{0} in .cctor(), measure.a is {1}"
-      IL_0005:  call       class [mscorlib]System.Threading.Thread [mscorlib]System.Threading.Thread::get_CurrentThread()
-      IL_000a:  callvirt   instance string [mscorlib]System.Threading.Thread::get_Name()
-      IL_000f:  ldsfld     int32 Precise.measure::a
-      IL_0014:  box        [mscorlib]System.Int32
-      IL_0019:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                    object,
-                                                                    object)
-      IL_001e:  ldsfld     int32 Precise.measure::a
-      IL_0023:  ldc.i4.1
-      IL_0024:  add
-      IL_0025:  stsfld     int32 Precise.measure::a
-      IL_002a:  ldstr      "{0} in .cctor(), after +=8, measure.a is {1}"
-      IL_002f:  call       class [mscorlib]System.Threading.Thread [mscorlib]System.Threading.Thread::get_CurrentThread()
-      IL_0034:  callvirt   instance string [mscorlib]System.Threading.Thread::get_Name()
-      IL_0039:  ldsfld     int32 Precise.measure::a
-      IL_003e:  box        [mscorlib]System.Int32
-      IL_0043:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                    object,
-                                                                    object)
-      IL_0048:  call       void [System.Console]System.Console::WriteLine()
-      IL_004d:  ret
-    }
-  } 
-
-  .class private auto ansi beforefieldinit Driver
-         extends [mscorlib]System.Object
-  {
-    .method public hidebysig static void 
-            f() cil managed
-    {
-      .maxstack  0
-      call void Precise.test::.cctor()
-
-      IL_0002:  ret
-    } 
-
-    .method public hidebysig static int32 
-            Main() cil managed
-    {
-      .entrypoint
-      .maxstack  4
-      .locals init (class [mscorlib]System.Threading.Thread[] V_0,
-               int32 V_1,
-               class [mscorlib]System.Threading.ThreadStart V_2,
-               class [mscorlib]System.Threading.Thread V_3,
-               class [mscorlib]System.Threading.Thread V_4,
-               class [mscorlib]System.Exception V_5,
-               int32 V_6,
-               class [mscorlib]System.Threading.Thread[] V_7,
-               int32 V_8)
-      .try
-      {
-        IL_0000:  ldstr      "Before calling static field"
-        IL_0005:  call       void [System.Console]System.Console::WriteLine(string)
-        IL_000a:  ldsfld     int32 Precise.measure::a
-        IL_000f:  brfalse.s  IL_0037
-
-        IL_0011:  ldstr      "in Main(), measure.a is {0}"
-        IL_0016:  ldsfld     int32 Precise.measure::a
-        IL_001b:  box        [mscorlib]System.Int32
-        IL_0020:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                      object)
-        IL_0025:  ldstr      "FAILED"
-        IL_002a:  call       void [System.Console]System.Console::WriteLine(string)
-        IL_002f:  ldc.i4.1
-        IL_0030:  stloc.s    V_6
-        IL_0032:  leave      IL_0124
-
-        IL_0037:  ldc.i4.5
-        IL_0038:  newarr     [mscorlib]System.Threading.Thread
-        IL_003d:  stloc.0
-        IL_003e:  ldc.i4.0
-        IL_003f:  stloc.1
-        IL_0040:  br.s       IL_0074
-
-        IL_0042:  ldnull
-        IL_0043:  ldftn      void Precise.Driver::f()
-        IL_0049:  newobj     instance void [mscorlib]System.Threading.ThreadStart::.ctor(object,
-                                                                                         native int)
-        IL_004e:  stloc.2
-        IL_004f:  ldloc.0
-        IL_0050:  ldloc.1
-        IL_0051:  ldloc.2
-        IL_0052:  newobj     instance void [mscorlib]System.Threading.Thread::.ctor(class [mscorlib]System.Threading.ThreadStart)
-        IL_0057:  stelem.ref
-        IL_0058:  ldloc.0
-        IL_0059:  ldloc.1
-        IL_005a:  ldelem.ref
-        IL_005b:  ldstr      "Thread #"
-        IL_0060:  ldloc.1
-        IL_0061:  box        [mscorlib]System.Int32
-        IL_0066:  call       string [mscorlib]System.String::Concat(object,
-                                                                    object)
-        IL_006b:  callvirt   instance void [mscorlib]System.Threading.Thread::set_Name(string)
-        IL_0070:  ldloc.1
-        IL_0071:  ldc.i4.1
-        IL_0072:  add
-        IL_0073:  stloc.1
-        IL_0074:  ldloc.1
-        IL_0075:  ldc.i4.5
-        IL_0076:  blt.s      IL_0042
-
-        IL_0078:  ldloc.0
-        IL_0079:  stloc.s    V_7
-        IL_007b:  ldc.i4.0
-        IL_007c:  stloc.s    V_8
-        IL_007e:  br.s       IL_0092
-
-        IL_0080:  ldloc.s    V_7
-        IL_0082:  ldloc.s    V_8
-        IL_0084:  ldelem.ref
-        IL_0085:  stloc.3
-        IL_0086:  ldloc.3
-        IL_0087:  callvirt   instance void [mscorlib]System.Threading.Thread::Start()
-        IL_008c:  ldloc.s    V_8
-        IL_008e:  ldc.i4.1
-        IL_008f:  add
-        IL_0090:  stloc.s    V_8
-        IL_0092:  ldloc.s    V_8
-        IL_0094:  ldloc.s    V_7
-        IL_0096:  ldlen
-        IL_0097:  conv.i4
-        IL_0098:  blt.s      IL_0080
-
-        IL_009a:  ldloc.0
-        IL_009b:  stloc.s    V_7
-        IL_009d:  ldc.i4.0
-        IL_009e:  stloc.s    V_8
-        IL_00a0:  br.s       IL_00b6
-
-        IL_00a2:  ldloc.s    V_7
-        IL_00a4:  ldloc.s    V_8
-        IL_00a6:  ldelem.ref
-        IL_00a7:  stloc.s    V_4
-        IL_00a9:  ldloc.s    V_4
-        IL_00ab:  callvirt   instance void [mscorlib]System.Threading.Thread::Join()
-        IL_00b0:  ldloc.s    V_8
-        IL_00b2:  ldc.i4.1
-        IL_00b3:  add
-        IL_00b4:  stloc.s    V_8
-        IL_00b6:  ldloc.s    V_8
-        IL_00b8:  ldloc.s    V_7
-        IL_00ba:  ldlen
-        IL_00bb:  conv.i4
-        IL_00bc:  blt.s      IL_00a2
-
-        IL_00be:  ldstr      "After calling static field"
-        IL_00c3:  call       void [System.Console]System.Console::WriteLine(string)
-        IL_00c8:  ldsfld     int32 Precise.measure::a
-        IL_00cd:  ldc.i4 6
-        IL_00ce:  beq.s      IL_00f3
-
-        IL_00d0:  ldstr      "in Main(), measure.a is {0}"
-        IL_00d5:  ldsfld     int32 Precise.measure::a
-        IL_00da:  box        [mscorlib]System.Int32
-        IL_00df:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                      object)
-        IL_00e4:  ldstr      "FAILED"
-        IL_00e9:  call       void [System.Console]System.Console::WriteLine(string)
-        IL_00ee:  ldc.i4.m1
-        IL_00ef:  stloc.s    V_6
-        IL_00f1:  leave.s    IL_0124
-
-        IL_00f3:  leave.s    IL_010f
-
-      }  
-      catch [mscorlib]System.Exception 
-      {
-        IL_00f5:  stloc.s    V_5
-        IL_00f7:  ldloc.s    V_5
-        IL_00f9:  call       void [System.Console]System.Console::WriteLine(object)
-        IL_00fe:  ldloc.s    V_5
-        IL_0100:  callvirt   instance string [mscorlib]System.Exception::get_StackTrace()
-        IL_0105:  call       void [System.Console]System.Console::WriteLine(string)
-        IL_010a:  ldc.i4.m1
-        IL_010b:  stloc.s    V_6
-        IL_010d:  leave.s    IL_0124
-
-      }  
-      IL_010f:  call       void [System.Console]System.Console::WriteLine()
-      IL_0114:  ldstr      "PASSED"
-      IL_0119:  call       void [System.Console]System.Console::WriteLine(string)
-      IL_011e:  ldc.i4.s   100
-      IL_0120:  stloc.s    V_6
-      IL_0122:  br.s       IL_0124
-
-      IL_0124:  ldloc.s    V_6
-      IL_0126:  ret
-    } 
-  } 
-} 
diff --git a/tests/src/JIT/Methodical/cctor/misc/threads3_il_d.ilproj b/tests/src/JIT/Methodical/cctor/misc/threads3_il_d.ilproj
deleted file mode 100644 (file)
index 3fbb8db..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT  .0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <PropertyGroup>
-    <DebugType>Full</DebugType>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="threads3.il" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
-</Project>
diff --git a/tests/src/JIT/Methodical/cctor/misc/threads3_il_r.ilproj b/tests/src/JIT/Methodical/cctor/misc/threads3_il_r.ilproj
deleted file mode 100644 (file)
index 7f7f074..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT  .0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <PropertyGroup>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="threads3.il" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
-</Project>
index 37dad74..39a4892 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
diff --git a/tests/src/JIT/Methodical/cctor/simple/precise3.il b/tests/src/JIT/Methodical/cctor/simple/precise3.il
deleted file mode 100644 (file)
index 3988806..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-
-.assembly extern System.Console
-{
-  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )
-  .ver 4:0:0:0
-}
-.assembly extern mscorlib {}
-.assembly precise3 {}
-.class private auto ansi beforefieldinit measure
-       extends [mscorlib]System.Object
-{
-  .field public static int32 a
-  .method private hidebysig specialname rtspecialname static 
-          void  .cctor() cil managed
-  {
-    .maxstack  1
-    IL_0000:  ldc.i4.0
-    IL_0001:  stsfld     int32 measure::a
-    IL_0006:  ret
-  } 
-
-  .method public hidebysig specialname rtspecialname 
-          instance void  .ctor() cil managed
-  {
-    .maxstack  1
-    IL_0000:  ldarg.0
-    IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
-    IL_0006:  ret
-  } 
-
-} 
-
-.class private auto ansi test
-       extends [mscorlib]System.Object
-{
-  .method public hidebysig newslot virtual 
-          instance void  f(unsigned int8& b) cil managed
-  {
-    .maxstack  0
-    IL_0000:  br.s       IL_0002
-
-    IL_0002:  ret
-  } 
-
-  .method private hidebysig specialname rtspecialname static 
-          void  .cctor() cil managed
-  {
-    .maxstack  2
-    IL_0000:  ldsfld     int32 measure::a
-    IL_0005:  brfalse.s  IL_002b
-
-    IL_0007:  ldstr      "in .cctor(), measure.a is {0}"
-    IL_000c:  ldsfld     int32 measure::a
-    IL_0011:  box        [mscorlib]System.Int32
-    IL_0016:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                  object)
-    IL_001b:  ldstr      "FAILED"
-    IL_0020:  call       void [System.Console]System.Console::WriteLine(string)
-    IL_0025:  newobj     instance void [mscorlib]System.Exception::.ctor()
-    IL_002a:  throw
-
-    IL_002b:  ldstr      "in .cctor(), measure.a is {0}"
-    IL_0030:  ldsfld     int32 measure::a
-    IL_0035:  box        [mscorlib]System.Int32
-    IL_003a:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                  object)
-    IL_003f:  ldsfld     int32 measure::a
-    IL_0044:  ldc.i4.8
-    IL_0045:  add
-    IL_0046:  stsfld     int32 measure::a
-    IL_004b:  ldsfld     int32 measure::a
-    IL_0050:  ldc.i4.8
-    IL_0051:  beq.s      IL_0077
-
-    IL_0053:  ldstr      "in .cctor() after measure.a=8, measure.a is {0}"
-    IL_0058:  ldsfld     int32 measure::a
-    IL_005d:  box        [mscorlib]System.Int32
-    IL_0062:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                  object)
-    IL_0067:  ldstr      "FAILED"
-    IL_006c:  call       void [System.Console]System.Console::WriteLine(string)
-    IL_0071:  newobj     instance void [mscorlib]System.Exception::.ctor()
-    IL_0076:  throw
-
-    IL_0077:  ldstr      "in .cctor() after measure.a=8, measure.a is {0}"
-    IL_007c:  ldsfld     int32 measure::a
-    IL_0081:  box        [mscorlib]System.Int32
-    IL_0086:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                  object)
-    IL_008b:  ret
-  } 
-
-  .method public hidebysig specialname rtspecialname 
-          instance void  .ctor() cil managed
-  {
-    .maxstack  1
-    IL_0000:  ldarg.0
-    IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
-    IL_0006:  ret
-  } 
-
-} 
-
-.class private auto ansi beforefieldinit test2
-       extends test
-{
-  .method public hidebysig specialname rtspecialname 
-          instance void  .ctor() cil managed
-  {
-    .maxstack  1
-    IL_0000:  ldarg.0
-    IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
-    IL_0006:  ret
-  } 
-
-} 
-
-.class private auto ansi beforefieldinit Driver
-       extends [mscorlib]System.Object
-{
-  .method public hidebysig static int32  Main() cil managed
-  {
-    .entrypoint
-    .maxstack  2
-    .locals init (unsigned int8 V_0,
-             class test2 V_1,
-             class [mscorlib]System.Exception V_2,
-             int32 V_3)
-    .try
-    {
-      ldstr      "Testing .cctor() invocation by calling virtual method"
-      call       void [System.Console]System.Console::WriteLine(string)
-      ldnull
-      call       void [System.Console]System.Console::WriteLine(string)
-      IL_0000:  ldc.i4.s   15
-      IL_0002:  stloc.0
-      IL_0003:  newobj     instance void test2::.ctor()
-      IL_0008:  stloc.1
-      IL_0009:  ldsfld     int32 measure::a
-      IL_000e:  brfalse.s  IL_0032
-
-      IL_0010:  ldstr      "in Main(), measure.a is {0}"
-      IL_0015:  ldsfld     int32 measure::a
-      IL_001a:  box        [mscorlib]System.Int32
-      IL_001f:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                    object)
-      IL_0024:  ldstr      "FAILED"
-      IL_0029:  call       void [System.Console]System.Console::WriteLine(string)
-      IL_002e:  ldc.i4.1
-      IL_002f:  stloc.3
-      IL_0030:  leave.s    IL_009e
-
-      IL_0032:  ldstr      "Before running virtual method"
-      IL_0037:  call       void [System.Console]System.Console::WriteLine(string)
-      IL_003c:  ldloc.1
-      IL_003d:  ldloca.s   V_0
-      IL_003f:  callvirt   instance void test::f(unsigned int8&)
-      IL_0044:  ldstr      "After running virtual method"
-      IL_0049:  call       void [System.Console]System.Console::WriteLine(string)
-      IL_004e:  ldsfld     int32 measure::a
-      IL_0053:  ldc.i4.8
-      IL_0054:  beq.s      IL_0078
-
-      IL_0056:  ldstr      "in Main() after f(ref b), measure.a is {0}"
-      IL_005b:  ldsfld     int32 measure::a
-      IL_0060:  box        [mscorlib]System.Int32
-      IL_0065:  call       void [System.Console]System.Console::WriteLine(string,
-                                                                    object)
-      IL_006a:  ldstr      "FAILED"
-      IL_006f:  call       void [System.Console]System.Console::WriteLine(string)
-      IL_0074:  ldc.i4.m1
-      IL_0075:  stloc.3
-      IL_0076:  leave.s    IL_009e
-
-      IL_0078:  leave.s    IL_008a
-
-    }  
-    catch [mscorlib]System.Exception 
-    {
-      IL_007a:  stloc.2
-      IL_007b:  ldloc.2
-      IL_007c:  callvirt   instance string [mscorlib]System.Exception::get_StackTrace()
-      IL_0081:  call       void [System.Console]System.Console::WriteLine(string)
-      IL_0086:  ldc.i4.m1
-      IL_0087:  stloc.3
-      IL_0088:  leave.s    IL_009e
-
-    }  
-    IL_008a:  call       void [System.Console]System.Console::WriteLine()
-    IL_008f:  ldstr      "PASSED"
-    IL_0094:  call       void [System.Console]System.Console::WriteLine(string)
-    IL_0099:  ldc.i4.s   100
-    IL_009b:  stloc.3
-    IL_009c:  br.s       IL_009e
-
-    IL_009e:  ldloc.3
-    IL_009f:  ret
-  } 
-
-  .method public hidebysig specialname rtspecialname 
-          instance void  .ctor() cil managed
-  {
-    .maxstack  1
-    IL_0000:  ldarg.0
-    IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
-    IL_0006:  ret
-  } 
-}
diff --git a/tests/src/JIT/Methodical/cctor/simple/precise3_il_d.ilproj b/tests/src/JIT/Methodical/cctor/simple/precise3_il_d.ilproj
deleted file mode 100644 (file)
index 74eff0a..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT  .0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <PropertyGroup>
-    <DebugType>Full</DebugType>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="precise3.il" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
-</Project>
diff --git a/tests/src/JIT/Methodical/cctor/simple/precise3_il_r.ilproj b/tests/src/JIT/Methodical/cctor/simple/precise3_il_r.ilproj
deleted file mode 100644 (file)
index d9343b5..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT  .0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <PropertyGroup>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="precise3.il" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
-</Project>
index bce12f6..60d82da 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index cd98b05..c7fb2f1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 0ca7933..f30ae25 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 1b4d358..107a4e5 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index b296987..59e7bf9 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // empty finally (with only endfinally in it)
 
 
@@ -87,4 +90,3 @@
   } 
 
 } 
-
index b150087..6bb0c00 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // throw in except
 
 
index d9a95d8..2e8fff9 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // throw in fault
 
 
index 9d64bfe..63faf45 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // throw in filter
 
 
index 36f525b..e527880 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
     endfinally
   }
   DONE:  ret
-}
\ No newline at end of file
+}
index ea4aa43..e4f547a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
     leave.s    DONE
   }
   DONE:  ret
-}
\ No newline at end of file
+}
index 63911d0..03c9fd6 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
     leave.s    DONE
   }
   DONE:  ret
-}
\ No newline at end of file
+}
index 9ad147e..42c0c38 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // throw first instruction in catch block - NDPWhidbey 10777
 
 
@@ -68,4 +71,4 @@
       ret
   }
 
-}
\ No newline at end of file
+}
index 37f9174..7d90861 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // basic SEH, non error case
 
 
index d5dfb37..5df356b 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // try fault, non error case
 
 
index 6425132..10d8289 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // try fault, error case
 
 
index 025e43d..0bf8e14 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // try fault, error case
 
 
index 9e54cb2..2723d4e 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // a finally with 2 endfinallys (1 unreachable)
 
 
@@ -83,4 +86,3 @@
   } 
 
 } 
-
index e7c96e6..eb4b822 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // endfinally 
 
 
@@ -104,4 +107,3 @@ again:
   } 
 
 } 
-
index e72d7b2..a87c095 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // basic SEH, error case
 
 
index bc9e79b..178b524 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 564940e..551aa76 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index d5cbeb1..3993ae4 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index d916788..ae7ddea 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 3968216..66f6976 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 031a4c6..75663c8 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 4e3635f..d2cc883 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d6960fc..fb6b9e1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e65f5ca..4ffde2a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib
 {
index 5341c5e..4853b89 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index a9d9527..b40d2cb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib
index f491750..1554ecb 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
 
 
 } 
-
index a54c2d4..801f001 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // dead region in funclet
 
 
index 5b8402e..0d14335 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // dead trycatch due to a br
 
 
index c131eea..b1ec737 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // dead try finally due to a br
 
 
index e6707e8..28b286a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // dead try finally due to a throw.
 
 
index 6671a01..9101189 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
   } 
 
 } 
-
-
-
-
index 11e96af..6501574 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // the simplest dead EH region that will not also have dead nonlocal exit
 
 
index a16f5b5..380831a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // the simplest dead EH region that will not also have dead nonlocal exit
 
 
index 45d77e9..42aa944 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // the simplest dead EH region that will not also have dead nonlocal exit
 
 
index cfa8d70..a82d66f 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // disconnected catch{} try {}, with a backward leave to go to the unprotected code in between the handler and tryblock
 
 .assembly extern System.Console
index 3b9d40a..780bc6a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // catch before trybody, error case
 
 
index acd7a35..58b6d76 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -85,4 +88,3 @@
     callvirt   instance int32 [common]TestUtil.TestLog::VerifyOutput()
     ret
 } 
-
index 224f527..4d8b93f 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // fault before trybody
 
 .assembly extern System.Console
index a689047..fc76bfa 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // finally before try body
 
 .assembly extern System.Console
index e247959..8bdf69a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // finally/try in try/finally
 
 .assembly extern System.Console
index 5d17330..040ce10 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index dff6828..93acbc9 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 6c4d8e7..69f169f 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // seh handler before body
 
 .assembly extern System.Console
index 873f47d..a694ab6 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // nested disconnected try/catch handlers with unprotected islands in the middle
 
 
index 567c23c..64c881e 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // trybody in between catch handlers
 
 
index 1521c7f..1e695d1 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // try/finally in catch/try
 
 .assembly extern System.Console
index 1673bc1..75366b4 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
  
 
index 9fe68f7..372da43 100644 (file)
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
   <PropertyGroup>
-    <!-- Set to 'Full' if the Debug? column is marked in the spreadsheet. Leave blank otherwise. -->
     <DebugType>Full</DebugType>
-    <Optimize></Optimize>
-    <NoLogo>True</NoLogo>
-    <DefineConstants>$(DefineConstants);DESKTOP</DefineConstants>
+    <Optimize>False</Optimize>
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="catchrettoinnertry.cs" />
-    <ProjectReference Include="..\common\common.csproj" />
   </ItemGroup>
   <ItemGroup>
     <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
@@ -47,6 +43,9 @@
     <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
   </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\common\common.csproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
index d7f9249..154d225 100644 (file)
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
   <PropertyGroup>
-    <!-- Set to 'Full' if the Debug? column is marked in the spreadsheet. Leave blank otherwise. -->
     <DebugType>Full</DebugType>
     <Optimize>True</Optimize>
-    <NoLogo>True</NoLogo>
-    <DefineConstants>$(DefineConstants);DESKTOP</DefineConstants>
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="catchrettoinnertry.cs" />
-    <ProjectReference Include="..\common\common.csproj" />
   </ItemGroup>
   <ItemGroup>
     <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
@@ -47,6 +43,9 @@
     <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
   </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\common\common.csproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
index da1227b..d6860e7 100644 (file)
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
   <PropertyGroup>
-    <!-- Set to 'Full' if the Debug? column is marked in the spreadsheet. Leave blank otherwise. -->
-    <DebugType>None</DebugType>
-    <Optimize></Optimize>
-    <NoLogo>True</NoLogo>
-    <DefineConstants>$(DefineConstants);DESKTOP</DefineConstants>
+    <DebugType>PdbOnly</DebugType>
+    <Optimize>False</Optimize>
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="catchrettoinnertry.cs" />
-    <ProjectReference Include="..\common\common.csproj" />
   </ItemGroup>
   <ItemGroup>
     <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
@@ -47,6 +43,9 @@
     <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
   </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\common\common.csproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
index 1bbcf19..89718e9 100644 (file)
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
   <PropertyGroup>
-    <!-- Set to 'Full' if the Debug? column is marked in the spreadsheet. Leave blank otherwise. -->
-    <DebugType>None</DebugType>
+    <DebugType>PdbOnly</DebugType>
     <Optimize>True</Optimize>
-    <NoLogo>True</NoLogo>
-    <DefineConstants>$(DefineConstants);DESKTOP</DefineConstants>
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="catchrettoinnertry.cs" />
-    <ProjectReference Include="..\common\common.csproj" />
   </ItemGroup>
   <ItemGroup>
     <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
@@ -47,6 +43,9 @@
     <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
     <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
   </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\common\common.csproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
diff --git a/tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_d.csproj b/tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_d.csproj
deleted file mode 100644 (file)
index 0401a46..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <PropertyGroup>
-    <DebugType>Full</DebugType>
-    <Optimize>False</Optimize>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="catchrettoinnertry.cs" />
-  </ItemGroup>
-  <ItemGroup>
-   <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
-   <None Include="app.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <PropertyGroup>
-    <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
-    <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
-  </PropertyGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\common\common.csproj" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
-</Project>
index 9e240c6..dd4ebd5 100644 (file)
@@ -37,6 +37,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\common\common.csproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
diff --git a/tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_do.csproj b/tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_do.csproj
deleted file mode 100644 (file)
index 1310e0f..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <PropertyGroup>
-    <DebugType>Full</DebugType>
-    <Optimize>True</Optimize>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="catchrettoinnertry.cs" />
-  </ItemGroup>
-  <ItemGroup>
-   <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
-   <None Include="app.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <PropertyGroup>
-    <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
-    <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
-  </PropertyGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\common\common.csproj" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
-</Project>
diff --git a/tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_r.csproj b/tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_r.csproj
deleted file mode 100644 (file)
index 3464f6c..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <PropertyGroup>
-    <DebugType></DebugType>
-    <Optimize>False</Optimize>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="catchrettoinnertry.cs" />
-  </ItemGroup>
-  <ItemGroup>
-   <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
-   <None Include="app.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <PropertyGroup>
-    <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
-    <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
-  </PropertyGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\common\common.csproj" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
-</Project>
index 0e25816..efa78c3 100644 (file)
@@ -26,6 +26,7 @@
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
   <PropertyGroup>
+    <DebugType>PdbOnly</DebugType>
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="catchrettoinnertry.il" />
@@ -36,6 +37,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\common\common.csproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
diff --git a/tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_ro.csproj b/tests/src/JIT/Methodical/eh/finallyexec/catchrettoinnertry_ro.csproj
deleted file mode 100644 (file)
index 6d5beaa..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <PropertyGroup>
-    <DebugType></DebugType>
-    <Optimize>True</Optimize>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="catchrettoinnertry.cs" />
-  </ItemGroup>
-  <ItemGroup>
-   <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
-   <None Include="app.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <PropertyGroup>
-    <ProjectJson>$(JitPackagesConfigFileDirectory)minimal\project.json</ProjectJson>
-    <ProjectLockJson>$(JitPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson>
-  </PropertyGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\common\common.csproj" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
-</Project>
index 8f9d1c8..5d9c5a0 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 32ca890..b6c7dac 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
  
 
index 0dfbb3f..3e6530d 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // throw a 1 dimensional array, and then print the array
 
 
   } 
 
 } 
-
-
-
index 69d36f4..ace05d0 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // throw a 2 dimensional array, and then print the array
 
 
   } 
 
 } 
-
-
-
index a927136..f06154a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // 2 branches out of try with dead code after tryend
 
 
 
 
 } 
-
index 5b5f4cf..cbbf77c 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // backward leave in catch, with destination before optry
 
 
 
 
 } 
-
index 2d4c0f6..54e6c63 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // branch backwards from try body (a try / catch struct) 
 
 
@@ -161,4 +164,3 @@ before:
 
 
 } 
-
index 297265c..c7278cb 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // branch backwards from try body (a try / finally struct) 
 
 
 
 
 } 
-
index 8b70da7..dc5c1b4 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // branch out of nested try-finally with dead code after try end
 
 
 
 
 } 
-
index 0053097..cde4772 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // branch out of try finally
 // with dead code after tryend
 
 
 
 } 
-
index dbb23f4..dfd4556 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // forward leave (with dead code after try end) in catch
 
 
 
 
 } 
-
index 6bf0dd3..52dc094 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
 
 
 } 
-
index 81ec6e9..df08618 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // label at the beginning of finally block
 
 
 
 
 } 
-
index ea3d117..65479b0 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // a try catch where there is a leave statement whose destination is inside the catch handler
 
 
 
 
 } 
-
index b934a72..5b658d1 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // try catch, with leave statements from the catch back into trybody (allowed by spec)
 
 
   } 
 
 } 
-
index 202daef..56fd9f5 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // try catch with branches into try body
 // try finally at the end of trybody of the try catch
 
   } 
 
 } 
-
index c449609..84a3f13 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // try block with both filter/handler and typed handler
 // the filter handles the exception
 // if there are more than one handlers that is suitable, make sure that the
   } 
 
 } 
-
index 3028a8b..d520d51 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // try block with both filter/handler and typed handler
 // two filter and two catches, the 2nd filter handles the exception
 // if there are more than one handlers that is suitable, make sure that the
   } 
 
 } 
-
index d9af8c5..ba96864 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index e331562..96edbfc 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 02bae01..8660e3a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d3e3661..1932a64 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 0500fdd..382b977 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 4aefdad..96c00ee 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 7b10e68..8f6e2db 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // local variable value should be preserved in all nested handlers
 
 
index 13adb5c..b91ba1d 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Throwing an exception from an inner catch guarded with multiple catch blocks.
 
 
index e06f478..fafe96c 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 9373247..aaa3cb6 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index e71699d..f2615fd 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 8df5482..7fb0565 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d6ea3fa..2ce15fb 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 456e183..c7c6dd3 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 5e39a37..0cf324e 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 5d77c2a..795a3bb 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index b7eb369..a1c6fc1 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 888fcc2..1b81cf7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index eec9dec..cfb5a62 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 4eb80bb..0b85f5a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index a198e3e..87126bb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 370a890..b8cb471 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6accce8..5c34b03 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 83e6e15..bb24b64 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6ff36ba..aac154e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 665088c..b2cbe14 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 5b8612c..07acbaf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e85b6b6..eec9a9b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 17bc271..d71a92a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 97170c3..a593849 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 265e4bf..e4c8a6d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 1e9d166..cf9f624 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 32c47d4..24251a9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 716c579..65674fb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 5c0aa7d..2bc99f3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index c24ee0a..c74e3b3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index a36e40b..989a674 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e535de9..e9205f4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index fef2093..9d1bdd7 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 .assembly extern mscorlib
 {
 }
   } 
 
 } 
-
index 495dd8f..94f6490 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 98f87b1..4a17b2f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 22d4729..30169d3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index d82af8f..79265b8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 8d1aa05..3ebcc5e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 357e813..f26d594 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 937dc7c..f64066a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 1e2f56b..e441c4a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d8a12d0..ddda6fd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6874848..e4cb5b9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 64a860e..3dbfda0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index def94d7..ac4f90d 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index dc25a8c..91f53e9 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
@@ -203,4 +206,3 @@ ret
 }
 
 }
-
index a19dec3..284dadd 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d15ca6f..1268ccc 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 60122d1..3b08fdd 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib
 {
   } 
 
 } 
-
index 352695b..5a5b1b0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly ILGEN_0xb8816d7d {}
index 7ee3ed5..1d5d13a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index cd2848f..086ab06 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index d3bdf22..36e8bce 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly ILGEN_0x52ea038a {}
 .assembly extern mscorlib{auto}
index ad9810c..51cc373 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly ILGEN_0xd01d9fe9 {}
 .assembly extern mscorlib{auto}
index 9fdd4fb..943c383 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly ILGEN_0x537f7b0 {}
 .assembly extern mscorlib{auto}
diff --git a/tests/src/JIT/Methodical/inlining/boolean/InlineBool.cs b/tests/src/JIT/Methodical/inlining/boolean/InlineBool.cs
new file mode 100644 (file)
index 0000000..ece501c
--- /dev/null
@@ -0,0 +1,378 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+// Tests for boolean expression, control flow, and inlining optimizations.
+// All 100 variants of Id should generate the same code.
+
+using System;
+using System.Runtime.CompilerServices;
+namespace InlineBool
+{
+    public class Program
+    {
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool False00() { return false; }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool False01() { return !true; }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool False02() { return Id00(False00()); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool False03() { return Not00(True00()); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool False04() { return Id00(Id00(False00())); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool False05() { return Not00(Not00(False00())); }
+
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool True00() { return true; }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool True01() { return !false; }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool True02() { return Id00(True00()); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool True03() { return Not00(False00()); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool True04() { return Id00(Id00(True00())); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool True05() { return Not00(Not00(True00())); }
+
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Not00(bool x) { return !x; }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Not01(bool x) { return x == false; }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Not02(bool x) { return Not00(Id00(x)); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Not03(bool x) { return Id00(Not00(x)); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Not04(bool x) { return Id00(!x); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Not05(bool x) { return !Id00(x); }
+
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Id00(bool x) { return x; }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Id01(bool x) { return x == true; }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Id02(bool x) { return Not00(Not00(x)); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Id03(bool x) { return Id00(Id00(x)); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Id04(bool x) { return Id00(x); }
+        [MethodImpl(MethodImplOptions.AggressiveInlining)]
+        static bool Id05(bool x) { return !Id00(!x); }
+        static bool Id06(bool x) { return x ? true : false; }
+        static bool Id07(bool x) { return !x ? false : true; }
+        static bool Id08(bool x) { if (x) return true; else return false; }
+        static bool Id09(bool x) { if (!x) return false; else return true; }
+        static bool Id10(bool x) { return Id00(x) ? true : false; }
+        static bool Id11(bool x) { return Not00(x) ? false : true; }
+        static bool Id12(bool x) { if (x) return x; else return x; }
+        static bool Id13(bool x) { if (!x) return x; else return x; }
+        static bool Id14(bool x) { return x ? x : x; }
+        static bool Id15(bool x) { return !x ? x : x; }
+        static bool Id16(bool x) { return x == true ? true : false; }
+        static bool Id17(bool x) { return x == false ? false : true; }
+        static bool Id18(bool x) { return x != true ? false : true; }
+        static bool Id19(bool x) { return x != false ? true : false; }
+        static bool Id20(bool x) { return !x == true ? false : true; }
+        static bool Id21(bool x) { return !x == false ? true : false; }
+        static bool Id22(bool x) { return !!x; }
+        static bool Id23(bool x) { return !!!!x; }
+        static bool Id24(bool x) { return !!!!!!x; }
+        static bool Id25(bool x) { return !!!!!!!!x; }
+        static bool Id26(bool x) { return !!x ? !!x : !!x; }
+        static bool Id27(bool x) { return !x ? !!x : !!x;  }
+        static bool Id28(bool x) { return x & x; }
+        static bool Id29(bool x) { return x && x; }
+        static bool Id30(bool x) { return x | x; }
+        static bool Id31(bool x) { return x | x & x | x; }
+        static bool Id32(bool x) { return x || x; }
+        static bool Id33(bool x) { return x & x ? true : false; }
+        static bool Id34(bool x) { return x | x ? true : false; }
+        static bool Id35(bool x) { return x && x ? true : false; }
+        static bool Id36(bool x) { return x || x ? true : false; }
+        static bool Id37(bool x) { return x && x && x ? true : false; }
+        static bool Id38(bool x) { return x || x || x ? true : false; }
+        static bool Id39(bool x) { return x | x & x | x ? ! x ^ x : x ^ x; }
+        static bool Id40(bool x) { return !!Id00(x); }
+        static bool Id41(bool x) { return x == True00(); }
+        static bool Id42(bool x) { return !Not00(!Not00(x)); }
+        static bool Id43(bool x) { return !Id00(!Id00(x)); }
+        static bool Id44(bool x) { return Id00(!!x); }
+        static bool Id45(bool x) { return !!Id00(!!x); }
+        static bool Id46(bool x) { return x ? True00() : False00(); }
+        static bool Id47(bool x) { return !x ? False00() : True00(); }
+        static bool Id48(bool x) { if (x) return True00(); else return False00(); }
+        static bool Id49(bool x) { if (!x) return False00(); else return True00(); }
+        static bool Id50(bool x) { return Id00(x) ? True00() : False00(); }
+        static bool Id51(bool x) { return Not00(x) ? False00() : True00(); }
+        static bool Id52(bool x) { if (Id00(x)) return Id00(x); else return Id00(x); }
+        static bool Id53(bool x) { if (!Id00(x)) return Id00(x); else return Id00(x); }
+        static bool Id54(bool x) { return Id00(x) ? Id00(x) : Id00(x); }
+        static bool Id55(bool x) { return Not00(x) ? Id00(x) : Id00(x); }
+        static bool Id56(bool x) { return x == True00() ? true : false; }
+        static bool Id57(bool x) { return x == False00() ? false : true; }
+        static bool Id58(bool x) { return Id00(x != true) ? false : true; }
+        static bool Id59(bool x) { return Id00(x != false) ? true : false; }
+        static bool Id60(bool x) { return Id01(x) ? True01() : False01(); }
+        static bool Id61(bool x) { return Not01(x) ? False01() : True01(); }
+        static bool Id62(bool x) { if (Id01(x)) return Id01(x); else return Id01(x); }
+        static bool Id63(bool x) { if (!Id01(x)) return Id01(x); else return Id01(x); }
+        static bool Id64(bool x) { return Id01(x) ? Id01(x) : Id01(x); }
+        static bool Id65(bool x) { return Not01(x) ? Id01(x) : Id01(x); }
+        static bool Id66(bool x) { return x == True01() ? true : false; }
+        static bool Id67(bool x) { return x == False01() ? false : true; }
+        static bool Id68(bool x) { return Id01(x != true) ? false : true; }
+        static bool Id69(bool x) { return Id01(x != false) ? true : false; }
+        static bool Id70(bool x) { return Id02(x) ? True02() : False02(); }
+        static bool Id71(bool x) { return Not02(x) ? False02() : True02(); }
+        static bool Id72(bool x) { if (Id02(x)) return Id02(x); else return Id02(x); }
+        static bool Id73(bool x) { if (!Id02(x)) return Id02(x); else return Id02(x); }
+        static bool Id74(bool x) { return Id02(x) ? Id02(x) : Id02(x); }
+        static bool Id75(bool x) { return Not02(x) ? Id02(x) : Id02(x); }
+        static bool Id76(bool x) { return x == True02() ? true : false; }
+        static bool Id77(bool x) { return x == False02() ? false : true; }
+        static bool Id78(bool x) { return Id02(x != true) ? false : true; }
+        static bool Id79(bool x) { return Id02(x != false) ? true : false; }
+        static bool Id80(bool x) { return Id03(x) ? True03() : False03(); }
+        static bool Id81(bool x) { return Not03(x) ? False03() : True03(); }
+        static bool Id82(bool x) { if (Id03(x)) return Id03(x); else return Id03(x); }
+        static bool Id83(bool x) { if (!Id03(x)) return Id03(x); else return Id03(x); }
+        static bool Id84(bool x) { return Id03(x) ? Id03(x) : Id03(x); }
+        static bool Id85(bool x) { return Not03(x) ? Id03(x) : Id03(x); }
+        static bool Id86(bool x) { return x == True03() ? true : false; }
+        static bool Id87(bool x) { return x == False03() ? false : true; }
+        static bool Id88(bool x) { return Id03(x != true) ? false : true; }
+        static bool Id89(bool x) { return Id03(x != false) ? true : false; }
+        static bool Id90(bool x) { return Id04(x) ? True04() : False04(); }
+        static bool Id91(bool x) { return Not04(x) ? False04() : True04(); }
+        static bool Id92(bool x) { if (Id04(x)) return Id04(x); else return Id04(x); }
+        static bool Id93(bool x) { if (!Id04(x)) return Id04(x); else return Id04(x); }
+        static bool Id94(bool x) { return Id04(x) ? Id04(x) : Id04(x); }
+        static bool Id95(bool x) { return Not04(x) ? Id04(x) : Id04(x); }
+        static bool Id96(bool x) { return x == True04() ? true : false; }
+        static bool Id97(bool x) { return x == False04() ? false : true; }
+        static bool Id98(bool x) { return Id04(x != true) ? false : true; }
+        static bool Id99(bool x) { return Id04(x != false) ? true : false; }
+
+        [MethodImpl(MethodImplOptions.NoOptimization)]
+        public static int Main(string[] args)
+        {
+            bool result = true;
+
+            result &= Id00(true);
+            result &= ! Id00(false);
+            result &= Id01(true);
+            result &= ! Id01(false);
+            result &= Id02(true);
+            result &= ! Id02(false);
+            result &= Id03(true);
+            result &= ! Id03(false);
+            result &= Id04(true);
+            result &= ! Id04(false);
+            result &= Id05(true);
+            result &= ! Id05(false);
+            result &= Id06(true);
+            result &= ! Id06(false);
+            result &= Id07(true);
+            result &= ! Id07(false);
+            result &= Id08(true);
+            result &= ! Id08(false);
+            result &= Id09(true);
+            result &= ! Id09(false);
+
+            result &= Id10(true);
+            result &= ! Id10(false);
+            result &= Id11(true);
+            result &= ! Id11(false);
+            result &= Id12(true);
+            result &= ! Id12(false);
+            result &= Id13(true);
+            result &= ! Id13(false);
+            result &= Id14(true);
+            result &= ! Id14(false);
+            result &= Id15(true);
+            result &= ! Id15(false);
+            result &= Id16(true);
+            result &= ! Id16(false);
+            result &= Id17(true);
+            result &= ! Id17(false);
+            result &= Id18(true);
+            result &= ! Id18(false);
+            result &= Id19(true);
+            result &= ! Id19(false);
+
+            result &= Id20(true);
+            result &= ! Id20(false);
+            result &= Id21(true);
+            result &= ! Id21(false);
+            result &= Id22(true);
+            result &= ! Id22(false);
+            result &= Id23(true);
+            result &= ! Id23(false);
+            result &= Id24(true);
+            result &= ! Id24(false);
+            result &= Id25(true);
+            result &= ! Id25(false);
+            result &= Id26(true);
+            result &= ! Id26(false);
+            result &= Id27(true);
+            result &= ! Id27(false);
+            result &= Id28(true);
+            result &= ! Id28(false);
+            result &= Id29(true);
+            result &= ! Id29(false);
+
+            result &= Id30(true);
+            result &= ! Id30(false);
+            result &= Id31(true);
+            result &= ! Id31(false);
+            result &= Id32(true);
+            result &= ! Id32(false);
+            result &= Id33(true);
+            result &= ! Id33(false);
+            result &= Id34(true);
+            result &= ! Id34(false);
+            result &= Id35(true);
+            result &= ! Id35(false);
+            result &= Id36(true);
+            result &= ! Id36(false);
+            result &= Id37(true);
+            result &= ! Id37(false);
+            result &= Id38(true);
+            result &= ! Id38(false);
+            result &= Id39(true);
+            result &= ! Id39(false);
+
+            result &= Id40(true);
+            result &= ! Id40(false);
+            result &= Id41(true);
+            result &= ! Id41(false);
+            result &= Id42(true);
+            result &= ! Id42(false);
+            result &= Id43(true);
+            result &= ! Id43(false);
+            result &= Id44(true);
+            result &= ! Id44(false);
+            result &= Id45(true);
+            result &= ! Id45(false);
+            result &= Id46(true);
+            result &= ! Id46(false);
+            result &= Id47(true);
+            result &= ! Id47(false);
+            result &= Id48(true);
+            result &= ! Id48(false);
+            result &= Id49(true);
+            result &= ! Id49(false);
+
+            result &= Id50(true);
+            result &= ! Id50(false);
+            result &= Id51(true);
+            result &= ! Id51(false);
+            result &= Id52(true);
+            result &= ! Id52(false);
+            result &= Id53(true);
+            result &= ! Id53(false);
+            result &= Id54(true);
+            result &= ! Id54(false);
+            result &= Id55(true);
+            result &= ! Id55(false);
+            result &= Id56(true);
+            result &= ! Id56(false);
+            result &= Id57(true);
+            result &= ! Id57(false);
+            result &= Id58(true);
+            result &= ! Id58(false);
+            result &= Id59(true);
+            result &= ! Id59(false);
+
+            result &= Id60(true);
+            result &= ! Id60(false);
+            result &= Id61(true);
+            result &= ! Id61(false);
+            result &= Id62(true);
+            result &= ! Id62(false);
+            result &= Id63(true);
+            result &= ! Id63(false);
+            result &= Id64(true);
+            result &= ! Id64(false);
+            result &= Id65(true);
+            result &= ! Id65(false);
+            result &= Id66(true);
+            result &= ! Id66(false);
+            result &= Id67(true);
+            result &= ! Id67(false);
+            result &= Id68(true);
+            result &= ! Id68(false);
+            result &= Id69(true);
+            result &= ! Id69(false);
+
+            result &= Id70(true);
+            result &= ! Id70(false);
+            result &= Id71(true);
+            result &= ! Id71(false);
+            result &= Id72(true);
+            result &= ! Id72(false);
+            result &= Id73(true);
+            result &= ! Id73(false);
+            result &= Id74(true);
+            result &= ! Id74(false);
+            result &= Id75(true);
+            result &= ! Id75(false);
+            result &= Id76(true);
+            result &= ! Id76(false);
+            result &= Id77(true);
+            result &= ! Id77(false);
+            result &= Id78(true);
+            result &= ! Id78(false);
+            result &= Id79(true);
+            result &= ! Id79(false);
+
+            result &= Id80(true);
+            result &= ! Id80(false);
+            result &= Id81(true);
+            result &= ! Id81(false);
+            result &= Id82(true);
+            result &= ! Id82(false);
+            result &= Id83(true);
+            result &= ! Id83(false);
+            result &= Id84(true);
+            result &= ! Id84(false);
+            result &= Id85(true);
+            result &= ! Id85(false);
+            result &= Id86(true);
+            result &= ! Id86(false);
+            result &= Id87(true);
+            result &= ! Id87(false);
+            result &= Id88(true);
+            result &= ! Id88(false);
+            result &= Id89(true);
+            result &= ! Id89(false);
+
+            result &= Id90(true);
+            result &= ! Id90(false);
+            result &= Id91(true);
+            result &= ! Id91(false);
+            result &= Id92(true);
+            result &= ! Id92(false);
+            result &= Id93(true);
+            result &= ! Id93(false);
+            result &= Id94(true);
+            result &= ! Id94(false);
+            result &= Id95(true);
+            result &= ! Id95(false);
+            result &= Id96(true);
+            result &= ! Id96(false);
+            result &= Id97(true);
+            result &= ! Id97(false);
+            result &= Id98(true);
+            result &= ! Id98(false);
+            result &= Id99(true);
+            result &= ! Id99(false);
+
+            return result ? 100 : -1;
+        }
+    }
+}
@@ -13,7 +13,7 @@
     <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <RestorePackages>true</RestorePackages>
+
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
   <PropertyGroup>
-    
+    <DebugType>PdbOnly</DebugType>
   </PropertyGroup>
   <ItemGroup>
-    <Compile Include="arrres.il" />
+    <Compile Include="InlineBool.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="$(JitPackagesConfigFileDirectory)minimal\project.json" />
@@ -46,4 +46,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup> 
-</Project>
\ No newline at end of file
+</Project>
index 532d827..f07e027 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
   } 
 
 } 
-
index 9104556..267f3a0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 883cc66..fc3de22 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index dc15a42..46b5319 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index b7654c4..cde59b8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 7150ad3..07891d1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6fa4663..c33f286 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 68d9fa2..b809eb8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 691c04a..8eee5e0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 456a328..efe6b43 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 4ac29f9..fb1ffa7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index ba6a8ab..8420fa9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 8d644e7..35ede55 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f5b91fc..9c16572 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 5b943c8..91ef935 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 427b78c..79831ba 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3ff7f92..6ad46ec 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 830503e..1d685cb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 99a647c..3a4e019 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 89a592e..05e13bd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 75b985c..e9adb47 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f4444d2..807673c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index b535db6..836c206 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 7569049..7888194 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index ef67c2c..8c27a58 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ldtoken.il
 .assembly extern mscorlib { }
index 6d7af39..785f7de 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ldtokena.il
 .assembly extern mscorlib { }
index 2865d2c..5d0464f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ptr_types.il
 .assembly extern mscorlib { }
index 9db6ab3..4756fc6 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 56eab33..d4dea61 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // Test Invalid program (evaluation stack is not empty before localloc call
 
index 68c2898..90e2a0a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // Test Invalid program (evaluation stack is not empty before localloc call
 
index 364e9ec..9c57093 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // Test Invalid program (evaluation stack is not empty before localloc call
 
index 0d792b0..278b95b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // Test zero initialization of localloc
 .assembly extern legacy library mscorlib {}
index c008bf3..9cbe605 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // Test zero initialization of localloc
 .assembly extern legacy library mscorlib {}
index 8fce7f8..9eb685c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 0fa3095..ca1df8c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 95c417e..234880b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6f558fe..764fe30 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index ae64d97..7bd47a0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d6cdd5b..c0e3f96 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 9287b4c..442adbd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index bec8b6c..7af900a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f0531ab..a164dd5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 18250ae..41bd149 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index fc78b9e..0c6249c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 153406d..c43876f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 989eb64..0aafa47 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 8df9658..42e3012 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 9af378e..ac9c919 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f48e58f..f336dfd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 0c8e8c6..989a4df 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index d973b6c..9aec971 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 9c7e469..a3a7a53 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 //simple switch
 
 .assembly extern legacy library mscorlib {}
     .maxstack  8
     IL_0000:  ldc.i4.1
     IL_0001:  call       void Test::DoSwitch(int32)
-    IL_0006:  ret
+    IL_0006:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
   
 } 
-
index 95c06f5..964db3e 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // check inlining
 
 .assembly extern legacy library mscorlib {}
@@ -72,7 +75,9 @@
     .maxstack  8
     IL_0000:  ldc.i4.1
     IL_0001:  call       void Test::DoSwitch(int32)
-    IL_0006:  ret
+    IL_0006:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
   
index c0b281a..056b16e 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // non-empty stack before switch
 
 .assembly extern legacy library mscorlib {}
@@ -26,7 +29,9 @@
     IL_000b:  ldstr      "Test passed"
     IL_0010:  call       void ['mscorlib']System.Console::WriteLine(class System.String)
     IL_0015:  pop
-             ret
+              call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
 } 
index 1eafebc..ef5b6a8 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // add and subtract integers
 
 .assembly extern legacy library mscorlib {}
@@ -75,8 +78,9 @@
     .maxstack  8
     IL_0000:  ldc.i4.1
     IL_0001:  call       void Test::DoSwitch(int32)
-    IL_0006:  ret
+    IL_0006:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
  } 
-
index b4609ad..d128dda 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // checking fallthrough in switch
 
     .maxstack  8
     IL_0000:  ldc.i4.1
     IL_0001:  call       void Test::DoSwitch(int32)
-    IL_0006:  ret
+    IL_0006:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
   
 } 
-
index be3712b..a4d38cb 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // loop in switch
 
 .assembly extern legacy library mscorlib {}
@@ -71,8 +74,9 @@
     .maxstack  8
     IL_0000:  ldc.i4.1
     IL_0001:  call       void Test::DoSwitch(int32)
-    IL_0006:  ret
+    IL_0006:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
 } 
-
index 5e5c25e..f3f249f 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Stack implementation
 
 .assembly extern legacy library mscorlib {}
     IL_001b:  ldloc.0
     IL_001c:  ldc.i4.3
     IL_001d:  call       instance void TestStack::DoSwitch(int32)
-    IL_0022:  ret
+    IL_0022:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
 } 
index 7d78ae5..7bd8a9c 100644 (file)
@@ -1,6 +1,14 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // try --  catch in switch
 
 .assembly extern legacy library mscorlib {}
+.assembly extern System.Console
+{
+  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )
+  .ver 4:0:0:0
+}
 .assembly 'switch6'
 {
   
@@ -46,7 +54,7 @@
       IL_0017:  stloc.2
       IL_0018:  ldstr      "Exception {0} caught"
       IL_001d:  ldloc.2
-      IL_001e:  call       void ['mscorlib']System.Console::WriteLine(class System.String,
+      IL_001e:  call       void [System.Console]System.Console::WriteLine(class System.String,
                                                                       class System.Object)
       IL_0023:  ldc.i4.s   100
       IL_0025:  stloc.1
@@ -80,8 +88,9 @@
     .maxstack  8
     IL_0000:  ldc.i4.1
     IL_0001:  call       void Test::DoSwitch(int32)
-    IL_0006:  ret
+    IL_0006:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
 } 
-
index 9f49afb..37c33fe 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // calling switch in a loop
 
 .assembly extern legacy library mscorlib {}
@@ -84,8 +87,9 @@
     IL_002e:  call       void ['mscorlib']System.Environment::set_ExitCode(int32)
     IL_0033:  ldstr      "Test failed"
     IL_0038:  call       void ['mscorlib']System.Console::WriteLine(class System.String)
-    IL_003d:  ret
+    IL_003d:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
 } 
-
index 0ab2576..5b3119f 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // goto statements in switch
 
 .assembly extern legacy library mscorlib {}
@@ -51,7 +54,9 @@
     .maxstack  8
     IL_0000:  ldc.i4.2
     IL_0001:  call       void Test::DoSwitch(int32)
-    IL_0006:  ret
+    IL_0006:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
 } 
index 35ced9e..9d9a0fd 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 //Nested Switch
 
 .assembly extern legacy library mscorlib {}
@@ -80,8 +83,9 @@
     IL_0001:  ldc.i4.1
     IL_0002:  call       void Test::DoSwitch(int32,
                                              int32)
-    IL_0007:  ret
+    IL_0007:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
  
 } 
-
index 93c3466..a203777 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 02beb3e..dc4cae7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 41c5685..ca8d18f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 2326c41..5da6b1c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index bcfcb10..940842e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 866e20b..b4043d7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index d15dbe3..2a95f8e 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
   } 
 
 } 
-
index 87ce0f5..429a17a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -67,4 +70,3 @@
   } 
 
 } 
-
index 0bbf8a4..f0711fc 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
   } 
 
 } 
-
index 3c7a193..183e2e9 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -67,4 +70,3 @@
   } 
 
 } 
-
index 3fe8367..3cfbd47 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index a1c38c5..fdf00b3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index f5aeaeb..0e26511 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index cebd51f..1119a80 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 176f939..06308ea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index cc39bbe..26abf00 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index b422e93..6c8da89 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index d5e20c5..6040f07 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 09caae7..e15d11f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 2b59f44..dcf8eba 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 4e2bd3d..643d495 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index bfcc3f6..2151ac3 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index eeb6c74..b7db73c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 5e06c69..ec1d8b1 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -39,7 +42,7 @@
                                                                                class System.String)
       IL_0039:  call       void [System.Console]System.Console::WriteLine(class System.String)
       IL_003e:  ldc.i4     0x65
-      IL_0043:  call       void [mscorlib]System.Environment::set_ExitCode(int32)
+      IL_0043:  call       void [mscorlib]System.Environment::Exit(int32)
       IL_0048:  ret
 
       IL_0049:  ldsfld     int32 JitTest.Test::m
@@ -78,4 +81,3 @@
   } 
 
 } 
-
index e4a3ce9..64f4a4c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 880151f..5db6aec 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 23b99e9..783ab3c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 801f2e2..fabec50 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 728081b..fa940e2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 9b0f47e..25575d7 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -361,6 +364,3 @@ ret
   } 
 
 } 
-
-
-
index 08a1ecc..7d7284d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index a47151e..3a6d4e6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index ecb3f34..1ec36f5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 18c67ba..44cf3de 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -28,7 +31,7 @@
       ldstr      "PASSED: 10! == 3628800"
       call       void [System.Console]System.Console::WriteLine(class System.String)
       ldc.i4.s   100
-      call       void [mscorlib]System.Environment::set_ExitCode(int32)
+      call       void [mscorlib]System.Environment::Exit(int32)
       ret
 
 IL_0029:
@@ -38,7 +41,7 @@ IL_0029:
       call       class System.String [mscorlib]System.String::Concat(class System.String, class System.String)
       call       void [System.Console]System.Console::WriteLine(class System.String)
       ldc.i4.s   101
-      call       void [mscorlib]System.Environment::set_ExitCode(int32)
+      call       void [mscorlib]System.Environment::Exit(int32)
       ret
 
 IL_0047:
@@ -77,4 +80,3 @@ IL_0047:
   } 
 
 } 
-
index be4aac0..8827dba 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -209,6 +212,3 @@ ldc.i4 100
   } 
 
 } 
-
-
-
index 2bf0318..c5d228a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 880b1f8..dad77ea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index f845560..090d681 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 92cd648..ca1cedf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .module 'gcctor.exe'
 .assembly extern legacy library mscorlib {}
index 0068d67..11b8e7f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .module 'gcctor.exe'
 .assembly extern legacy library mscorlib {}
index 4c4e873..997f758 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index b5f782b..16755d1 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .module 'fault.exe'
   } 
 
 } 
-
index 25defbb..9a94d14 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 04f7799..35da033 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //"plain", volatile., unaligned. cpblk
 //transient, managed, unmanaged pointer
index c77a55a..8d7fb47 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //transient, managed, unmanaged pointer
 //"plain", volatile., unaligned. initblk
index a9bf46c..3c45865 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ldobj_I.il
 .assembly extern mscorlib { }
index 2daddc0..bf4c9b9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ldobj_I8.il
 .assembly extern mscorlib { }
index a48a882..029c194 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ldobj_R4.il
 .assembly extern mscorlib { }
index e6c0203..513927f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ldobj_R8.il
 .assembly extern mscorlib { }
index 55e08f9..02363fb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ldobj_U2.il
 .assembly extern mscorlib { }
index f3896c1..46c1412 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ldobj_V.il
 .assembly extern mscorlib { }
index 3e5f6db..808d27a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // const.il
 .assembly extern mscorlib { }
index fb70b43..82af6ca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // mdarray.il
 .assembly extern mscorlib { }
index cbecaf4..cfe6b7c 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index a02a0c6..d26b06a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // mdarray.il
 .assembly extern mscorlib { }
index 79221d8..d52b7cc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // refanyval.il
 .assembly extern mscorlib { }
index 6af0c87..1adf896 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // unbox.il
 .assembly extern mscorlib { }
index dc64d80..429642a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 0c051ac..ffe802d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly sizeof32 { }
index 071b190..1b6b606 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly sizeof64 { }
index d13fb61..0970366 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 5ba3ef1..026db64 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // sizeof32.il
 .assembly extern mscorlib { }
index 7b7d1c4..c6e506a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // sizeof64.il
 .assembly extern mscorlib { }
index f90aa63..eb5e33b 100644 (file)
@@ -10,7 +10,7 @@ using Xunit;
 [assembly: OptimizeForBenchmarks]
 [assembly: MeasureInstructionsRetired]
 
-public static class LLoops
+public static class MatInv4
 {
 #if DEBUG
     public const int Iterations = 1;
index 83af3a4..9743ab6 100644 (file)
@@ -12,7 +12,7 @@ using Xunit;
 [assembly: OptimizeForBenchmarks]
 [assembly: MeasureInstructionsRetired]
 
-public static class Adams
+public static class Regula
 {
 #if DEBUG
     public const int Iterations = 1;
index ccafefc..3cba0c1 100644 (file)
@@ -16,6 +16,9 @@
 using Microsoft.Xunit.Performance;
 using System;
 
+[assembly: OptimizeForBenchmarks]
+[assembly: MeasureInstructionsRetired]
+
 namespace SciMark2
 {
     public static class kernel
index b2766b2..1ce6005 100644 (file)
@@ -43,6 +43,9 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 
+[assembly: OptimizeForBenchmarks]
+[assembly: MeasureInstructionsRetired]
+
 namespace Crypto
 {
     public class Support
index f27be42..1951f74 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index bc083bd..7c2cedc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index a8594b4..e7de917 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index cc16198..55a6727 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 6c1ca3b..8649aa9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 925fb8d..f5065d3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly b47392 { }
index fe67377..3c9f661 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -41,4 +44,4 @@ Failed:
                ldc.i4  1
                ret
        }
-}
\ No newline at end of file
+}
index 0321383..26a1ed3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d39873d..99eed95 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a6719a2..941593a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5cdfbda..7b2ac8c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 52b20f9..72821f9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 82fac1f..49cf319 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c3ebd2f..a8004e0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a2cf477..1dffe91 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4cc9353..e60e3fe 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7657ddc..2343697 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0b27f61..5c4637f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 53d5c61..9a4c4ab 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d99425d..e0de05c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 6e327c8..695cfde 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ad9c369..5ae5b4b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cf8b674..7175e9b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 93a3cfd..b5e71dc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a9bfd57..c1c5024 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8dfb2e8..dcdc72f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b0b5012..2a6b6b0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b391924..61aee42 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5b32eb2..9744d4b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 6649ae9..ace5445 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9edda50..e1d1c40 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4654768..33bf5cb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 1123da3..74eb00f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5ce8792..45c75e3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 892e056..b54cb43 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f580a28..49ac709 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ce27066..a0c9388 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 75c5a70..eb36c8a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9859f30..243c6a5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0900b12..c3feacf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 76bed51..7c9caf1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a01c833..049f11e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 27a8ede..db1a517 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d2c2686..f0130a7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 58959e4..125a7ba 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 04d8a6f..8df9107 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 91a9a3c..1aa923a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //-----------------------------------------------------
index 83f9f52..be445ee 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 51efd93..f9f9aea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 73e16dc..14ab054 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5ba8ee2..af04e4f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 950cb71..be3b5f1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //-----------------------------------------------------
 .assembly extern legacy library mscorlib {}
index d89892b..06aa236 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 039643d..b2d9d40 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7977a79..c1ffc43 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 6109bd5..4a2f9b5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4c4c8d0..b00a929 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 51bcdab..67d9fb3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2a73a28..2ceb139 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e79f185..371e3ea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c960026..693a618 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 1b58ed6..057c253 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7528da7..88563b5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a6d46bc..6a3a13b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 823ae42..75142c5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 1864e6f..cd9507e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 541a1b6..4bccff9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e6b8eb1..67f91e4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c6db9f7..2c77b98 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ed92fe3..4072bb0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c5dea0e..8a2a831 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 4dc2e4a..68f0160 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b1f90f1..e2ad116 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 71b58a8..3e83560 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fbe7139..7833b17 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3a6656a..576858f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
        .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 758c1f3..7028e1c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2971797..55ec8b5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 99a849b..83b6a34 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 74a5a1a..d33e1a5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 957724f..29307ca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 25778ba..783842c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 624dc65..15c8028 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 453be6a..e790d95 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 563887b..1f71d66 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 10ba9b8..c429703 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index bc5d96d..5cb75bd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index f34f6ac..2ed2f6c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4ef4f61..18d9ba0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 00423ff..58ea284 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 .module 'gcindir.exe'
 
 .assembly extern System.Console
index 5906760..e42b8a6 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 .module 'gcindir.exe'
 
 .assembly extern System.Console
index ce01a79..4bda056 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 1d54586..49b32b3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 935a1f1..c45cfbe 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9fa802e..b1c83cc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3090bcf..4ccad95 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 76362aa..3937c9c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index bcd9716..7142e6e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 55644df..2e0e8f6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 1ab5270..daede70 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4ff6d45..1697d55 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e44a3eb..89bb08e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c211267..1a6c028 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 12dffeb..b0d20ee 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 40046d8..1b7a9d9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2ce19c0..2548996 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 263398e..de59942 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 752a36a..1888290 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0b715c8..4797a75 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a5450cf..5f21df3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c21471b..aeb4ea5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 434b472..9788e24 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b1c339a..4b59826 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c8d084d..5598221 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //-----------------------------------------------------
index 465c005..227f32e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 70fc2aa..a3bf1d0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d287c63..f24f971 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 3ec58a2..c16f9a7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 355b1e0..1d323dd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index cc37043..ebe01bf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 85b2b7b..35f84e9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index fe9f0a6..bcc2530 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3267248..b1153b3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9fc7ffc..6f618b9 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 83bdd9b..7946bba 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b01ff76..3c97d58 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c82417b..8f2a44c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 75fad12..5a85144 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 371ef5f..dfc306c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index be7d9a5..83770b0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2d651c6..344f0ea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index eb94848..78f3835 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index eb94848..78f3835 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 504a4fa..8e09a78 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -67,4 +70,3 @@
   } 
 
 } 
-
index 02b0e67..e3ddc52 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 806a988..9dcdbb9 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d4ad8fb..179ff12 100644 (file)
@@ -32,6 +32,7 @@
     <NoStandardLib>True</NoStandardLib>
     <Noconfig>True</Noconfig>
     <DefineConstants>$(DefineConstants);CORECLR</DefineConstants>
+    <CLRTestExitCode>0</CLRTestExitCode>
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="b16102.cs" />
index 195bc68..3fae4e1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 66d470e..4076ea3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c993cf6..92bc5dc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index bc26702..30107ba 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 67b7b0c..6134506 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0564563..f459b74 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f8e5f07..9a1eb51 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a4b8708..7481628 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index adc21fa..af9459d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3c5db71..691275d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 1d7c1b8..47ba7ca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b9050d0..680dbe4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2163be5..c416a37 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 86090b9..59eb028 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 269d174..933f569 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7183e5f..566e9ac 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 47948da..b0b56ca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8232d35..ea4c726 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ff0bbea..f3d688a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5e128fc..c383abe 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5d11539..2d6c123 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 29690ed..165b010 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a21c75a..91bddd3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e4aa510..76f785f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 721f82a..4eaf126 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c7707dc..3a7e532 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ab6bc08..6d4171b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 48d321f..5e92b50 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 144d20e..ba28010 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4377602..07de01a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 518c349..594b14c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b8ab399..31937ee 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 25f9e21..92cedc7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7b052b1..f879703 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4279633..6c8e0a0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9173f54..c46773e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 46a146c..2144d57 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2575a3e..ece8f09 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b94839a..d84cb7e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly b08672
 {
index cf91c37..06b3ac6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cc3a3c6..d844806 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e2e1acd..2ed1ad4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 7f0a729..a4d881f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 333899c..ebc183b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 29986d5..3c4d6e3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 6c5b94b..30fdd2d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 10a64a6..048b9d3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f28bfdb..3926665 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ed72a2b..332213a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 1a5ebc3..fda9e2f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e3d0412..8a92a21 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 609615a..9b1ba7f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f87d8cf..0a2b60a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cde667b..ba651bb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cca1b9e..e6325d5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 237ff05..e3bc32d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4568d59..076e05f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d4fcba8..911b66a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8265d1b..464a26d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fea7382..2dfcdb7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fce9908..581878e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0b58de7..7f9d88a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index f127afb..ed013d2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 115f6bb..9c885e6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 20f6165..59402ac 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d6888e6..ed467e7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2c7a1ed..4002935 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ae5e287..01dffff 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7801c56..4b64ba6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index eb33b31..174052f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cdd55da..238dbf4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7d5dddd..717fc4c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 51d83e1..908fe68 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5a35672..081259d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 13513d4..b63b544 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8b15962..af3c7ef 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
  // Max Args = 0 
index d2f795b..141cf54 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fdd3066..ba9cd57 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0418288..81fbfab 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 63f5f34..605781b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0449dcf..caf39ed 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 87380bf..9183d20 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
  // Max Args = 1 
index 32b72ac..cc3b1e6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 6cf4b8d..b51d87e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index bcee4c2..fea4dc9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e242685..309c0da 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cc56870..2f12bce 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c1bcf7a..5e54fc0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 66ff43f..ff7cbf2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b71e2f3..2d9b767 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f3d5ac4..62f32e9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d10a712..4d5a468 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index bb2e017..63a63bd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5fca3ba..3fd282b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b41b955..d051118 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4420823..391542c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2eb4adf..44a1945 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a555b96..53d4574 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2b36c6c..0011f6a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 17f021e..7cc9448 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5e2a529..587a237 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index c3e2f2f..a1b2c56 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3c52ae7..156914a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7b100d6..03a937f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 953f5db..a352565 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c927c7d..b768df4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 89830f4..41da0fe 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8c7b305..4e844e5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f0d55a4..1be5549 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e6023de..6fab5f8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9324a50..5628e14 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ba59568..06f0620 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5b405ae..8148127 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index ec30040..57da94c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 6078821..87147b9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d3633d8..39a3405 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e13aa56..669eff8 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
   } 
 
 } 
-
index b32a758..671489a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0810a48..6630c3d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //
 //
index fbaadaa..2734b64 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d08a238..077b5f7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c448e40..036ce85 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 72799a9..279f23a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index cdc3e50..5880a10 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index eac51aa..162647a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5ab6473..d8b7d59 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 82ff3c9..9d76947 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b9a74f7..cb0906e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2796577..75964c2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index a0c6965..840cb4d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c382c98..dbeed02 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 1edad22..deb4dfa 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index e6a084b..561e675 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9316055..521e191 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 87f72d7..2f26cae 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8909254..6b6f1e7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4bf1e13..0b16dd4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e110050..8669f66 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index bd36604..e55d1d4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3225258..37ccb88 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d73cf88..b174d1c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f95bc5c..ba9d58a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9ec0211..89dfd39 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0addf30..16787a2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3dc3b00..c87418b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index fb52ad2..41efe10 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b9089ee..f6f467f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index bf1f871..faae02d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 23a4be5..cfc9dea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 805dfa8..021e3d9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fd662f6..98efc62 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b56fb41..1d6225d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 6e6abe4..ddb7be4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f61e273..7837e95 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index dd923f2..09805af 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8c18e2e..8181e43 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8a4e459..f141d7c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d3b4b01..a329b12 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 63772be..c50a54a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b1f427f..b68bb5c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a186776..096687d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 186b0c2..fe2af9b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2866005..6148a9e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ce94262..577735e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 15e7d57..a6dad29 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 764be4a..fc1294e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b567a78..6d96191 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index ce48516..c4c6926 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 28a8215..71dacf5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 21441bb..24b8232 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 95b5ff2..22352d7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a72f144..78eec34 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b055831..3a0dcca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 52f36b6..cb24572 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 08fa201..c5413e5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2537018..4756890 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e59ff89..014eae8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index ff4dd26..68c9e73 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2999d54..67fc9e2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 92e718c..278d8c9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 81dcf18..1363e02 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 26d335f..9a88953 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index af164f9..cba3beb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib{}
 .assembly Recurse1 {}
index 62811b8..c17d945 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 91cb0d9..720b077 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 73da605..791cad1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 6427d22..bbf9004 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 0646176..3cc31ce 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 15b241e..f6a5fad 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index aee31b8..4ba9836 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 519cd0e..64793bd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 1fc9784..3a5ff99 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8944b20..5e31eda 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c4a3b3a..9fcc79a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3047848..8e3b375 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d1584a9..c798f8f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a1a4138..b7711af 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 09732c8..4b52882 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cdce3a4..2bd5536 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib{}
 .assembly H{}
index dfd04c1..4e84548 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e953503..7b8f40c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 97edede..c72a8c1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9dd6d8d..001d0cd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 1ad1fce..1feba24 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fbc7a84..08ed537 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57367/b57367.cs b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57367/b57367.cs
deleted file mode 100644 (file)
index 92c148c..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using System.IO;
-using System.Reflection;
-
-public class repro1
-{
-    public static int Main()
-    {
-        Type t = Type.GetType("System.Runtime.InteropServices.Marshal");
-        Type[] ts = { };
-
-        MethodInfo mi = t.GetMethod("ReleaseThreadCache", ts);
-
-        Console.WriteLine("Processing method : " + mi.DeclaringType.Name + "  :  " + mi.Name);
-
-        Console.WriteLine("\nInvoking...");
-
-        mi.Invoke(null, null);
-
-        Console.WriteLine("DONE");
-        return 100;
-    }
-}
diff --git a/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57367/b57367.csproj b/tests/src/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57367/b57367.csproj
deleted file mode 100644 (file)
index 04e52f5..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT  .0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <PropertyGroup>
-    <!-- Set to 'Full' if the Debug? column is marked in the spreadsheet. Leave blank otherwise. -->
-    <DebugType>PdbOnly</DebugType>
-    <NoLogo>True</NoLogo>
-    <NoStandardLib>True</NoStandardLib>
-    <Noconfig>True</Noconfig>
-    <DefineConstants>$(DefineConstants);DESKTOP</DefineConstants>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="b57367.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="$(JitPackagesConfigFileDirectory)extra\project.json" />
-    <None Include="app.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <PropertyGroup>
-    <ProjectJson>$(JitPackagesConfigFileDirectory)extra\project.json</ProjectJson>
-    <ProjectLockJson>$(JitPackagesConfigFileDirectory)extra\project.lock.json</ProjectLockJson>
-  </PropertyGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
-</Project>
index cef4650..07c003c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 1cd6dce..29c41a8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5d0d6d1..2cbcc5b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a377c8a..25c387c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a35a669..2f13b29 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index bcc2507..d102b76 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a3b7228..5dc00e2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d3b9bb4..1a7bf22 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 304d13f..8e646d8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 34ae6a0..fbbb419 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8093991..c87807e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e07686e..6972252 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 81bd0ba..39cd35f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9a3508b..ba0ee55 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 146c156..7afa64a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9679226..bcfb736 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a52eff0..4a2d6dd 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index fe05db3..6bf4c59 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4e88ca5..6463317 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f3fcfa6..99028e5 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 00f31a3..e31a782 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 000c14a..ebb16cf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 55a83d7..a4f2a12 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4f4158e..181c7d8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 6239a61..1a1ade5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cde730a..05d8ddd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index acc6b1a..a9972a7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 97334d6..370f14f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 57dc733..013939e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0150a2c..0566ee2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a6d4801..93f6307 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0b793ec..99a004c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9e9929b..23cce57 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fe19d7c..786a045 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 747a44b..6c0ad61 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f5e59f7..1a3e879 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e84b8fa..3eb2d10 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3647b53..4f71195 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 642bd58..599499a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 53e0b15..731e4f7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3096da1..d271410 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 6ad3c37..dcacccb 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -24,4 +27,4 @@
  add
  ret
 }
-}
\ No newline at end of file
+}
index 3cec667..22dfcd6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b5a6660..86aaf2d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 //Testing inliner on a small func that contains ldvirtftn and calli
 .assembly extern legacy library mscorlib {}
index fe4d3ed..87836ff 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5e6f495..b7e474d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 09353c1..ffff08e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 86b49aa..386c37d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index bea88ed..6ee5c78 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
        IL_0047:  call       void ['mscorlib']System.Environment::set_ExitCode(int32)
        IL_004c:  leave.s    IL_0083 
     }
-    IL_0083:  ret
+    IL_0083:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
 } 
-
index 57d80c3..b30fff3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index baea57a..18b9072 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8cdb2d6..4a9ffca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 0d8ac06..df3ac0f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ctor_merge2.il
 //
index 34a2504..b4bed19 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4903e96..2ac5ac5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c0e7382..4ed0ef2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0fea842..35aeb9d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2e7ce98..4a589fd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cc5ace5..2bf1ef3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8334d60..fb43f75 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2ca386c..c8eeb52 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index b9a2209..68a45ad 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 40e6ea6..946eb26 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b9b1f14..d65204b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8e37fe6..99bb05a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2300340..c71f2f9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 70479f7..ea2d8d7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d460eaa..1523df9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d9d465f..f3239a7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7fa8799..b94f512 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 958114f..9f51672 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c1fad4c..1a5d412 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9326e70..b27e21e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3af0bb3..594ab87 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index b07d93e..2b7f183 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index ffe9168..529ab4e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b8adfba..08e1a8f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 3da0c2c..4256666 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fc03b9b..e336422 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d46beaf..2179921 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 4748cc4..fdda451 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 766cb8d..0d2bcab 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index e39213b..7127d53 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9a925ba..b305969 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ab50e18..6ab72b2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 2b85774..256e1ff 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 270ace3..f9e0651 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ba8b66a..08b0eb7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d05c11e..450c749 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 281bfe3..0336cf0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0f0ae58..1b4ea8c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ec1060c..a74eed9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3cc4ba1..a57409e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7e0de5b..08894db 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 582a8c5..dfd225d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 780d6af..571eb5c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 0e69d6b..c1bf034 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 16a3ec6..6286eeb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 19b1c46..7f4ed29 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a0a69e6..ad67ce6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 32527ac..e4e68ea 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 85157a1..f3ba9a4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index aa4a0ce..fdbf815 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -35,4 +38,3 @@
   } 
 
 } 
-
index 95eda03..6d3682e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index a7bc848..b1e19cf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 488969b..bba11c3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5dfcf85..9cae8b1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index e436c08..2f413c6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2395af0..a2d5e35 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 22809ac..aac901e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index dc58775..b117522 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 88e48b5..2b2d378 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 94545c9..f1c1f9f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9d9777b..6ed208c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index e116526..1ed7fa0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f753a25..3173df4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 82ac021..3b09984 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4a65d36..963c374 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8dce34c..7350dca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 315956c..98e9a56 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index b572ec1..16365d1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 801d539..48ae128 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 6a8b82c..fed1ebf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 4ce17a9..ad04dc9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 1320023..9a7f1dc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 660e580..afd8fce 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7d09cd5..cba1b3d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9833afc..98a71b6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ee9a28f..069ccdb 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 6c9295a..266478b 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index e0c5a43..998a9a8 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 850c382..bd6e576 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4963489..9d62632 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 243f798..0cb1bce 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index a802c06..127d0f6 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index f80bc00..5e5d966 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly simple {}
 .assembly extern mscorlib { }
index 2f7715f..2d55161 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 408c5d2..d0e784e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly loop {}
index eb8bf4e..6583aef 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d2b3d25..806bb85 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 027c7cc..4304466 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d23138c..08c6680 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 3c02e25..1c2e5b0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index cc8b06e..cdb16f3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d4c272d..082eba7 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 0296cae..a9ea63b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 879107e..d2d32f1 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 9065748..f21126d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index dea4a90..aa84189 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 489f426..8d59238 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 6d40f24..c5eb078 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
   IL_0018:  ldc.i4 100
   IL_0019:  ret
 } 
-
-
-
index 0d55911..71d89c8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 19fd6fc..47b4a1c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d102243..cf9cfa3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 7c03e7f..d5d241f 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index f400461..160fe39 100644 (file)
@@ -1,4 +1,12 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
+.assembly extern System.Console
+{
+  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )
+  .ver 4:0:0:0
+}
 .assembly extern mscorlib {}
 .assembly 'lib-219037'
 {
@@ -14,7 +22,7 @@
     // Code size       23 (0x17)
     .maxstack  100
     IL_0000:  ldstr      ".cctor"
-    IL_0005:  call       void [mscorlib]System.Console::WriteLine(string)
+    IL_0005:  call       void [System.Console]System.Console::WriteLine(string)
     IL_000a:  ldsfld     int32 ['lib-219037']Util::count
     IL_000f:  ldc.i4.1
     IL_0010:  add
index ece3dec..90c4fa0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly ILGEN_0x5c19e96e {}
 .assembly extern mscorlib{auto}
index e72f238..6eefb7b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 0358ef0..4dc71e4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly ILGEN_0xb6f84258 {}
 .assembly extern mscorlib{auto}
index 2d7d9e7..9d6abc4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index fa3bee0..84e1aa1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5af353e..90d16a2 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 .assembly extern legacy library mscorlib {}
 .assembly  testtls
 {
@@ -17,5 +20,3 @@
                ret
        }
 }
-
-
index b0e3c69..6e3c276 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d1db740..7505a64 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index a26e98f..c47d8b5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index a85c9fe..0e454df 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 76c1ca5..925ce20 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index b7e2679..c36d655 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5b673de..e91a939 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -78,7 +81,9 @@
     IL_0036:  ldc.i4.s   10
     IL_0038:  blt.s      IL_000a
 
-    IL_003a:  ret
+    IL_003a:  call       int32 ['mscorlib']System.Environment::get_ExitCode()
+              call       void ['mscorlib']System.Environment::Exit(int32)
+              ret
   } 
 
   .method public hidebysig instance void 
index cc1d9cf..9a2a401 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib{}
 .assembly b13452{}
index 6fdb5ca..e081db9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2309212..a5d5d6f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 67d3ebb..ee9296d 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 .assembly extern mscorlib {}
 .assembly extern System {}
 .assembly bbHndIndex {}
index fabd174..e0b31f7 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 .assembly extern mscorlib {}
 .assembly extern System {}
 .assembly bbFlags {}
index 3c4f92b..859ccda 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 9ba2117..f936cf6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly loop {}
 .assembly extern mscorlib { }
index 77ec87b..9c38968 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ef981a6..ff9b192 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 9f3bbf3..c958909 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 4be24d8..c8753c9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 65bcf62..32a1ba8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e0aa9bb..c905c3f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d9fe041..2ca6b99 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index f187b1f..7c13dc9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // ASURT     149071
 // VSWHIDBEY 91942
index 4a90d22..cd292c2 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 5c30ca6..454f1be 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib { }
index 84967d8..34ca4d4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d170aeb..3161e67 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 302bfa2..51e4116 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly Test1 {}
 
index 4c388f4..22cdcfb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 380ac1e..2d37b31 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 991f837..397258c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { auto }
 .assembly calldef { }
index 658920f..1703036 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 36254f4..0d4481e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 5781ae9..9291c19 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index cc7c584..6facf13 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
   } 
 
 } 
-
-
-
index 7f5d2ba..66bbaf8 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -480,6 +483,3 @@ starg 0
   } 
 
 } 
-
-
-
index 43c1cf1..f5ece5e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 192106c..dce3d69 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index ed697f8..9386a2f 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index b6fa4e6..8ba2de9 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 17651e6..35799d2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index fa8741a..20dca34 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index acf6734..ccf7e58 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 8330190..dfc326d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib { }
index 4cf42db..b4f2b56 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib { }
index 181a033..ed12ea8 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -37,4 +40,3 @@
   } 
 
 } 
-
index e88b583..5b5f99d 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
     .set instance void RefX1`1::set_Val(class [mscorlib]System.IComparable)
   } 
 } 
-
-
-
index b506dfd..d6ccad2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 7d849b3..c5f9e3e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 2d0a304..8a68ffa 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 7700457..e71317e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 3774c79..7c41594 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index c1757cb..61c1896 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index c252b72..ea35a50 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index c1d13f3..3d9f880 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 200b173..b09224e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib { }
index fe004bb..783a689 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 00388fb..5b951c7 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
  
   } 
 
 } 
-
-
-
index aefcf7d..36cd9ee 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 73c3f9e..ce80efc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index fa07e6a..8e44e1a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 2a8acfc..04882d3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 76a0458..ba6528a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index cbbd8fc..d282549 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 5e55860..5b4ec05 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 60e6fc6..c6b7d01 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index e6372a4..756ccc0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib
 {
index ab25c80..38ffadf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 3f38631..3d8fe92 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 2b3953f..3ecfde4 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib
 {
index 12d0f1a..cf4695c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 5d7b6da..b5bc2ed 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .module extern CSharpPart.netmodule
 
 .assembly extern CSharpPart {}
 
 
-.assembly ILPart {}
+.assembly ilpart {}
 
 
-.module ILPart.dll
+.module ilpart.dll
 .imagebase 0x00400000
 .file alignment 0x00000200
 .stackreserve 0x00100000
     }
 
 }
-
index 9d034cd..ea136eb 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -66,6 +69,3 @@
   } 
 
 } 
-
-
-
index 5baa8f9..f2f3292 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly Conv_ovf_u4_Bug {}
 
@@ -73,4 +76,3 @@ EXIT:
 ldloc result
 ret
 }
-
index 9bfe429..ed67fec 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // This il tests importation of unbox[_any] when there are pending evaluations on the stack that side-effect
 // the arguments of the unbox.
index b3f7894..a6b3bb5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 
index 1bf95ef..8254012 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -83,4 +86,3 @@ FAIL:
     }
 
 }
-
index 870e4bc..8bf5d7b 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 042aa48..b2893ab 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 2122449..9186550 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4cf5963..5b73e0f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index bb139f7..d411e89 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 7dbe2bc..3f5203a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 2b1242d..193b05e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 5dcf9c4..d120316 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f0514f7..2eeac5b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern legacy library mscorlib {}
index 1bc3068..833ded6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e194e45..1f23def 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 229fae7..e51bf01 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e2d8294..ce7ca94 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e84665d..4a11aa4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 538e113..878ad64 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fea4cd8..2167008 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index b425a0a..ae91c09 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index d157bc1..e7df876 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index d8f9dac..0127c6b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 6aa74da..fea7cb3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ec45bcb..1dc2292 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8f2c8e1..e9644dd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index ec67425..cd4e8d5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fcc6a87..6f8a74f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // :)
 
index 953b1db..97e7da9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 64b015d..aaa496a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index f381361..9e7c174 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 42f1113..f5a4ec1 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 19381b0..9a78823 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 6415f06..99f8e0a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f09fb15..eebbafa 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8b09205..2be19ba 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index f81758b..7ba2d2a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4763777..e15d244 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 1f41115..904ac21 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index fadb05f..4bda646 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8901945..81bdfcb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 54b53ae..27599cc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4a65d36..963c374 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 25eb284..89995bd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e408f1e..aa4c9f2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index c76a0b7..e28fbc0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 865a94c..4ba843e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 5f6f7e8..6f254ca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 9e3f5ae..611ac8e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index e2256e5..af0741e 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
   } 
 
 } 
-
-
-
index 83c5e7e..fddf631 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -90,6 +93,3 @@
   } 
 
 } 
-
-
-
index 9f95f7b..2a46108 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
   } 
 
 } 
-
-
-
index f690e14..a375bc4 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
   } 
 
 } 
-
-
-
index 9d53607..a4b7e89 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly ILGEN_0xc766623d {}
 .assembly extern mscorlib{auto}
index 39afa34..b78c7b5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 984659d..e5e33a2 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 1d1da53..8f7e3a6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index cc94c7d..f8f3202 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
   } 
 
 } 
-
-
-
-
index 1ae8d96..6c1a368 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 9b96a76..0b0c20e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib{}
 .assembly delegate26{}
index fae1e70..adaaacc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib{}
 .assembly base017{}
index fb3cc12..53670b7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib{}
 .assembly field017{}
index 3560a13..edc05f9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // endfinally after finally
 // expect throw System.InvalidProgramException
index 63a09ae..c0522fb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib{}
 .assembly test_08{}
index 3de5d3e..ab03e5a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib{}
 .assembly test_17{}
index 3e661cd..5341d0e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index a2e183b..3373630 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index f40ac3d..a372456 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index f5b5e7a..c6bac52 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib{}
 .assembly attrib014_2{}
index 9ceb9a4..0b4c740 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
   } 
 
 } 
-
-
-
index 87aad44..38a98a0 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -3249,7 +3252,3 @@ call      void [System.Console]System.Console::WriteLine(string)
   } 
 
 } 
-
-
-
-
index c6ca609..45954cc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index eabb877..bffa738 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 2f9a87a..f0aa02b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 4467077..db71c0c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index ff51ea3..a62d88f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib{}
 .assembly jumper{}
index 330f581..51b1061 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index eabb877..bffa738 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 458983b..6d6b414 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 3b0ac64..40a8acf 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -32,4 +35,4 @@ IL_1d:        ldstr      "Fail"
        ldc.i4 1
        ret
     }
-  }
\ No newline at end of file
+  }
index a18b584..a092c0f 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
@@ -41,4 +44,4 @@
     IL_0015:  ldc.i4 1 ret
     IL_0016:  ldc.i4 100 ret
   }
-}
\ No newline at end of file
+}
index 034b67d..f022f94 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib{}
 .assembly test{}
index d9e5e03..977ce83 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index cfe1c09..54bdc3c 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
     IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
     IL_0006:  ret
   } 
-}
\ No newline at end of file
+}
index 556dca7..e0034e7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 7056f31..2f12937 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 5505a06..9fd6845 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8b05162..70b4c2f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 3cd119e..c611fe3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index af97de2..f8771f4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 1fdb169..121fd5a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 62e74fc..ac16302 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index d19e0a0..65836c5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index e25e340..2871081 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index c159546..2005acf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 808b389..fac2e74 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 54a9900..caa7702 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3332bbb..583fb40 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index a2c0c32..c858386 100644 (file)
@@ -17,7 +17,7 @@ namespace ClassLibrary
 
     public class test
     {
-        const float EPS = 1E-9F;
+        const float EPS = Single.Epsilon;
         const int steps = 100;
         const float INF = Single.PositiveInfinity;
 
@@ -259,8 +259,9 @@ namespace ClassLibrary
             float r;
             FindCircle(points, out O, out r);
 
-            float expRes = 7.565624E7F;
-            if (Math.Abs(r - expRes) > EPS)
+            float expRes = 75656240.0F;
+            float ulp    =        8.0F;
+            if (Math.Abs(r - expRes) <= ulp)
                 return 100;
             return 0;
         }
index 97fe80c..d1785af 100644 (file)
@@ -57,6 +57,79 @@ internal partial class VectorTest
         return F1(u);
     }
 
+    [MethodImplAttribute(MethodImplOptions.NoInlining)]
+    public static Vector<T> VectorOne<T>() where T: struct
+    {
+        return Vector<T>.One;
+    }
+
+    [MethodImplAttribute(MethodImplOptions.NoInlining)]
+    public static Vector<T> VectorPlusOne<T>(Vector<T> v1) where T : struct
+    {
+        Vector<T> v2 = VectorOne<T>();
+        return v1 + v2;
+    }
+
+    public static int VectorTReturnTest()
+    {
+        Vector<float> v1 = new Vector<float>(2.0f);
+        Vector<float> result1 = VectorPlusOne<float>(v1);
+        for (int i=0; i < Vector<float>.Count; ++i)
+        {
+            if (!CheckValue<float>(result1[i], 3.0f))
+            {
+                Console.WriteLine("Expected result is " + 3.0f);
+                Console.WriteLine("Instead got " + result1[i]);
+                Console.WriteLine("FAILED");
+                return Fail;
+            }
+        }
+
+        Vector<int> v2 = new Vector<int>(5);
+        Vector<int> result2 = VectorPlusOne<int>(v2);
+        for (int i = 0; i < Vector<int>.Count; ++i)
+        {
+            if (!CheckValue<int>(result2[i], 6))
+            {
+                Console.WriteLine("Expected result is " + 6);
+                Console.WriteLine("Instead got " + result2[i]);
+                Console.WriteLine("FAILED");
+                return Fail;
+            }
+        }
+
+        return Pass;
+    }
+
+    [MethodImplAttribute(MethodImplOptions.NoInlining)]
+    public static Vector3 GetVector3One()
+    {
+        return new Vector3(1.0f);
+    }
+
+    [MethodImplAttribute(MethodImplOptions.NoInlining)]
+    public static Vector3 GetVector3PlusOne(Vector3 v1)
+    {
+        Vector3 v2 = GetVector3One();
+        return v1 + v2;
+    }
+
+    public static int Vector3ReturnTest()
+    {
+        Vector3 v1 = new Vector3(3.0f, 4.0f, 5.0f);
+        Vector3 result = GetVector3PlusOne(v1);
+
+        if (!CheckValue<float>(result.X, 4.0f) ||
+            !CheckValue<float>(result.Y, 5.0f) ||
+            !CheckValue<float>(result.Z, 6.0f))
+        {
+            Console.WriteLine("Vector3ReturnTest did not return expected value");
+            return Fail;
+        }
+
+        return Pass;
+    }
+
     public static int Main()
     {
         init();
@@ -69,6 +142,19 @@ internal partial class VectorTest
             Console.WriteLine("FAILED");
             return Fail;
         }
+
+        if (VectorTReturnTest() != Pass)
+        {
+            Console.WriteLine("FAILED");
+            return Fail;
+        }
+
+        if (Vector3ReturnTest() != Pass)
+        {
+            Console.WriteLine("FAILED");
+            return Fail;
+        }
+
         Console.WriteLine("PASSED");
         return Pass;
     }
index 15af200..c90f95d 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 859ec0c..49a5d43 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 6330844..2a9d3a9 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 56e010a..16ab6c6 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index dd791cd..629ec0e 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 40916f8..bc9e4fd 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 19441c1..c0d473a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 3d42306..1322034 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 84a5121..6586816 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
index 7568b12..3871c37 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern System.Console
   } 
 
 } 
-
-
-
index b93c28c..251671c 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
   } 
 
 } 
-
-
-
index 2fc24fe..90f513f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
 .assembly extern mscorlib
 {
 }
-.assembly Common
+.assembly common
 {
   .hash algorithm 0x00008004
   .ver 0:0:0:0
 }
-.module Common.dll
+.module common.dll
 .custom instance void [mscorlib]System.Security.UnverifiableCodeAttribute::.ctor() = ( 01 00 00 00 ) 
 .imagebase 0x00400000
 .subsystem 0x00000003
index 0a1085f..299c111 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Test localloc with filter + handler construct.
 
 .assembly extern System.Console
index 9d00874..366047b 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Test localloc with filter + handler construct.
 
 .assembly extern System.Console
index 6438a15..8da965d 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Test localloc with filter + handler construct.
 
 .assembly extern System.Console
index 17336bc..12cd840 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
   } 
 
 } 
-
-
-
index 9587ab1..4e2a7bc 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
   } 
 
 } 
-
-
-
index c6df9b7..92c2a62 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
   } 
 
 } 
-
-
-
index d944980..0a8f476 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 5a76161..489903b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index ae4b738..6cdb23d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 9a88323..f5c0b13 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index ca57a72..2cd4201 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 5ff584c..6a04f13 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index dbf410f..381d96d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 48090af..c35b8ca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index caca399..b82d284 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 156f4fd..ea490f0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index de2dd90..247f642 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 55231f8..39912af 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 1b822e2..5b83a09 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index b3ffba6..d0a18cc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 194f11c..4c5f2bc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 79b9aa1..fbf3b74 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Unwind from fault block
 
 .assembly extern System.Console
index 9036000..f94cf74 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Unwind from fault block
 
 .assembly extern System.Console
index c99c73e..157aec7 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Unwind from fault block
 
 .assembly extern System.Console
index 33a0c47..453e178 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Unwind from Filter block.
 
 .assembly extern System.Console
index 949692e..d1f87e4 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Unwind from Filter block.
 
 .assembly extern System.Console
index 2a48062..44e5d6c 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Unwind from Filter block.
 
 .assembly extern System.Console
index 9eeb0bc..ffeaeda 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Unwind from Handler block.
 
 .assembly extern System.Console
index 718f5e1..179a45c 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Unwind from Handler block.
 
 .assembly extern System.Console
index 0f9b158..b96499a 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Unwind from Handler block.
 
 .assembly extern System.Console
index c3f6b4e..797cd65 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Test Invalid program (evaluation stack is not empty before localloc call
 
 .assembly extern System.Console
@@ -85,6 +88,3 @@
   } 
 
 } 
-
-
-
index ee14687..31c5e74 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Test Invalid program (evaluation stack is not empty before localloc call
 
 .assembly extern System.Console
@@ -82,6 +85,3 @@
   } 
 
 } 
-
-
-
index 1e32916..a3166e3 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 // Test Invalid program (evaluation stack is not empty before localloc call
 
 .assembly extern System.Console
@@ -82,6 +85,3 @@
   } 
 
 } 
-
-
-
index 2557c61..802bd65 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 074e403..a87c66f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 4ae815d..97abb96 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // Metadata version: v2.0.50727
 .assembly extern mscorlib
index 13459e9..eeb8e28 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .assembly MCCTest {}
index ce71d2b..6367cd0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index dd8a0cf..c799277 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index c2c5cfd..fd10ccf 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 6f87a2d..adc5ff7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index b0d2eb6..029e583 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 1b19ac7..8fc2597 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index b2020aa..b566612 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 4fc4cab..2ab1864 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index c72247c..85dbc30 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index d01f4c8..4de92bd 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index ff558f2..5d4b1e6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 2fcb794..d587e42 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 0978f03..30ca145 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 777a4f8..5b1095f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 387f94e..1f0c54b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 56ad491..5b9d719 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index f33b50f..9c08445 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 425ba92..2ea1e22 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 065e6c1..8defdf3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 5311afc..c05b651 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 379f402..7c25997 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 0a903c7..0dac24a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index ea1099d..56dff9f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index a93302e..0302d94 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 09eaffc..98401b7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 22b7ba8..c6cfa8b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 8b6d430..bd64dec 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index eea26e0..d225870 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index fe21312..d9c5b58 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index ff77a32..c7a6e02 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index c62b350..e0d9ee7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 8981ee5..ba02c88 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 992d28f..6997831 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index fb2556d..545c393 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 7baac9a..1127104 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .assembly MCCTest {}
index 8ac7610..ce9f4fc 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index a7c4d73..e159077 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 95dcd97..32a4ceb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 171bcb9..f6fb21a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 77327ec..932af41 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index d5ff798..4efced8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 738cd5b..1627276 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index b687a80..418e147 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 2079273..c930632 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 21ea524..d7e6eba 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 0575ad2..dfb17e3 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index d3a5dec..69bb16f 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 9ba23c4..679188a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index e872d9e..efa285c 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 390981c..0f551fa 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index e1c9a31..5044f57 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index d2a02fb..e5640d5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 0000181..cb67804 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 524db63..4637284 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index 30fe6b2..dc8cc2d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib {}
index de3c22e..ab2e9a7 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index a8ad050..60e8fca 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index b6618cc..55c9444 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index b516f89..63f6409 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 646d230..7f43cce 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 8303cfc..7309980 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern legacy library mscorlib {}
 .assembly extern System.Console
index 89dd830..37793c5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // This test is checking to see if the AV in the if is hoisted out of the loop
 // The code in the if should not hit.  Thus there should be no AV
index 42d5fc4..fd39711 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 6acffcf..6e31c2e 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 15fd026..8309f01 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 36e425e..8e238db 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 463397f..b8a6d9b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index bb92df8..f5c5a44 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 752285c..df1dee4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index fc5276d..2f9b12a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index d79eb13..6f041bb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 552cb07..30d7342 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 837b2a7..11f69cb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 44b65a6..c1792c8 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly ILGEN_0x3243f637 {}
 .assembly extern mscorlib{auto}
index c40bcd8..26dda36 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib
 {
index b54b2da..befd225 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 0e554e8..db9e495 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 96ccd6e..6797daa 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
@@ -85,6 +88,3 @@
   } 
 
 } 
-
-
-
index 3bec6d8..f8b71d4 100644 (file)
@@ -26,6 +26,7 @@
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
   <PropertyGroup>
+    <CLRTestExitCode>0</CLRTestExitCode>
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="test1.il" />
diff --git a/tests/src/JIT/jit64/regress/vsw/102754/test2.ilproj b/tests/src/JIT/jit64/regress/vsw/102754/test2.ilproj
deleted file mode 100644 (file)
index 3bec6d8..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyName>$(MSBuildProjectName)</AssemblyName>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT  .0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <PropertyGroup>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="test1.il" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup> 
-</Project>
index 8f63456..f7fd37b 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 32a9dcf..ca2bd36 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // The first use of a field in a catch was causing an exception in the CLR because
 // one of the argument registers for JitHelper::WriteBarrier was not being
index e37b3e8..b40c265 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // These are just sanity checks for the CorInfoInlineRestrictions to make sure that nothing in the jit breaks
 // when we are prevented from inlining something.
index 378799f..0820de0 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib {}
 .assembly test {}
index 5e5b6ca..ad06327 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 9f89f05..9d908a4 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 2a8f00f..49cab4d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index a413f86..e3b5a22 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 8e2f1d7..3c62308 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index ba53b60..2f30725 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index 4b9780c..b91a840 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
         ret
   }
 } 
-
-
-
index c5f400e..624481d 100644 (file)
@@ -1,3 +1,6 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 8330190..dfc326d 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib { }
index 4cf42db..b4f2b56 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 .assembly extern mscorlib { }
index a4db47f..9a1e186 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern mscorlib { }
 .assembly extern System.Console
index beddea6..3431c5a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 827397a..9e422bb 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // leave into fault from catch
 // expect throw System.InvalidProgramException
index 435c29a..c424349 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index bda467d..043be21 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_BB_COUNT      2000
 // New Basic Block BB2001 created.
index cb922b8..67f4294 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_CODE_SIZE    60000
 // Code size       60001 (0xea61)
index bac011f..651fe90 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_INSTR_COUNT  20000
 // OPTIONS: opts.MinOpts() == true
index 4a35a83..2e4f984 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_LV_NUM_COUNT  2000
 // V2000 (loc2000)      int
index 4dce927..b04089a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_LV_REF_COUNT  8000
 // New refCnts for V00: refCnt = 8001
index 3f4b82f..f246aec 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 .assembly extern System.Console
 {
index 93a5b79..ae4ef5d 100644 (file)
@@ -32,7 +32,6 @@
     <NoStandardLib>True</NoStandardLib>
     <Noconfig>True</Noconfig>
     <DefineConstants>$(DefineConstants);CORECLR</DefineConstants>
-    <JitOptimizationSensitive>true</JitOptimizationSensitive>
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="LotsOfInlines.cs" />
index c20aa5f..e32ab59 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_BB_COUNT      2000
 // New Basic Block BB2000 created.
index ab39a6e..04f5b02 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_BB_COUNT      2000
 // New Basic Block BB2001 created.
index 94be5d4..15f7d27 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_CODE_SIZE    60000
 // OPTIONS: opts.MinOpts() == false
index 0aae11b..48be4c9 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_CODE_SIZE    60000
 // OPTIONS: opts.MinOpts() == true
index 2459ffa..aec08d6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_INSTR_COUNT  20000
 // OPTIONS: opts.MinOpts() == false
index c6c0daa..ce13ff5 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_INSTR_COUNT  20000
 // OPTIONS: opts.MinOpts() == true
index e19c1e6..117e43a 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_LV_NUM_COUNT  2000
 // OPTIONS: opts.MinOpts() == false
index 248e186..a8d2726 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_LV_NUM_COUNT  2000
 // OPTIONS: opts.MinOpts() == true
index 390a2fe..96cd4ba 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_LV_REF_COUNT  8000
 // New refCnts for V00: refCnt = 8000
index 9b3fba2..10dc239 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 // DEFAULT_MIN_OPTS_LV_REF_COUNT  8000
 // New refCnts for V00: refCnt = 8001
index 38214c6..e295a99 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index 237f226..686fad6 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 // Metadata version: v2.0.50727
index 3614e32..487a009 100644 (file)
@@ -1,5 +1,6 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
 
 
 
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
index a2e84dc..fc8ccb4 100644 (file)
   },
   "frameworks": {
     "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
   }
 }
diff --git a/tests/src/baseservices/multidimmarray/app.config b/tests/src/baseservices/multidimmarray/app.config
new file mode 100644 (file)
index 0000000..62803f5
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <runtime>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.0.20.0" newVersion="4.0.20.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="System.Text.Encoding" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
+      </dependentAssembly>
+    </assemblyBinding>
+  </runtime>
+</configuration>
\ No newline at end of file
diff --git a/tests/src/baseservices/multidimmarray/enum.cs b/tests/src/baseservices/multidimmarray/enum.cs
new file mode 100644 (file)
index 0000000..a344a54
--- /dev/null
@@ -0,0 +1,26 @@
+using System;
+
+public class Test
+{
+    enum State : sbyte { OK = 0, BUG = -1 }
+    static int Main(string[] args)
+    {
+        TestLibrary.TestFramework.BeginTestCase("Enum MultidimmArray");
+        var s = new State[1, 1];
+        s[0, 0] = State.BUG;
+        State a = s[0, 0];
+        if(a == s[0, 0])
+        {
+            TestLibrary.TestFramework.EndTestCase();
+            TestLibrary.TestFramework.LogInformation("PASS");
+            return 100;
+        }
+        else
+        {
+            TestLibrary.TestFramework.EndTestCase();
+            TestLibrary.TestFramework.LogInformation("FAIL");
+            return 0;
+        }
+    }
+
+}
@@ -6,6 +6,7 @@
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+    <OutputType>Library</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
+    <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+    <CLRTestKind>SharedLibrary</CLRTestKind>
     <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>InterlockedAddInt.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>/loops:100 /addVal:-214748</CLRTestExecutionArguments>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
@@ -30,6 +30,7 @@
   </ItemGroup>
   <ItemGroup>
     <!-- Add Compile Object Here -->
+    <Compile Include="enum.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="app.config" />
@@ -38,6 +39,9 @@
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+  </ItemGroup>
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
diff --git a/tests/src/baseservices/multidimmarray/project.json b/tests/src/baseservices/multidimmarray/project.json
new file mode 100644 (file)
index 0000000..fc8ccb4
--- /dev/null
@@ -0,0 +1,44 @@
+{
+  "dependencies": {
+    "Microsoft.NETCore.Platforms": "1.0.1-rc2-23816",
+    "System.Collections": "4.0.10",
+    "System.Collections.NonGeneric": "4.0.1-rc2-23816",
+    "System.Collections.Specialized": "4.0.1-rc2-23816",
+    "System.ComponentModel": "4.0.1-rc2-23816",
+    "System.Console": "4.0.0-rc2-23816",
+    "System.Diagnostics.Process": "4.1.0-rc2-23816",
+    "System.Globalization": "4.0.10",
+    "System.Globalization.Calendars": "4.0.0",
+    "System.IO": "4.0.10",
+    "System.IO.FileSystem": "4.0.0",
+    "System.IO.FileSystem.Primitives": "4.0.0",
+    "System.Linq": "4.0.1-rc2-23816",
+    "System.Linq.Queryable": "4.0.1-rc2-23816",
+    "System.Reflection": "4.0.10",
+    "System.Reflection.Primitives": "4.0.0",
+    "System.Runtime": "4.1.0-rc2-23816",
+    "System.Runtime.Extensions": "4.0.10",
+    "System.Runtime.Handles": "4.0.0",
+    "System.Runtime.InteropServices": "4.1.0-rc2-23816",
+    "System.Runtime.Loader": "4.0.0-rc2-23816",
+    "System.Text.Encoding": "4.0.10",
+    "System.Threading": "4.0.10",
+    "System.Threading.Thread": "4.0.0-rc2-23816",
+    "System.Xml.ReaderWriter": "4.0.11-rc2-23816",
+    "System.Xml.XDocument": "4.0.11-rc2-23816",
+    "System.Xml.XmlDocument": "4.0.1-rc2-23816",
+    "System.Xml.XmlSerializer": "4.0.11-rc2-23816"
+  },
+  "frameworks": {
+    "dnxcore50": {}
+  },
+  "runtimes": {
+    "win7-x86": {},
+    "win7-x64": {},
+    "ubuntu.14.04-x64": {},
+    "osx.10.10-x64": {},
+    "centos.7-x64": {},
+    "rhel.7-x64": {},
+    "debian.8.2-x64": {}
+  }
+}
index e2305bb..fec0206 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>/start:2147483647 /add:100</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/interlocked/add/CheckAddInt_2.csproj b/tests/src/baseservices/threading/interlocked/add/CheckAddInt_2.csproj
deleted file mode 100644 (file)
index 99d9fb3..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>CheckAddInt.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>/start:2147483647 /add:100</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 5f5b20d..b7ebc2e 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>/start:922337203685477 /add:100</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/interlocked/add/CheckAddLong_2.csproj b/tests/src/baseservices/threading/interlocked/add/CheckAddLong_2.csproj
deleted file mode 100644 (file)
index c98c7c1..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>CheckAddLong.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>/start:922337203685477 /add:100</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 176f0ab..2b3eb18 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>/loops:100 /addVal:-214748</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
index 4f834a3..de1ddd8 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>/loops:100 /addVal:100</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/interlocked/add/InterlockedAddLong_3.csproj b/tests/src/baseservices/threading/interlocked/add/InterlockedAddLong_3.csproj
deleted file mode 100644 (file)
index 2ef6276..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>InterlockedAddLong.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>/loops:100 /addVal:100</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 313b822..123673d 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>/loops:100 /addVar:-922337203685477</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/interlocked/compareexchange/CompareExchangeLong_4.csproj b/tests/src/baseservices/threading/interlocked/compareexchange/CompareExchangeLong_4.csproj
deleted file mode 100644 (file)
index 091cb3b..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>CompareExchangeLong.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>/loops:100 /addVar:-922337203685477</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 055869d..df5e174 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>null</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/interlocked/compareexchange/CompareExchangeTClass_2.csproj b/tests/src/baseservices/threading/interlocked/compareexchange/CompareExchangeTClass_2.csproj
deleted file mode 100644 (file)
index 33c5fd7..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>CompareExchangeTClass.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>null</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 2194fc3..b2a5d33 100644 (file)
@@ -15,8 +15,8 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
     <CLRTestPriority>1</CLRTestPriority>
+    <CLRTestExecutionArguments>empty "This is a long string that I am trying to test to be sure that the Exchange can handle this long of a string.  If it can't then that's bad and we will have to fix it."</CLRTestExecutionArguments>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/interlocked/exchange/ExchangeTString_3.csproj b/tests/src/baseservices/threading/interlocked/exchange/ExchangeTString_3.csproj
deleted file mode 100644 (file)
index 4f247ba..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ExchangeTString.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>empty "This is a long string that I am trying to test to be sure that the Exchange can handle this long of a string.  If it can't then that's bad and we will have to fix it."</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
diff --git a/tests/src/baseservices/threading/multiinstance/multiinstance.cs b/tests/src/baseservices/threading/multiinstance/multiinstance.cs
deleted file mode 100644 (file)
index 0238fd8..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using System.IO;
-using System.Reflection;
-using System.Reflection.Emit;
-using System.Security;
-using System.Threading;
-using System.Collections.Generic;
-using TestLibrary;
-
-#if WINCORESYS
-[assembly: AllowPartiallyTrustedCallers]
-#endif
-
-[SecuritySafeCritical]
-public class MultiThreading
-{
-    #region ParamsDefintion
-    private struct CommandLineParams
-    {
-        public string assemblyName;
-        public string[] args;
-        public int workers;
-    }
-    #endregion Params
-
-    #region Data
-    static private CommandLineParams cmdParams;
-    static private MethodInfo methToExec;
-    static private List<int> retVals;
-    static private object myLock;
-    static private ManualResetEvent[] events;
-    #endregion Data
-
-
-    #region Utilities
-    private static void Usage()
-    {
-        Console.WriteLine("Usage: MultipleInstance.exe /workers:#### /exe:#####");
-        Console.WriteLine("/workers: run test in n threads.");
-    }
-
-    private static bool ParseArguments(string[] args, ref CommandLineParams cmdParams)
-    {
-        bool ret = true;
-        cmdParams.workers = 0;
-        try
-        {
-            int index = 0;
-            for (int i = 0; i < args.Length; i++)
-            {
-                string name = "";
-                string value = "";
-
-                if (args[i].Contains(":"))
-                {
-                    name = args[i].Substring(0, args[i].IndexOf(":")).ToLower();
-                    value = args[i].Substring(args[i].IndexOf(":") + 1);
-                }
-
-                if (name.StartsWith("/workers"))
-                {
-                    cmdParams.workers = Convert.ToInt32(value);
-                }
-                else if (name.StartsWith("/exe"))
-                {
-                    cmdParams.assemblyName = value;
-                    index = i;
-                    break;
-                }
-                else
-                {
-                    Console.WriteLine("Invalid paramter: {0}", args[i]);
-                    ret = false;
-                }
-            }
-            if (index == args.Length - 1)
-            {
-                cmdParams.args = new string[0];
-            }
-            else
-            {
-                cmdParams.args = new string[args.Length - index - 1];
-                for (int i = index + 1; i < args.Length; i++)
-                {
-                    cmdParams.args[i - index - 1] = args[i];
-                }
-            }
-
-
-        }
-        catch (Exception e)
-        {
-            Console.WriteLine(e.ToString());
-            ret = false;
-        }
-        return ret;
-    }
-
-    public static Byte[] ReadFileContents(String path)
-    {
-        byte[] bytes;
-        using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
-        {
-            // Do a blocking read
-            int index = 0;
-            long fileLength = fs.Length;
-            if (fileLength > Int32.MaxValue)
-                throw new IOException("File size greater then 2Gb");
-            int count = (int)fs.Length;
-            bytes = new byte[count];
-            while (count > 0)
-            {
-                int n = fs.Read(bytes, index, count);
-                if (n == 0)
-                    throw new EndOfStreamException();
-                index += n;
-                count -= n;
-            }
-        }
-        return bytes;
-    }
-
-    private static MethodInfo GetEntryPoint(string assemblyName)
-    {
-        Assembly asm = null;
-        string asmName = "";
-
-
-        asmName = assemblyName;
-
-        try
-        {
-            asmName = assemblyName;
-            if (asmName.LastIndexOf(".") > -1)
-            {
-                asmName = asmName.Substring(0, asmName.LastIndexOf("."));
-            }
-            if (asmName.LastIndexOf(@"\") > -1)
-            {
-                asmName = asmName.Substring(asmName.LastIndexOf(@"\") + 1);
-            }
-            if (asmName.LastIndexOf(@"/") > -1)
-            {
-                asmName = asmName.Substring(asmName.LastIndexOf(@"/") + 1);
-            }
-
-            asm = Assembly.Load( new AssemblyName(asmName) );
-        }
-        catch (FileLoadException)
-        {
-            asm = null;
-        }
-        catch (FileNotFoundException)
-        {
-            asm = null;
-        }
-
-        if (null == asm)
-        {
-            MethodInfo assemload = null;
-            foreach(MethodInfo m in typeof(Assembly).GetMethods(BindingFlags.NonPublic | BindingFlags.Static))
-            {
-                ParameterInfo[] mps = m.GetParameters();
-                if (m.Name.Equals("Load") && mps.Length == 1 && mps[0].GetType() == typeof(byte[])) assemload = m;
-            }
-            if (assemload == null) {
-                throw new Exception("Failed to get Assembly.Load(int8[]) method");
-            }
-
-            asm = (Assembly)assemload.Invoke(null, new object[1] { ReadFileContents( assemblyName ) });
-        }
-
-        methToExec = asm.EntryPoint;
-
-        return methToExec;
-    }
-
-    private static void Worker()
-    {
-        if (cmdParams.workers > 1)
-            WaitHandle.WaitAny(events);
-
-        RunMain();
-    }
-
-    private static Thread NewThread()
-    {
-        Thread t = null;
-        t = new Thread(new ThreadStart(Worker));
-        return t;
-    }
-    #endregion Utilities
-
-    #region Main
-    public static int Main(string[] args)
-    {
-        if (0 == args.Length)
-        {
-            Usage();
-            return 0;
-        }
-
-        cmdParams = new CommandLineParams();
-        if (!ParseArguments(args, ref cmdParams))
-        {
-            Usage();
-            return 0;
-        }
-
-        retVals = new List<int>();
-        myLock = new object();
-
-        Run();  //run test...
-
-        int retVal = retVals[0];
-        for (int i = 0; i < retVals.Count - 1; i++)
-        {
-            if (retVals[i] != retVals[i + 1])
-            {
-                Logging.WriteLine("Failed");
-                retVal = 0xff;
-                break;
-            }
-        }
-        return retVal;
-    }
-
-    private static void Run()
-    {
-        methToExec = GetEntryPoint(cmdParams.assemblyName);
-        int threadNum = cmdParams.workers;
-        if (threadNum == 0)
-        {
-            Logging.WriteLine("Run test in the main thread");
-            RunMain();
-        }
-        else if (threadNum == 1)
-        {
-            Logging.WriteLine("Run test in a worker thread");
-            Thread t = NewThread();
-            t.Start();
-            t.Join();
-        }
-        else if (threadNum > 1)
-        {
-            Logging.WriteLine("Run test in the main thread and spawn {0} threads to run test", threadNum - 1);
-
-            events = new ManualResetEvent[1];
-            events[0] = new ManualResetEvent(false);
-          
-            Thread[] threads = new Thread[threadNum - 1];
-            for (int i = 0; i < threads.Length; i++)
-            {
-                threads[i] = NewThread();
-                threads[i].Start();
-            }
-            events[0].Set();
-            RunMain();
-            foreach (Thread t in threads)
-            {
-                t.Join();
-            }
-        }
-    }
-
-
-
-
-    private static void RunMain()
-    {
-        int numMainParams = methToExec.GetParameters().Length;
-        if (numMainParams > 1)
-        {
-            throw new Exception("Main method must contain 0 or 1 arguments.");
-        }
-
-        DateTime time1 = DateTime.Now;
-        Object oExitCode = null;
-        while (true)
-        {
-            oExitCode = methToExec.Invoke(null, numMainParams == 1 ? new Object[] { cmdParams.args } : null);
-            DateTime time2 = DateTime.Now;
-            TimeSpan span = time2 - time1;
-            if (span.TotalMilliseconds > 1500)
-                break;
-            Thread.Sleep(0);
-        }
-
-
-        int iRetCode;
-        if (methToExec.ReturnParameter.ParameterType == typeof(void))
-        {
-            //iRetCode = Environment.ExitCode;
-            Console.WriteLine("WARNING: Unable to get the exit code from a void Main method");
-            iRetCode = 100;
-        }
-        else if (methToExec.ReturnParameter.ParameterType == typeof(int))
-        {
-            iRetCode = (int)oExitCode;
-        }
-        else if (methToExec.ReturnParameter.ParameterType == typeof(uint))
-        {
-            iRetCode = (int)(uint)oExitCode;
-        }
-        else
-        {
-            throw new Exception("Main method must return void, int or uint not " + methToExec.ReturnParameter.ParameterType.ToString());
-        }
-
-        lock (myLock)
-        {
-            retVals.Add(iRetCode);
-        }
-    }
-    #endregion
-}
-
-
index d058644..3439171 100644 (file)
@@ -15,8 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
+    <CLRTestExecutionArguments>false</CLRTestExecutionArguments>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
@@ -45,4 +44,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
index cee4e78..d24bc30 100644 (file)
@@ -14,7 +14,6 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
     <CLRTestProjectToRun>ThreadStartBool.csproj</CLRTestProjectToRun>
     <CLRTestExecutionArguments>true</CLRTestExecutionArguments>
   </PropertyGroup>
@@ -41,4 +40,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartBool_2.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartBool_2.csproj
deleted file mode 100644 (file)
index c6b2367..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartBool.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>false</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 0410864..64a408d 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>max</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartByte_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartByte_3.csproj
deleted file mode 100644 (file)
index bc94f15..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartByte.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>max</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index fa76853..4bba36f 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartCast_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartCast_3.csproj
deleted file mode 100644 (file)
index d3dbbe0..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartCast.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index c73fb15..b90fcc4 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>min</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartChar_4.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartChar_4.csproj
deleted file mode 100644 (file)
index 8570b30..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartChar.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>min</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 18673a1..095ce06 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartDecimal_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartDecimal_3.csproj
deleted file mode 100644 (file)
index 28e55d5..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartDecimal.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 12bfc5b..88fefe7 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartDelegate_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartDelegate_3.csproj
deleted file mode 100644 (file)
index d47dee2..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartDelegate.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 5e0a427..e4da7a0 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>min</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartDouble_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartDouble_3.csproj
deleted file mode 100644 (file)
index c79ea6b..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartDouble.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>min</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 3572a3d..9fc4c35 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>max</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartFloat_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartFloat_3.csproj
deleted file mode 100644 (file)
index de6ecad..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartFloat.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>max</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 95eae30..6cc04b0 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>min</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartGenerics_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartGenerics_3.csproj
deleted file mode 100644 (file)
index 39720da..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartGenerics.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>min</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index fde2b28..821070e 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
index 60bac7a..f7a57ab 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>min</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartLong_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartLong_3.csproj
deleted file mode 100644 (file)
index 67c74f6..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartLong.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>min</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 4752230..fea9628 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>""</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
index 3d9a4bb..770921f 100644 (file)
@@ -16,7 +16,6 @@
     <CLRTestKind>RunOnly</CLRTestKind>
     <CLRTestPriority>1</CLRTestPriority>
     <CLRTestProjectToRun>ThreadStartObject.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>""</CLRTestExecutionArguments>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
@@ -41,4 +40,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
index 5adc944..0343d23 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartOperations_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartOperations_3.csproj
deleted file mode 100644 (file)
index 658559c..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartOperations.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 50fc006..c5ef1ae 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>min</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartSByte_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartSByte_3.csproj
deleted file mode 100644 (file)
index c134f1e..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartSByte.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>min</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index c16e57a..b4c7cb6 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartShort_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartShort_3.csproj
deleted file mode 100644 (file)
index 15f6da3..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartShort.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 16e788f..7ed5e19 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>MyStringHere</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartString_4.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartString_4.csproj
deleted file mode 100644 (file)
index c7594bf..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartString.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>MyStringHere</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 7bbbce0..5671571 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartUInt_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartUInt_3.csproj
deleted file mode 100644 (file)
index 3361fd2..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartUInt.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>0</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 7868a0c..2113bec 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>max</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartULong_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartULong_3.csproj
deleted file mode 100644 (file)
index 0a5308f..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartULong.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>max</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index e914686..b019195 100644 (file)
@@ -15,7 +15,7 @@
     <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
-    <CLRTestKind>BuildOnly</CLRTestKind>
+    <CLRTestExecutionArguments>max</CLRTestExecutionArguments>
     <CLRTestPriority>1</CLRTestPriority>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
@@ -45,4 +45,4 @@
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
   <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
   </PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/tests/src/baseservices/threading/paramthreadstart/ThreadStartUShort_3.csproj b/tests/src/baseservices/threading/paramthreadstart/ThreadStartUShort_3.csproj
deleted file mode 100644 (file)
index 76da38e..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
-    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CLRTestKind>RunOnly</CLRTestKind>
-    <CLRTestPriority>1</CLRTestPriority>
-    <CLRTestProjectToRun>ThreadStartUShort.csproj</CLRTestProjectToRun>
-    <CLRTestExecutionArguments>max</CLRTestExecutionArguments>
-  </PropertyGroup>
-  <!-- Default configurations to help VS understand the configurations -->
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-  </PropertyGroup>
-  <ItemGroup>
-    <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
-      <Visible>False</Visible>
-    </CodeAnalysisDependentAssemblyPaths>
-  </ItemGroup>
-  <ItemGroup>
-    <!-- Add Compile Object Here -->
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="project.json" />
-  </ItemGroup>
-  <ItemGroup>
-    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
-  </ItemGroup>
-  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
-  <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
-  </PropertyGroup>
-</Project>
\ No newline at end of file
index 4cc833b..f1700f5 100644 (file)
     <TestPath Condition="'$(TestPath)'==''">$(TestWorkingDir)$(OSPlatformConfig)\$(MSBuildProjectName)/</TestPath>
   </PropertyGroup>
 
+  <!-- Setup the output location for the project.json generated for the local CoreCLR build. -->
+  <PropertyGroup>
+    <TestRuntimeProjectJsonDir>$(BaseOutputPath)\test_runtime</TestRuntimeProjectJsonDir>
+    <TestRuntimeProjectJson>$(TestRuntimeProjectJsonDir)\project.json</TestRuntimeProjectJson>
+    <TestRuntimeProjectLockJson>$(TestRuntimeProjectJsonDir)\project.lock.json</TestRuntimeProjectLockJson>
+  </PropertyGroup>
+
   <!-- Default priority building values. -->
   <PropertyGroup>
     <CLRTestKind Condition="'$(CLRTestKind)' == ' '">BuildAndRun</CLRTestKind>
index 9335fd2..653ac4c 100644 (file)
@@ -1,10 +1,6 @@
 baseservices/threading/paramthreadstart/ThreadStartString_1/ThreadStartString_1.sh
 CoreMangLib/cti/system/multicastdelegate/MulticastDelegateCtor/MulticastDelegateCtor.sh
 CoreMangLib/cti/system/runtime/interopservices/marshal/MarshalGetLastWin32Error_PSC/MarshalGetLastWin32Error_PSC.sh
-JIT/Directed/PREFIX/unaligned/1/arglist/arglist.sh
-JIT/Directed/PREFIX/unaligned/2/arglist/arglist.sh
-JIT/Directed/PREFIX/unaligned/4/arglist/arglist.sh
-JIT/Directed/PREFIX/volatile/1/arglist/arglist.sh
 JIT/Directed/StructABI/StructABI/StructABI.sh
 JIT/Directed/UnrollLoop/loop6_cs_d/loop6_cs_d.sh
 JIT/Directed/UnrollLoop/loop6_cs_do/loop6_cs_do.sh
@@ -21,37 +17,11 @@ JIT/Methodical/refany/_speed_dbgstress1/_speed_dbgstress1.sh
 JIT/Methodical/refany/_speed_dbgstress3/_speed_dbgstress3.sh
 JIT/Methodical/refany/_speed_relstress1/_speed_relstress1.sh
 JIT/Methodical/refany/_speed_relstress3/_speed_relstress3.sh
-JIT/Methodical/varargs/callconv/gc_ctor_il_d/gc_ctor_il_d.sh
-JIT/Methodical/varargs/callconv/gc_ctor_il_r/gc_ctor_il_r.sh
-JIT/Methodical/varargs/callconv/val_ctor_il_d/val_ctor_il_d.sh
-JIT/Methodical/varargs/callconv/val_ctor_il_r/val_ctor_il_r.sh
-JIT/Methodical/varargs/misc/Dev10_615402/Dev10_615402.sh
-JIT/Regression/CLR-x86-EJIT/V1-M12-Beta2/b26323/b26323/b26323.sh
-JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16423/b16423/b16423.sh
-JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28901/b28901/b28901.sh
-JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30838/b30838/b30838.sh
-JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30864/b30864/b30864.sh
-JIT/Regression/CLR-x86-JIT/V1-M09/b15307/b15307/b15307.sh
-JIT/Regression/CLR-x86-JIT/V1-M09/b16102/b16102/b16102.sh
-JIT/Regression/CLR-x86-JIT/V1-M10/b04914/b04914/b04914.sh
-JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b35784/b35784/b35784.sh
-JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b36472/b36472/b36472.sh
-JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b37598/b37598/b37598.sh
 JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b41391/b41391/b41391.sh
-JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b46867/b46867/b46867.sh
-JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31745/b31745/b31745.sh
-JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31746/b31746/b31746.sh
 JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b37646/b37646/b37646.sh
-JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b41852/b41852/b41852.sh
-JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b57367/b57367/b57367.sh
 JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b66533/b66533/b66533.sh
-JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b88793/b88793/b88793.sh
-JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91248/b91248/b91248.sh
 JIT/Regression/CLR-x86-JIT/V1.2-M02/b20785/b20785/b20785.sh
-JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b399444/b399444a/b399444a.sh
-JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b409748/b409748/b409748.sh
 JIT/Regression/VS-ia64-JIT/V1.2-Beta1/b302509/b302509/b302509.sh
-JIT/Regression/VS-ia64-JIT/V1.2-M02/b12011/b12011/b12011.sh
 JIT/opt/Tailcall/TailcallVerifyWithPrefix/TailcallVerifyWithPrefix.sh
 Loader/NativeLibs/FromNativePaths/FromNativePaths.sh
 JIT/Directed/coverage/importer/Desktop/bleref_il_d/bleref_il_d.sh
@@ -60,20 +30,14 @@ JIT/Directed/coverage/importer/Desktop/ldelemnullarr1_il_d/ldelemnullarr1_il_d.s
 JIT/Directed/coverage/importer/Desktop/ldelemnullarr1_il_r/ldelemnullarr1_il_r.sh
 JIT/Directed/coverage/importer/Desktop/nonrefsdarr_il_d/nonrefsdarr_il_d.sh
 JIT/Directed/coverage/importer/Desktop/nonrefsdarr_il_r/nonrefsdarr_il_r.sh
-JIT/Directed/IL/mutualrecurthd-tailcall/mutualrecurthd-tailcall/mutualrecurthd-tailcall.sh
-JIT/Directed/Misc/function_pointer/mutualthdrecur-fptr/mutualthdrecur-fptr.sh
 JIT/Directed/pinning/object-pin/object-pin/object-pin.sh
 JIT/Directed/pinvoke/preemptive_cooperative/preemptive_cooperative.sh
 JIT/Directed/tls/mutualrecurthd-tls/mutualrecurthd-tls.sh
 JIT/Directed/tls/test-tls/test-tls.sh
-JIT/IL_Conformance/Old/Conformance_Base/conv_ovf_i8_i/conv_ovf_i8_i.sh
-JIT/IL_Conformance/Old/Conformance_Base/rem_r4/rem_r4.sh
 JIT/jit64/localloc/verify/verify01_dynamic/verify01_dynamic.sh
 JIT/jit64/localloc/verify/verify01_large/verify01_large.sh
 JIT/jit64/localloc/verify/verify01_small/verify01_small.sh
 JIT/jit64/regress/ndpw/21220/b21220/b21220.sh
-JIT/jit64/regress/vsw/102754/test1/test1.sh
-JIT/jit64/regress/vsw/102754/test2/test2.sh
 JIT/Methodical/Boxing/xlang/_dbgsin_il_cs/_dbgsin_il_cs.sh
 JIT/Methodical/Boxing/xlang/_dbgsin_il_il/_dbgsin_il_il.sh
 JIT/Methodical/Boxing/xlang/_odbgsin_il_cs/_odbgsin_il_cs.sh
@@ -82,86 +46,20 @@ JIT/Methodical/Boxing/xlang/_orelsin_il_cs/_orelsin_il_cs.sh
 JIT/Methodical/Boxing/xlang/_orelsin_il_il/_orelsin_il_il.sh
 JIT/Methodical/Boxing/xlang/_relsin_il_cs/_relsin_il_cs.sh
 JIT/Methodical/Boxing/xlang/_relsin_il_il/_relsin_il_il.sh
-JIT/Methodical/cctor/misc/tail_il_d/tail_il_d.sh
-JIT/Methodical/cctor/misc/tail_il_r/tail_il_r.sh
-JIT/Methodical/cctor/misc/threads3_il_d/threads3_il_d.sh
-JIT/Methodical/cctor/misc/threads3_il_r/threads3_il_r.sh
-JIT/Methodical/cctor/simple/precise3_il_d/precise3_il_d.sh
-JIT/Methodical/cctor/simple/precise3_il_r/precise3_il_r.sh
-JIT/Methodical/Coverage/arglist_pos/arglist_pos.sh
 JIT/Methodical/eh/deadcode/badcodeafterfinally_d/badcodeafterfinally_d.sh
 JIT/Methodical/eh/deadcode/badcodeafterfinally_r/badcodeafterfinally_r.sh
-JIT/Methodical/eh/interactions/cornucopia1_d/cornucopia1_d.sh
-JIT/Methodical/eh/interactions/cornucopia1_r/cornucopia1_r.sh
-JIT/Methodical/switch/switch10/switch10.sh
-JIT/Methodical/switch/switch11/switch11.sh
-JIT/Methodical/switch/switch1/switch1.sh
-JIT/Methodical/switch/switch2/switch2.sh
-JIT/Methodical/switch/switch3/switch3.sh
-JIT/Methodical/switch/switch4/switch4.sh
-JIT/Methodical/switch/switch5/switch5.sh
-JIT/Methodical/switch/switch6/switch6.sh
-JIT/Methodical/switch/switch7/switch7.sh
-JIT/Methodical/switch/switch8/switch8.sh
-JIT/Methodical/switch/switch9/switch9.sh
-JIT/Methodical/tailcall/_il_dbgrecurse_ep_void/_il_dbgrecurse_ep_void.sh
-JIT/Methodical/tailcall/_il_dbgtest_void/_il_dbgtest_void.sh
-JIT/Methodical/tailcall/_il_relrecurse_ep_void/_il_relrecurse_ep_void.sh
-JIT/Methodical/tailcall/_il_reltest_void/_il_reltest_void.sh
-JIT/Methodical/varargs/seh/fault_il_d/fault_il_d.sh
-JIT/Methodical/varargs/seh/fault_il_r/fault_il_r.sh
-JIT/Methodical/varargs/seh/filter_il_d/filter_il_d.sh
-JIT/Methodical/varargs/seh/filter_il_r/filter_il_r.sh
 JIT/Methodical/xxobj/operand/_il_dbglocalloc/_il_dbglocalloc.sh
 JIT/Methodical/xxobj/operand/_il_rellocalloc/_il_rellocalloc.sh
 JIT/Regression/CLR-x86-EJIT/v1-m10/b07847/b07847/b07847.sh
-JIT/Regression/CLR-x86-JIT/V1.2-Beta1/b213516/b213516/b213516.sh
 JIT/Regression/CLR-x86-JIT/V1.2-M01/b03689/b03689/b03689.sh
 JIT/Regression/CLR-x86-JIT/V1.2-M01/b08046/b08046/b08046.sh
-JIT/Regression/CLR-x86-JIT/V1.2-M01/b08707/b08707/b08707.sh
-JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324a/b26324a.sh
-JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324b/b26324b.sh
-JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b27098/b27098/b27098.sh
-JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28911/b28911/b28911.sh
-JIT/Regression/CLR-x86-JIT/V1-M09/b14585/b14585/b14585.sh
-JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b28949/b28949b/b28949b.sh
-JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b47584/b47584/b47584.sh
-JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b51416/b51416/b51416.sh
-JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b56272/b56272/b56272.sh
-JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.sh
 JIT/Regression/Dev11/dev10_865840/dev10_865840/dev10_865840.sh
-JIT/Regression/VS-ia64-JIT/V1.2-M01/b11959/b11959/b11959.sh
-JIT/Regression/VS-ia64-JIT/V1.2-M02/b16933/b16933/b16933.sh
-JIT/Regression/VS-ia64-JIT/V1.2-M02/b22545/b22545/b22545.sh
-JIT/Regression/VS-ia64-JIT/V1.2-M02/b22591/b22591/b22591.sh
-JIT/Regression/VS-ia64-JIT/V2.0-Beta2/b416776/b416776/b416776.sh
-JIT/Regression/CLR-x86-JIT/V1-M09/b13621/b13621/b13621.sh
 JIT/SIMD/Vector3Interop_r/Vector3Interop_r.sh
 JIT/SIMD/Vector3Interop_ro/Vector3Interop_ro.sh
-JIT/jit64/localloc/eh/eh01_dynamic/eh01_dynamic.sh
-JIT/jit64/localloc/eh/eh01_large/eh01_large.sh
-JIT/jit64/localloc/eh/eh01_small/eh01_small.sh
-JIT/jit64/localloc/eh/eh02_dynamic/eh02_dynamic.sh
-JIT/jit64/localloc/eh/eh02_large/eh02_large.sh
-JIT/jit64/localloc/eh/eh02_small/eh02_small.sh
-JIT/jit64/localloc/ehverify/eh09_dynamic/eh09_dynamic.sh
-JIT/jit64/localloc/ehverify/eh09_large/eh09_large.sh
-JIT/jit64/localloc/ehverify/eh09_small/eh09_small.sh
-JIT/jit64/localloc/unwind/unwind01_dynamic/unwind01_dynamic.sh
-JIT/jit64/localloc/unwind/unwind01_large/unwind01_large.sh
-JIT/jit64/localloc/unwind/unwind01_small/unwind01_small.sh
-JIT/jit64/localloc/unwind/unwind02_dynamic/unwind02_dynamic.sh
-JIT/jit64/localloc/unwind/unwind02_large/unwind02_large.sh
-JIT/jit64/localloc/unwind/unwind02_small/unwind02_small.sh
-JIT/jit64/localloc/unwind/unwind03_dynamic/unwind03_dynamic.sh
-JIT/jit64/localloc/unwind/unwind03_large/unwind03_large.sh
-JIT/jit64/localloc/unwind/unwind03_small/unwind03_small.sh
 JIT/Methodical/Boxing/xlang/_dbgsin_cs_il/_dbgsin_cs_il.sh
 JIT/Methodical/Boxing/xlang/_odbgsin_cs_il/_odbgsin_cs_il.sh
 JIT/Methodical/Boxing/xlang/_orelsin_cs_il/_orelsin_cs_il.sh
 JIT/Methodical/Boxing/xlang/_relsin_cs_il/_relsin_cs_il.sh
-JIT/Methodical/localloc/call/call01_small/call01_small.sh
-JIT/Regression/Dev11/External/dev11_145295/CSharpPart/CSharpPart.sh
 Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutExp/MarshalStructAsLayoutExp.sh
 GC/LargeMemory/Allocation/finalizertest/finalizertest.sh
 GC/LargeMemory/API/gc/reregisterforfinalize/reregisterforfinalize.sh
index 6f5ee97..845cf60 100644 (file)
@@ -132,8 +132,7 @@ CoreMangLib/cti/system/uint16/UInt16ToString4/UInt16ToString4.sh
 CoreMangLib/cti/system/uint32/UInt32ToString2/UInt32ToString2.sh
 CoreMangLib/system/collections/generic/hashset/Regression_Dev10_609271/Regression_Dev10_609271.sh
 CoreMangLib/system/collections/generic/hashset/Regression_Dev10_624201/Regression_Dev10_624201.sh
-JIT/Directed/coverage/oldtests/callipinvoke/callipinvoke.sh
-JIT/Directed/coverage/oldtests/Desktop/callipinvoke_il_d/callipinvoke_il_d.sh
+JIT/Directed/coverage/oldtests/callipinvoke/callipinvoke.sh JIT/Directed/coverage/oldtests/Desktop/callipinvoke_il_d/callipinvoke_il_d.sh
 JIT/Directed/coverage/oldtests/Desktop/callipinvoke_il_r/callipinvoke_il_r.sh
 JIT/Directed/IL/PInvokeTail/PInvokeTail/PInvokeTail.sh
 JIT/Directed/IL/PInvokeTail/TailWinApi/TailWinApi.sh
@@ -143,6 +142,10 @@ JIT/Directed/pinvoke/sin/sin.sh
 JIT/Directed/pinvoke/sysinfo_cs/sysinfo_cs.sh
 JIT/Directed/pinvoke/sysinfo_il/sysinfo_il.sh
 JIT/Directed/pinvoke/tail/tail.sh
+JIT/Directed/PREFIX/unaligned/1/arglist/arglist.sh
+JIT/Directed/PREFIX/unaligned/2/arglist/arglist.sh
+JIT/Directed/PREFIX/unaligned/4/arglist/arglist.sh
+JIT/Directed/PREFIX/volatile/1/arglist/arglist.sh
 JIT/Directed/UnrollLoop/loop2_cs_d/loop2_cs_d.sh
 JIT/Directed/UnrollLoop/loop2_cs_do/loop2_cs_do.sh
 JIT/Directed/UnrollLoop/loop2_cs_r/loop2_cs_r.sh
@@ -211,12 +214,11 @@ JIT/jit64/mcc/interop/mcc_i85/mcc_i85.sh
 JIT/jit64/mcc/interop/mcc_i86/mcc_i86.sh
 JIT/jit64/mcc/interop/mcc_i87/mcc_i87.sh
 JIT/jit64/regress/vsw/286991/test/test.sh
-JIT/Methodical/Arrays/misc/_il_dbgarrres/_il_dbgarrres.sh
-JIT/Methodical/Arrays/misc/_il_relarrres/_il_relarrres.sh
 JIT/Methodical/cctor/xassem/xprecise3_cs_d/xprecise3_cs_d.sh
 JIT/Methodical/cctor/xassem/xprecise3_cs_do/xprecise3_cs_do.sh
 JIT/Methodical/cctor/xassem/xprecise3_cs_r/xprecise3_cs_r.sh
 JIT/Methodical/cctor/xassem/xprecise3_cs_ro/xprecise3_cs_ro.sh
+JIT/Methodical/Coverage/arglist_pos/arglist_pos.sh
 JIT/Methodical/delegate/_simpleoddpower_il_d/_simpleoddpower_il_d.sh
 JIT/Methodical/delegate/_simpleoddpower_il_r/_simpleoddpower_il_r.sh
 JIT/Methodical/delegate/_XModuledeleg1_d/_XModuledeleg1_d.sh
@@ -291,19 +293,46 @@ JIT/Methodical/explicit/coverage/seq_short_1_d/seq_short_1_d.sh
 JIT/Methodical/explicit/coverage/seq_short_1_r/seq_short_1_r.sh
 JIT/Methodical/explicit/coverage/seq_val_1_d/seq_val_1_d.sh
 JIT/Methodical/explicit/coverage/seq_val_1_r/seq_val_1_r.sh
+JIT/Methodical/varargs/callconv/gc_ctor_il_d/gc_ctor_il_d.sh
+JIT/Methodical/varargs/callconv/gc_ctor_il_r/gc_ctor_il_r.sh
+JIT/Methodical/varargs/callconv/val_ctor_il_d/val_ctor_il_d.sh
+JIT/Methodical/varargs/callconv/val_ctor_il_r/val_ctor_il_r.sh
+JIT/Methodical/varargs/misc/Dev10_615402/Dev10_615402.sh
+JIT/Methodical/varargs/seh/fault_il_d/fault_il_d.sh
+JIT/Methodical/varargs/seh/fault_il_r/fault_il_r.sh
+JIT/Methodical/varargs/seh/filter_il_d/filter_il_d.sh
+JIT/Methodical/varargs/seh/filter_il_r/filter_il_r.sh
 JIT/opt/Inline/tests/security/security.sh
 JIT/opt/Inline/tests/xmodb/xmodb.sh
 JIT/Regression/clr-x64-JIT/v2.1/b173569/b173569/b173569.sh
 JIT/Regression/clr-x64-JIT/v4.0/devdiv374539/DevDiv_374539/DevDiv_374539.sh
+JIT/Regression/CLR-x86-EJIT/V1-M12-Beta2/b26323/b26323/b26323.sh
+JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16423/b16423/b16423.sh
+JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324a/b26324a.sh
+JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b26324/b26324b/b26324b.sh
+JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28901/b28901/b28901.sh
+JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30838/b30838/b30838.sh
+JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b30864/b30864/b30864.sh
 JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b32374/b32374/b32374.sh
+JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b35784/b35784/b35784.sh
+JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b36472/b36472/b36472.sh
+JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b37598/b37598/b37598.sh
+JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b46867/b46867/b46867.sh
+JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31745/b31745/b31745.sh
+JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b31746/b31746/b31746.sh
+JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b41852/b41852/b41852.sh
 JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b79250/b79250/b79250.sh
+JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b88793/b88793/b88793.sh
+JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91248/b91248/b91248.sh
 JIT/Regression/CLR-x86-JIT/V1.2-M01/b07493/b07493/b07493.sh
 JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b427411/Desktop/b427411/b427411.sh
+JIT/Regression/VS-ia64-JIT/V1.2-M02/b12011/b12011/b12011.sh
 JIT/Regression/VS-ia64-JIT/V1.2-M01/b15632/b15632/b15632.sh
+JIT/Regression/CLR-x86-JIT/V2.0-Beta2/b409748/b409748/b409748.sh
 JIT/Regression/VS-ia64-JIT/V2.0-RTM/b286991/b286991/b286991.sh
 managed/Compilation/Compilation/Compilation.sh
 Regressions/coreclr/0584/Test584/Test584.sh
 Interop/MarshalAPI/IUnknown/IUnknownTest/IUnknownTest.sh
 Interop/MarshalAPI/GetNativeVariantForObject/GetNativeVariantForObject/GetNativeVariantForObject.sh
 Interop/MarshalAPI/GetObjectForNativeVariant/GetObjectForNativeVariant/GetObjectForNativeVariant.sh
-Interop/MarshalAPI/GetObjectsForNativeVariants/GetObjectsForNativeVariants/GetObjectsForNativeVariants.sh
\ No newline at end of file
+Interop/MarshalAPI/GetObjectsForNativeVariants/GetObjectsForNativeVariants/GetObjectsForNativeVariants.sh
diff --git a/tests/x86_jit32_issues.targets b/tests/x86_jit32_issues.targets
new file mode 100644 (file)
index 0000000..adee8b3
--- /dev/null
@@ -0,0 +1,281 @@
+<Project DefaultTargets = "GetListOfTestCmds"
+    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
+    <ItemGroup Condition="'$(XunitTestBinBase)' != ''">
+        <ExcludeList Include="$(XunitTestBinBase)\Interop\ICastable\Castable\Castable.cmd" >
+         <Issue> Assert failure(PID 4872 [0x00001308], Thread: 13744 [0x35b0]): Consistency check failed: AV in clr at this callstack:</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\opt\Inline\regression\mismatch64\mismatch64\mismatch64.cmd" >
+             <Issue>'Arg type mismatch: Wanted long (size 8), Got struct (size 4) for call at IL offset 0x16'</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\delegate\_simpleoddpower_il_d\_simpleoddpower_il_d.cmd" >
+             <Issue>'GetType() == TI_METHOD'</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\delegate\_simpleoddpower_il_r\_simpleoddpower_il_r.cmd" >
+             <Issue>'GetType() == TI_METHOD'</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\GC\LargeMemory\Allocation\finalizertest\finalizertest.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\GC\LargeMemory\API\gc\gettotalmemory\gettotalmemory.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\GC\LargeMemory\API\gc\getgeneration\getgeneration.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\GC\LargeMemory\API\gc\keepalive\keepalive.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\GC\LargeMemory\API\gc\suppressfinalize\suppressfinalize.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\SIMD\CircleInConvex_ro\CircleInConvex_ro.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\GC\LargeMemory\API\gc\collect\collect.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\GC\LargeMemory\API\gc\reregisterforfinalize\reregisterforfinalize.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\JitBlue\GitHub_4044\GitHub_4044\GitHub_4044.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\GC\LargeMemory\Allocation\largeexceptiontest\largeexceptiontest.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\simple\precise3_il_r\precise3_il_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\regress\ndpw\21220\b21220\b21220.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\threads3_il_r\threads3_il_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1.2-M01\b08046\b08046\b08046.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\threads3_il_d\threads3_il_d.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\GC\Features\SustainedLowLatency\scenario\scenario.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\forceinlining\PositiveCases\PositiveCases.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\localloc\verify\verify01_small\verify01_small.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\localloc\verify\verify01_dynamic\verify01_dynamic.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1.2-Beta1\b102637\b102637\b102637.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\GC\Regressions\dev10bugs\536168\536168\536168.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\GC\Features\BackgroundGC\foregroundgc\foregroundgc.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_orelsin_cs_il\_orelsin_cs_il.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\intrinsic\interlocked\rva_rvastatic3\rva_rvastatic3.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\xxobj\operand\_il_rellocalloc\_il_rellocalloc.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1.2-M01\b03689\b03689\b03689.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\rvastatics\rvastatic5\rvastatic5.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\ldelemnullarr1_il_d\ldelemnullarr1_il_d.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\rvastatics\rvastatic1\rvastatic1.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\rvastatics\rvastatic4\rvastatic4.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\tail_il_r\tail_il_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\intrinsic\interlocked\rva_rvastatic4\rva_rvastatic4.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\nonrefsdarr_il_r\nonrefsdarr_il_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_relsin_cs_il\_relsin_cs_il.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_dbgsin_il_il\_dbgsin_il_il.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\eh\deadcode\badcodeafterfinally_r\badcodeafterfinally_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_orelsin_il_il\_orelsin_il_il.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_odbgsin_il_il\_odbgsin_il_il.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Arrays\misc\_il_dbgarrres\_il_dbgarrres.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_dbgpointer\_il_dbgpointer.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\opt\Inline\tests\LotsOfInlines\LotsOfInlines.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\nonrefsdarr_il_d\nonrefsdarr_il_d.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\tls\mutualrecurthd-tls\mutualrecurthd-tls.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_dbgpointer_i\_il_dbgpointer_i.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b57367\b57367\b57367.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\opt\Tailcall\TailcallVerifyWithPrefix\TailcallVerifyWithPrefix.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\global_il_d\global_il_d.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\tls\test-tls\test-tls.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\VS-ia64-JIT\V2.0-Beta2\b410474\b410474\b410474.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M11-Beta1\b46649\b46649\b46649.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\intrinsic\interlocked\rva_rvastatic1\rva_rvastatic1.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M11-Beta1\b49644\b49644\b49644.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\badldsfld_il_d\badldsfld_il_d.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\opt\Inline\regression\mismatch32\mismatch32\mismatch32.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\rvastatics\rvastatic2\rvastatic2.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\pinvoke\preemptive_cooperative\preemptive_cooperative.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_dbgsin_cs_il\_dbgsin_cs_il.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\SIMD\CircleInConvex_r\CircleInConvex_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\RVAInit\overlap\overlap.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_relpointer\_il_relpointer.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_odbgsin_cs_il\_odbgsin_cs_il.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\forceinlining\AttributeConflict\AttributeConflict.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_dbgsin_il_cs\_dbgsin_il_cs.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\bleref_il_r\bleref_il_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\varargs\seh\filter_il_d\filter_il_d.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\varargs\seh\fault_il_d\fault_il_d.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\tail_il_d\tail_il_d.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\intrinsic\interlocked\rva_rvastatic2\rva_rvastatic2.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\Dev11\External\dev11_239804\ShowLocallocAlignment\ShowLocallocAlignment.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_relsin_il_cs\_relsin_il_cs.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\varargs\seh\filter_il_r\filter_il_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_orelsin_il_cs\_orelsin_il_cs.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\ldelemnullarr1_il_r\ldelemnullarr1_il_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\varargs\seh\fault_il_r\fault_il_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\localloc\verify\verify01_large\verify01_large.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\bleref_il_d\bleref_il_d.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\simple\precise3_il_d\precise3_il_d.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_odbgsin_il_cs\_odbgsin_il_cs.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\RVAInit\extended\extended.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\Dev11\dev10_865840\dev10_865840\dev10_865840.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\eh\deadcode\badcodeafterfinally_d\badcodeafterfinally_d.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\xxobj\operand\_il_dbglocalloc\_il_dbglocalloc.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_relpointer_i\_il_relpointer_i.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\badldsfld_il_r\badldsfld_il_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\rvastatics\rvastatic3\rvastatic3.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-EJIT\v1-m10\b07847\b07847\b07847.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\global_il_r\global_il_r.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_relsin_il_il\_relsin_il_il.cmd" >
+             <Issue>needs triage</Issue>
+        </ExcludeList>
+    </ItemGroup>
+</Project>
\ No newline at end of file
index 5191664..65578d5 100644 (file)
@@ -7,9 +7,6 @@
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_dbgsin_il_cs\_dbgsin_il_cs.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_dbgrecurse_ep_void\_il_dbgrecurse_ep_void.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\Interop\ArrayMarshalling\BoolArray\MarshalBoolArrayTest\MarshalBoolArrayTest.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\rvastatics\rvastatic1\rvastatic1.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch3\switch3.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\Interop\ICastable\Castable\Castable.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch10\switch10.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b65423\b65423\b65423.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_odbgsin_il_cs\_odbgsin_il_cs.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\intrinsic\interlocked\rva_rvastatic1\rva_rvastatic1.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\threads3_il_d\threads3_il_d.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_dbgsin_cs_il\_dbgsin_cs_il.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\VS-ia64-JIT\V2.0-Beta2\b410474\b410474\b410474.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\tail_il_d\tail_il_d.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\bleref_il_d\bleref_il_d.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\ldelemnullarr1_il_d\ldelemnullarr1_il_d.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\simple\precise3_il_d\precise3_il_d.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\Interop\ArrayMarshalling\BoolArray\MarshalBoolArrayTest\MarshalBoolArrayTest.cmd Timed Out">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch11\switch11.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch9\switch9.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1.2-Beta1\b102637\b102637\b102637.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch2\switch2.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\divrem\rem\u8rem_cs_do\u8rem_cs_do.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\opt\cse\HugeArray1\HugeArray1.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_relrecurse_ep_void\_il_relrecurse_ep_void.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\eh\deadcode\badcodeafterfinally_r\badcodeafterfinally_r.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V2.0-Beta2\b399444\b399444a\b399444a.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_orelsin_cs_il\_orelsin_cs_il.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\tls\mutualrecurthd-tls\mutualrecurthd-tls.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b57367\b57367\b57367.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\Dev11\dev10_865840\dev10_865840\dev10_865840.cmd Timed Out">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\intrinsic\interlocked\rva_rvastatic3\rva_rvastatic3.cmd Timed Out">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch7\switch7.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\localloc\verify\verify01_dynamic\verify01_dynamic.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\IL_Conformance\Old\Conformance_Base\rem_r4\rem_r4.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\forceinlining\NegativeCases\NegativeCases.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\VS-ia64-JIT\V1.2-M01\b12390\b12390\b12390.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch5\switch5.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\managed\Compilation\Compilation\Compilation.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\ldelemnullarr1_il_r\ldelemnullarr1_il_r.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_reltest_void\_il_reltest_void.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\threads3_il_r\threads3_il_r.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M09\b16102\b16102\b16102.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\coverage\importer\Desktop\bleref_il_r\bleref_il_r.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\opt\Inline\regression\mismatch32\mismatch32\mismatch32.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\SIMD\CircleInConvex_ro\CircleInConvex_ro.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\localloc\verify\verify01_small\verify01_small.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\rvastatics\rvastatic3\rvastatic3.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M10\b04914\b04914\b04914.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\varargs\seh\fault_il_d\fault_il_d.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_reltest_implicit\_il_reltest_implicit.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M09\b15307\b15307\b15307.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\V8\DeltaBlue\DeltaBlue\DeltaBlue.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\tls\test-tls\test-tls.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\simple\precise3_il_r\precise3_il_r.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\Threading\ThreadStatics\ThreadStatic02\ThreadStatic02.cmd Timed Out">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-EJIT\v1-m10\b07847\b07847\b07847.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\regress\vsw\102754\test1\test1.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_orelsin_il_il\_orelsin_il_il.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\RVAInit\extended\extended.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M09\b15307\b15307\b15307.cmd Timed Out">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch6\switch6.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch1\switch1.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\intrinsic\interlocked\rva_rvastatic4\rva_rvastatic4.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\Threading\ThreadStatics\ThreadStatic06\ThreadStatic06.cmd Timed Out">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch4\switch4.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M09\b13621\b13621\b13621.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\intrinsic\interlocked\rva_rvastatic3\rva_rvastatic3.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\SIMD\CircleInConvex_r\CircleInConvex_r.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\tailcall\_il_dbgtest_void\_il_dbgtest_void.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\VS-ia64-JIT\V2.0-Beta2\b410474\b410474\b410474.cmd Timed Out">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\switch\switch8\switch8.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1-M14-SP1\b119538\b119538b\b119538b.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Boxing\xlang\_odbgsin_cs_il\_odbgsin_cs_il.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\jit64\regress\vsw\102754\test2\test2.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\cctor\misc\tail_il_r\tail_il_r.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\IL_Conformance\Old\Conformance_Base\conv_ovf_i8_i\conv_ovf_i8_i.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\varargs\seh\filter_il_d\filter_il_d.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1.2-Beta1\b103058\b103058\b103058.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Arrays\misc\_il_relarrres\_il_relarrres.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\opt\perf\doublealign\Locals\Locals.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\Roslyn\CscBench\CscBench.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>
-    <ExcludeList Include="$(XunitTestBinBase)\JIT\Methodical\Arrays\misc\_il_dbgarrres\_il_dbgarrres.cmd">
-      <Issue>needs triage</Issue>
-    </ExcludeList>
     <ExcludeList Include="$(XunitTestBinBase)\JIT\Directed\lifetime\lifetime2\lifetime2.cmd">
       <Issue>needs triage</Issue>
     </ExcludeList>