Full Code of chrisdunelm/DotNetAnywhere for AI

master 95cb3933b5b3 cached
705 files
3.1 MB
843.1k tokens
2941 symbols
1 requests
Download .txt
Showing preview only (3,393K chars total). Download the full file or copy to clipboard to get everything.
Repository: chrisdunelm/DotNetAnywhere
Branch: master
Commit: 95cb3933b5b3
Files: 705
Total size: 3.1 MB

Directory structure:
gitextract_4p48603e/

├── .gitignore
├── ChangeLog.txt
├── CustomDevice/
│   ├── CustomDevice.csproj
│   ├── DeviceGraphics.cs
│   ├── KeyPad.cs
│   ├── KeyPadKey.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Utils.cs
│   └── WindowsScreen.cs
├── License.txt
├── Managed.sln
├── Snake/
│   ├── ASnake.cs
│   ├── CrashType.cs
│   ├── Program.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Snake.csproj
│   └── SnakePit.cs
├── System/
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── System.Collections.Generic/
│   │   ├── Queue.cs
│   │   └── Stack.cs
│   ├── System.ComponentModel/
│   │   └── Win32Exception.cs
│   ├── System.Net/
│   │   ├── Dns.cs
│   │   ├── EndPoint.cs
│   │   ├── IPAddress.cs
│   │   ├── IPEndPoint.cs
│   │   ├── IPHostEntry.cs
│   │   └── SocketAddress.cs
│   ├── System.Net.Sockets/
│   │   ├── AddressFamily.cs
│   │   ├── ProtocolType.cs
│   │   ├── Socket.cs
│   │   ├── SocketException.cs
│   │   ├── SocketFlags.cs
│   │   ├── SocketOptionLevel.cs
│   │   ├── SocketOptionName.cs
│   │   └── SocketType.cs
│   └── System.csproj
├── System.Core/
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── System/
│   │   ├── Action.cs
│   │   └── Func.cs
│   ├── System.Collections.Generic/
│   │   └── HashSet.cs
│   ├── System.Core.csproj
│   ├── System.Linq/
│   │   ├── Enumerable.cs
│   │   ├── Grouping.cs
│   │   ├── IGrouping.cs
│   │   ├── ILookup.cs
│   │   ├── IOrderedEnumerable.cs
│   │   ├── Lookup.cs
│   │   └── OrderedEnumerable.cs
│   └── System.Runtime.CompilerServices/
│       └── ExtensionAttribute.cs
├── System.Drawing/
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── System.Drawing/
│   │   ├── Bitmap.cs
│   │   ├── Brush.cs
│   │   ├── Brushes.cs
│   │   ├── Color.cs
│   │   ├── Font.cs
│   │   ├── FontFamily.cs
│   │   ├── FontStyle.cs
│   │   ├── Graphics.cs
│   │   ├── Image.cs
│   │   ├── KnownColor.cs
│   │   ├── KnownColors.cs
│   │   ├── LibIGraph.cs
│   │   ├── Pen.cs
│   │   ├── Pens.cs
│   │   ├── Point.cs
│   │   ├── PointF.cs
│   │   ├── Rectangle.cs
│   │   ├── RectangleF.cs
│   │   ├── Region.cs
│   │   ├── Size.cs
│   │   ├── SizeF.cs
│   │   ├── SolidBrush.cs
│   │   ├── StringAlignment.cs
│   │   ├── StringFormat.cs
│   │   ├── StringFormatFlags.cs
│   │   └── StringTrimming.cs
│   ├── System.Drawing.Drawing2D/
│   │   ├── HatchBrush.cs
│   │   ├── HatchStyle.cs
│   │   ├── LinearGradientBrush.cs
│   │   └── WrapMode.cs
│   ├── System.Drawing.Imaging/
│   │   └── PixelFormat.cs
│   ├── System.Drawing.Text/
│   │   └── TextRenderingHint.cs
│   └── System.Drawing.csproj
├── corlib/
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── System/
│   │   ├── Action.cs
│   │   ├── Activator.cs
│   │   ├── ArgumentException.cs
│   │   ├── ArgumentNullException.cs
│   │   ├── ArgumentOutOfRangeException.cs
│   │   ├── ArithmeticException.cs
│   │   ├── Array.cs
│   │   ├── ArrayTypeMismatchException.cs
│   │   ├── AsyncCallback.cs
│   │   ├── Attribute.cs
│   │   ├── AttributeTargets.cs
│   │   ├── AttributeUsageAttribute.cs
│   │   ├── BitConverter.cs
│   │   ├── Boolean.cs
│   │   ├── Byte.cs
│   │   ├── Char.cs
│   │   ├── CharEnumerator.cs
│   │   ├── Console.cs
│   │   ├── ConsoleKey.cs
│   │   ├── ConsoleKeyInfo.cs
│   │   ├── ConsoleModifiers.cs
│   │   ├── Converter.cs
│   │   ├── DateTime.cs
│   │   ├── DateTimeKind.cs
│   │   ├── DayOfWeek.cs
│   │   ├── Decimal.cs
│   │   ├── Delegate.cs
│   │   ├── Double.cs
│   │   ├── Enum.cs
│   │   ├── Environment.cs
│   │   ├── Exception.cs
│   │   ├── FlagsAttribute.cs
│   │   ├── FormatException.cs
│   │   ├── GC.cs
│   │   ├── IAsyncResult.cs
│   │   ├── ICloneable.cs
│   │   ├── IComparable.cs
│   │   ├── ICustomFormatter.cs
│   │   ├── IDisposable.cs
│   │   ├── IEquatable.cs
│   │   ├── IFormatProvider.cs
│   │   ├── IFormattable.cs
│   │   ├── IndexOutOfRangeException.cs
│   │   ├── Int16.cs
│   │   ├── Int32.cs
│   │   ├── Int64.cs
│   │   ├── IntPtr.cs
│   │   ├── InvalidCastException.cs
│   │   ├── InvalidOperationException.cs
│   │   ├── MarshalByRefObject.cs
│   │   ├── Math.cs
│   │   ├── MulticastDelegate.cs
│   │   ├── MulticastNotSupportedException.cs
│   │   ├── NotImplementedException.cs
│   │   ├── NotSupportedException.cs
│   │   ├── NullReferenceException.cs
│   │   ├── Nullable.cs
│   │   ├── NumberFormatter.cs
│   │   ├── Object.cs
│   │   ├── ObjectDisposedException.cs
│   │   ├── OperatingSystem.cs
│   │   ├── OverflowException.cs
│   │   ├── ParamArrayAttribute.cs
│   │   ├── ParseHelper.cs
│   │   ├── PlatformID.cs
│   │   ├── Predicate.cs
│   │   ├── Random.cs
│   │   ├── RuntimeFieldHandle.cs
│   │   ├── RuntimeMethodHandle.cs
│   │   ├── RuntimeType.cs
│   │   ├── RuntimeTypeHandle.cs
│   │   ├── SByte.cs
│   │   ├── Single.cs
│   │   ├── String.cs
│   │   ├── StringComparison.cs
│   │   ├── StringHelper.cs
│   │   ├── SystemException.cs
│   │   ├── TimeSpan.cs
│   │   ├── Type.cs
│   │   ├── UInt16.cs
│   │   ├── UInt32.cs
│   │   ├── UInt64.cs
│   │   ├── UIntPtr.cs
│   │   ├── ValueType.cs
│   │   ├── Version.cs
│   │   ├── Void.cs
│   │   └── WeakReference.cs
│   ├── System.Collections/
│   │   ├── ArrayList.cs
│   │   ├── DictionaryEntry.cs
│   │   ├── ICollection.cs
│   │   ├── IComparer.cs
│   │   ├── IDictionary.cs
│   │   ├── IDictionaryEnumerator.cs
│   │   ├── IEnumerable.cs
│   │   ├── IEnumerator.cs
│   │   ├── IEqualityComparer.cs
│   │   └── IList.cs
│   ├── System.Collections.Generic/
│   │   ├── Comparer.cs
│   │   ├── Dictionary.cs
│   │   ├── EqualityComparer.cs
│   │   ├── GenericEqualityComparer.cs
│   │   ├── ICollection.cs
│   │   ├── IComparer.cs
│   │   ├── IDictionary.cs
│   │   ├── IEnumerable.cs
│   │   ├── IEnumerator.cs
│   │   ├── IEqualityComparer.cs
│   │   ├── IList.cs
│   │   ├── KeyNotFoundException.cs
│   │   ├── KeyValuePair.cs
│   │   └── List.cs
│   ├── System.Diagnostics/
│   │   └── Debugger.cs
│   ├── System.Globalization/
│   │   ├── Calendar.cs
│   │   ├── CalendarWeekRule.cs
│   │   ├── CalendricalCalculations.cs
│   │   ├── CultureInfo.cs
│   │   ├── CultureTypes.cs
│   │   ├── DateTimeFormatInfo.cs
│   │   ├── DigitShapes.cs
│   │   ├── GregorianCalendar.cs
│   │   ├── GregorianCalendarTypes.cs
│   │   ├── NumberFormatInfo.cs
│   │   ├── NumberStyles.cs
│   │   ├── TextInfo.cs
│   │   └── UnicodeCategory.cs
│   ├── System.IO/
│   │   ├── CheckArgument.cs
│   │   ├── Directory.cs
│   │   ├── DirectoryInfo.cs
│   │   ├── DirectoryNotFoundException.cs
│   │   ├── File.cs
│   │   ├── FileAccess.cs
│   │   ├── FileAttributes.cs
│   │   ├── FileInfo.cs
│   │   ├── FileInternal.cs
│   │   ├── FileMode.cs
│   │   ├── FileNotFoundException.cs
│   │   ├── FileShare.cs
│   │   ├── FileStream.cs
│   │   ├── FileSystemInfo.cs
│   │   ├── IOException.cs
│   │   ├── Path.cs
│   │   ├── SearchPattern.cs
│   │   ├── SeekOrigin.cs
│   │   ├── Stream.cs
│   │   ├── StreamReader.cs
│   │   └── TextReader.cs
│   ├── System.Reflection/
│   │   ├── DefaultMemberAttribute.cs
│   │   └── MemberInfo.cs
│   ├── System.Runtime.CompilerServices/
│   │   ├── IndexerNameAttribute.cs
│   │   ├── MethodImplAttribute.cs
│   │   ├── MethodImplOptions.cs
│   │   └── RuntimeHelpers.cs
│   ├── System.Runtime.InteropServices/
│   │   ├── CallingConvention.cs
│   │   ├── CharSet.cs
│   │   ├── DllImportAttribute.cs
│   │   ├── ExternalException.cs
│   │   ├── InAttribute.cs
│   │   └── OutAttribute.cs
│   ├── System.Text/
│   │   ├── Decoder.cs
│   │   ├── Encoding.cs
│   │   ├── StringBuilder.cs
│   │   ├── UTF8Encoding.cs
│   │   └── UnicodeEncoding.cs
│   ├── System.Threading/
│   │   ├── Interlocked.cs
│   │   ├── Monitor.cs
│   │   ├── ParameterizedThreadStart.cs
│   │   ├── Thread.cs
│   │   ├── ThreadStart.cs
│   │   ├── ThreadState.cs
│   │   └── WaitHandle.cs
│   └── corlib.csproj
├── dna/
│   ├── Bugs.txt
│   ├── CIL_OpCodes.h
│   ├── CLIFile.c
│   ├── CLIFile.h
│   ├── Compat.h
│   ├── Config.h
│   ├── Cultures/
│   │   ├── _
│   │   ├── af
│   │   ├── af-ZA
│   │   ├── ar
│   │   ├── ar-AE
│   │   ├── ar-BH
│   │   ├── ar-DZ
│   │   ├── ar-EG
│   │   ├── ar-IQ
│   │   ├── ar-JO
│   │   ├── ar-KW
│   │   ├── ar-LB
│   │   ├── ar-LY
│   │   ├── ar-MA
│   │   ├── ar-OM
│   │   ├── ar-QA
│   │   ├── ar-SA
│   │   ├── ar-SY
│   │   ├── ar-TN
│   │   ├── ar-YE
│   │   ├── az
│   │   ├── az-Cyrl-AZ
│   │   ├── az-Latn-AZ
│   │   ├── be
│   │   ├── be-BY
│   │   ├── bg
│   │   ├── bg-BG
│   │   ├── bn-IN
│   │   ├── bs-Latn-BA
│   │   ├── ca
│   │   ├── ca-ES
│   │   ├── cs
│   │   ├── cs-CZ
│   │   ├── cy-GB
│   │   ├── da
│   │   ├── da-DK
│   │   ├── de
│   │   ├── de-AT
│   │   ├── de-CH
│   │   ├── de-DE
│   │   ├── de-LI
│   │   ├── de-LU
│   │   ├── dv
│   │   ├── dv-MV
│   │   ├── el
│   │   ├── el-GR
│   │   ├── en
│   │   ├── en-029
│   │   ├── en-AU
│   │   ├── en-BZ
│   │   ├── en-CA
│   │   ├── en-GB
│   │   ├── en-IE
│   │   ├── en-JM
│   │   ├── en-NZ
│   │   ├── en-PH
│   │   ├── en-TT
│   │   ├── en-US
│   │   ├── en-ZA
│   │   ├── en-ZW
│   │   ├── es
│   │   ├── es-AR
│   │   ├── es-BO
│   │   ├── es-CL
│   │   ├── es-CO
│   │   ├── es-CR
│   │   ├── es-DO
│   │   ├── es-EC
│   │   ├── es-ES
│   │   ├── es-GT
│   │   ├── es-HN
│   │   ├── es-MX
│   │   ├── es-NI
│   │   ├── es-PA
│   │   ├── es-PE
│   │   ├── es-PR
│   │   ├── es-PY
│   │   ├── es-SV
│   │   ├── es-UY
│   │   ├── es-VE
│   │   ├── et
│   │   ├── et-EE
│   │   ├── eu
│   │   ├── eu-ES
│   │   ├── fa
│   │   ├── fa-IR
│   │   ├── fi
│   │   ├── fi-FI
│   │   ├── fo
│   │   ├── fo-FO
│   │   ├── fr
│   │   ├── fr-BE
│   │   ├── fr-CA
│   │   ├── fr-CH
│   │   ├── fr-FR
│   │   ├── fr-LU
│   │   ├── fr-MC
│   │   ├── gl
│   │   ├── gl-ES
│   │   ├── gu
│   │   ├── gu-IN
│   │   ├── he
│   │   ├── he-IL
│   │   ├── hi
│   │   ├── hi-IN
│   │   ├── hr
│   │   ├── hr-BA
│   │   ├── hr-HR
│   │   ├── hu
│   │   ├── hu-HU
│   │   ├── hy
│   │   ├── hy-AM
│   │   ├── id
│   │   ├── id-ID
│   │   ├── is
│   │   ├── is-IS
│   │   ├── it
│   │   ├── it-CH
│   │   ├── it-IT
│   │   ├── ja
│   │   ├── ja-JP
│   │   ├── ka
│   │   ├── ka-GE
│   │   ├── kk
│   │   ├── kk-KZ
│   │   ├── kn
│   │   ├── kn-IN
│   │   ├── ko
│   │   ├── ko-KR
│   │   ├── kok
│   │   ├── kok-IN
│   │   ├── ky
│   │   ├── ky-KG
│   │   ├── lt
│   │   ├── lt-LT
│   │   ├── lv
│   │   ├── lv-LV
│   │   ├── mi-NZ
│   │   ├── mk
│   │   ├── mk-MK
│   │   ├── ml-IN
│   │   ├── mn
│   │   ├── mn-MN
│   │   ├── mr
│   │   ├── mr-IN
│   │   ├── ms
│   │   ├── ms-BN
│   │   ├── ms-MY
│   │   ├── mt-MT
│   │   ├── nb-NO
│   │   ├── nl
│   │   ├── nl-BE
│   │   ├── nl-NL
│   │   ├── nn-NO
│   │   ├── no
│   │   ├── ns-ZA
│   │   ├── pa
│   │   ├── pa-IN
│   │   ├── pl
│   │   ├── pl-PL
│   │   ├── pt
│   │   ├── pt-BR
│   │   ├── pt-PT
│   │   ├── quz-BO
│   │   ├── quz-EC
│   │   ├── quz-PE
│   │   ├── ro
│   │   ├── ro-RO
│   │   ├── ru
│   │   ├── ru-RU
│   │   ├── sa
│   │   ├── sa-IN
│   │   ├── se-FI
│   │   ├── se-NO
│   │   ├── se-SE
│   │   ├── sk
│   │   ├── sk-SK
│   │   ├── sl
│   │   ├── sl-SI
│   │   ├── sma-NO
│   │   ├── sma-SE
│   │   ├── smj-NO
│   │   ├── smj-SE
│   │   ├── smn-FI
│   │   ├── sms-FI
│   │   ├── sq
│   │   ├── sq-AL
│   │   ├── sr
│   │   ├── sr-Cyrl-BA
│   │   ├── sr-Cyrl-CS
│   │   ├── sr-Latn-BA
│   │   ├── sr-Latn-CS
│   │   ├── sv
│   │   ├── sv-FI
│   │   ├── sv-SE
│   │   ├── sw
│   │   ├── sw-KE
│   │   ├── syr
│   │   ├── syr-SY
│   │   ├── ta
│   │   ├── ta-IN
│   │   ├── te
│   │   ├── te-IN
│   │   ├── th
│   │   ├── th-TH
│   │   ├── tn-ZA
│   │   ├── tr
│   │   ├── tr-TR
│   │   ├── tt
│   │   ├── tt-RU
│   │   ├── uk
│   │   ├── uk-UA
│   │   ├── ur
│   │   ├── ur-PK
│   │   ├── uz
│   │   ├── uz-Cyrl-UZ
│   │   ├── uz-Latn-UZ
│   │   ├── vi
│   │   ├── vi-VN
│   │   ├── xh-ZA
│   │   ├── zh-CHS
│   │   ├── zh-CHT
│   │   ├── zh-CN
│   │   ├── zh-HK
│   │   ├── zh-MO
│   │   ├── zh-SG
│   │   ├── zh-TW
│   │   └── zu-ZA
│   ├── Delegate.c
│   ├── Delegate.h
│   ├── EvalStack.h
│   ├── Finalizer.c
│   ├── Finalizer.h
│   ├── Generics.c
│   ├── Generics.h
│   ├── Heap.c
│   ├── Heap.h
│   ├── InternalCall.c
│   ├── InternalCall.h
│   ├── JIT.c
│   ├── JIT.h
│   ├── JIT_Execute.c
│   ├── JIT_OpCodes.h
│   ├── Makefile
│   ├── MetaData.c
│   ├── MetaData.h
│   ├── MetaDataTables.h
│   ├── MetaData_Fill.c
│   ├── MetaData_Search.c
│   ├── MethodState.c
│   ├── MethodState.h
│   ├── PInvoke.c
│   ├── PInvoke.h
│   ├── PInvoke_CaseCode.h
│   ├── PInvoke_TypeDef.h
│   ├── RVA.c
│   ├── RVA.h
│   ├── Sys.c
│   ├── Sys.h
│   ├── System.Array.c
│   ├── System.Array.h
│   ├── System.Char.CaseConversion.h
│   ├── System.Char.UC_IndexRuns.h
│   ├── System.Char.c
│   ├── System.Char.h
│   ├── System.Console.c
│   ├── System.Console.h
│   ├── System.DateTime.c
│   ├── System.DateTime.h
│   ├── System.Diagnostics.Debugger.c
│   ├── System.Diagnostics.Debugger.h
│   ├── System.Enum.c
│   ├── System.Enum.h
│   ├── System.Environment.c
│   ├── System.Environment.h
│   ├── System.GC.c
│   ├── System.GC.h
│   ├── System.IO.FileInternal.c
│   ├── System.IO.FileInternal.h
│   ├── System.Math.c
│   ├── System.Math.h
│   ├── System.Net.Dns.c
│   ├── System.Net.Dns.h
│   ├── System.Net.Sockets.Socket.c
│   ├── System.Net.Sockets.Socket.h
│   ├── System.Object.c
│   ├── System.Object.h
│   ├── System.Runtime.CompilerServices.RuntimeHelpers.c
│   ├── System.Runtime.CompilerServices.RuntimeHelpers.h
│   ├── System.RuntimeType.c
│   ├── System.RuntimeType.h
│   ├── System.String.c
│   ├── System.String.h
│   ├── System.Threading.Interlocked.c
│   ├── System.Threading.Interlocked.h
│   ├── System.Threading.Monitor.c
│   ├── System.Threading.Monitor.h
│   ├── System.Threading.Thread.c
│   ├── System.Threading.Thread.h
│   ├── System.Type.c
│   ├── System.Type.h
│   ├── System.ValueType.c
│   ├── System.ValueType.h
│   ├── System.WeakReference.c
│   ├── System.WeakReference.h
│   ├── Thread.c
│   ├── Thread.h
│   ├── Type.c
│   ├── Type.h
│   ├── Types.h
│   ├── dna.c
│   └── dna.vcproj
├── dna.sln
├── libIGraph/
│   ├── Bitmap.c
│   ├── Bitmap.h
│   ├── BitmapLoader.c
│   ├── Brush.c
│   ├── Brush.h
│   ├── Config.h
│   ├── DrawEllipses.c
│   ├── DrawEllipses.h
│   ├── DrawLines.c
│   ├── DrawLines.h
│   ├── DrawRectangles.c
│   ├── DrawRectangles.h
│   ├── Exports.c
│   ├── Font.c
│   ├── Font.h
│   ├── FontFamily.c
│   ├── FontFamily.h
│   ├── GetScreen.c
│   ├── GetScreen.h
│   ├── Graphics.c
│   ├── Graphics.h
│   ├── HatchBrushDefs.h
│   ├── Image.c
│   ├── Image.h
│   ├── Makefile
│   ├── Pen.c
│   ├── Pen.h
│   ├── Pixels.c
│   ├── Pixels.h
│   ├── Region.c
│   ├── Region.h
│   ├── StringFormat.c
│   ├── StringFormat.h
│   ├── Text.c
│   ├── Text.h
│   ├── freetype.txt
│   ├── include/
│   │   ├── freetype/
│   │   │   ├── config/
│   │   │   │   ├── ftconfig.h
│   │   │   │   ├── ftheader.h
│   │   │   │   ├── ftmodule.h
│   │   │   │   ├── ftoption.h
│   │   │   │   └── ftstdlib.h
│   │   │   ├── freetype.h
│   │   │   ├── ftbbox.h
│   │   │   ├── ftbdf.h
│   │   │   ├── ftbitmap.h
│   │   │   ├── ftcache.h
│   │   │   ├── ftchapters.h
│   │   │   ├── fterrdef.h
│   │   │   ├── fterrors.h
│   │   │   ├── ftgasp.h
│   │   │   ├── ftglyph.h
│   │   │   ├── ftgxval.h
│   │   │   ├── ftgzip.h
│   │   │   ├── ftimage.h
│   │   │   ├── ftincrem.h
│   │   │   ├── ftlcdfil.h
│   │   │   ├── ftlist.h
│   │   │   ├── ftlzw.h
│   │   │   ├── ftmac.h
│   │   │   ├── ftmm.h
│   │   │   ├── ftmodapi.h
│   │   │   ├── ftmoderr.h
│   │   │   ├── ftotval.h
│   │   │   ├── ftoutln.h
│   │   │   ├── ftpfr.h
│   │   │   ├── ftrender.h
│   │   │   ├── ftsizes.h
│   │   │   ├── ftsnames.h
│   │   │   ├── ftstroke.h
│   │   │   ├── ftsynth.h
│   │   │   ├── ftsystem.h
│   │   │   ├── fttrigon.h
│   │   │   ├── fttypes.h
│   │   │   ├── ftwinfnt.h
│   │   │   ├── ftxf86.h
│   │   │   ├── internal/
│   │   │   │   ├── autohint.h
│   │   │   │   ├── ftcalc.h
│   │   │   │   ├── ftdebug.h
│   │   │   │   ├── ftdriver.h
│   │   │   │   ├── ftgloadr.h
│   │   │   │   ├── ftmemory.h
│   │   │   │   ├── ftobjs.h
│   │   │   │   ├── ftrfork.h
│   │   │   │   ├── ftserv.h
│   │   │   │   ├── ftstream.h
│   │   │   │   ├── fttrace.h
│   │   │   │   ├── ftvalid.h
│   │   │   │   ├── internal.h
│   │   │   │   ├── pcftypes.h
│   │   │   │   ├── psaux.h
│   │   │   │   ├── pshints.h
│   │   │   │   ├── services/
│   │   │   │   │   ├── svbdf.h
│   │   │   │   │   ├── svgldict.h
│   │   │   │   │   ├── svgxval.h
│   │   │   │   │   ├── svkern.h
│   │   │   │   │   ├── svmm.h
│   │   │   │   │   ├── svotval.h
│   │   │   │   │   ├── svpfr.h
│   │   │   │   │   ├── svpostnm.h
│   │   │   │   │   ├── svpscmap.h
│   │   │   │   │   ├── svpsinfo.h
│   │   │   │   │   ├── svsfnt.h
│   │   │   │   │   ├── svttcmap.h
│   │   │   │   │   ├── svtteng.h
│   │   │   │   │   ├── svttglyf.h
│   │   │   │   │   ├── svwinfnt.h
│   │   │   │   │   └── svxf86nm.h
│   │   │   │   ├── sfnt.h
│   │   │   │   ├── t1types.h
│   │   │   │   └── tttypes.h
│   │   │   ├── t1tables.h
│   │   │   ├── ttnameid.h
│   │   │   ├── tttables.h
│   │   │   ├── tttags.h
│   │   │   └── ttunpat.h
│   │   └── ft2build.h
│   ├── jidctflt.c
│   ├── lib/
│   │   └── freetype.lib
│   ├── libIGraph.c
│   ├── libIGraph.def
│   ├── libIGraph.h
│   ├── libIGraph.vcproj
│   ├── tinyjpeg-internal.h
│   ├── tinyjpeg.c
│   └── tinyjpeg.h
├── mini-demo-dna/
│   ├── HelloWorld/
│   │   ├── HelloWorld.csproj
│   │   └── Program.cs
│   ├── mini-demo-dna/
│   │   └── main.c
│   ├── mini-demo-dna.sln
│   └── readme.md
└── readme.markdown

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
bin
obj
Debug
Release
Builds
.vs
*.ncb
*.suo
*.user
*.pidb
*.userprefs
*.xml
*.nupkg
*.svn
*.opensdf
*.sdf
*.vcxproj
*.vcxproj.filters

================================================
FILE: ChangeLog.txt
================================================
Major changes from v0.2.5 to v0.2.6

dna:

* Command line parameters are now passed to the .NET executable, in the args[] array to Main().

* When calling a method on a null reference, a NullReferenceException is now thrown,
  rather than crashing. However - note that internally thrown exceptions don't act quite
  as expected, as their constructors are not yet called.

------------------------------------------------------------------------------

Major changes from v0.2.4 to v0.2.5

All Visual Studio solutions have been upgraded to VS2008.

dna:

* Fixed bug with static fields in generic types. The memory location for the field
  was not being initialised properly.

* Fixed bug with overridding virtual methods in generic types. Virtual method table
  indexes were being generated for partially defined generic types, which shouldn't
  be done as virtual method tables are not available for these types.

* Fixed bug where generic method type arguments were not propogated through the type
  system correctly. (In fact, at all).

* Fixed bug in finding generic methods in another assembly. The generic method
  signature was not being checked correctly.

* Fixed bug in MetaData_LoadTables() where the blob index size was being read incorrecty.
  Thanks to Patrick Levesque for report and fix.

* Fixed bug in casting to nullable types.

* Fixed bug in using typeof() on generic arguments.

* Fixed bug in Array.GetValue() and Array.SetValue() when using nullable types.

* Improved error reporting for missing methods. Now shows the correct containing type.

* Improved conversion operations. All conversions are now supported, with more efficient
  runtime operation. However, checked conversions run as unchecked conversions.

* Implemented all the unsigned branch instructions, long versions.

corlib:

* Added IComparer[T], IComparer and Comparer.

* Added IEqualityComparer[T], IEqualityComparer and EqualityComparer.

* Dictionary[TKey, TValue], List[T] and ArrayList re-implemented and improved.

* Fixed missing functionality in Nullable[T].Equals() method.

* Implemented Enum.GetNames().

System.Core:

* Added System.Core.dll, containing:
    - Most LINQ to Objects extension methods.
    - Func[...] and Action[...] delegates.

------------------------------------------------------------------------------

Major changes from v0.2.3 to v0.2.4

All parts of this project are now licensed under the MIT license.

------------------------------------------------------------------------------

Major changes from v0.2.2 to v0.2.3

dna:

* Improved time resolution of DateTime.UtcNow

* Added code to selectively generate combined-opcode versions often-used methods.
  It is disabled by default, but may be enabled in config.h
  It currently has the following major problems:
    - It doesn't appear to actually speed up execution very much (~5% in testing).
    - It leaks some memory when 'de-optimizing' methods that are no longer
      frequently used. This won't be too difficult to fix.

* Added support for static fields containing value-types.

* Added support for casting from Int64 to Double.

corlib:

* DateTimeFormatInfo implemented

* Calendar and GregorianCalendar very basically implemented. Enough that DateTime
  formatting now works.

* DateTime.ToString() now works properly (except for timezones).

* More of Math class implemented.

* Implemented IComparable, IComparable[T] and IEquatable[T] on Int16, Int32,
  Int64, Single, Double, UInt16 ,UInt32, UInt64, Byte, SByte and Boolean.

System.Drawing:

* Region is very basically implemented. Only infinite and rectangular regions
  are supported.

* Added clipping support to Graphics.

* Graphics.MeasureString() has some overloads implemented.

* Graphics.DrawEllipse() and FillEllipse() with int and rect arguments implemented.

* Fixed bug with line drawing.

libIGraph:

* Implemented native parts of region.

* Implemented native clipping support for all Graphics operations.

* Implemented native parts of MeasureString().

* Implemented ellipse drawing and filling.

System:

* Stack[T] class added.

------------------------------------------------------------------------------

Major changes from v0.2.1 to v0.2.2

dna:

* Added native code for DNS class

* Added native code for System.Threading.Interlocked class

corlib:

* Added all System.Threading.Interlocked methods that operate on Int32 values.
  Enumerators defined using yield return therefore now work - they need
  CompareExchange().

* Added delegates: Action[T], Predicate[T]

* Added TimeSpan - complete except for Parse() and TryParse()

* Added DateTime - DateTime.Now is not implemented, DateTime.UtcNow is.
  Add simple operations are implemented, but not more complex/obscure stuff,
  e.g. ToFileTime(). ToString() is only crudely implemented, not taking
  any notice of formatting specified, or culture. It is always shown in
  UK format (dd/mm/yyyy hh:mm:ss).

System:

* Added the beginnings of the Dns class. It is now possible to get the IPv4
  address for a host-name.

------------------------------------------------------------------------------

Major changes from v0.2.0 to v0.2.1

dna:

* Fixed bug in constrained virtual calls.

* Fixed bug with how Single and Double types were handled.

* Added array functionality for floating-point types.

* Improved how internal calls are looked up.

* Updated the VS2005 build config for release, to place the executable
  in the correct place.

* Implemented Nullable types.

* Implemented basic native socket functionality.

* A little more reflection implemented.

* Misc other bug-fixes and improvements.

System:

* Implemented Nullable and Nullable[T] classes.

* Implemented the Socket class (and friends). Only the very basic operations
  are currently implemented. A socket can be created, used to listen or connect
  and can send and receive data. Only IPv4 is supported and at the moment only
  TCP is support (UDP to be added later). More will be implemented later.

corlib:

* A little more reflection implemented.

------------------------------------------------------------------------------

Major changes from v0.1 to v0.2.0

The Interpreter:

* The main interpreter loop has changed from a 'loop with switch'
to use direct threading (see http://en.wikipedia.org/wiki/Threaded_code
for details). This gives a performance advantage, although not on Windows
as having __asm code in a function appears to stop all other optimizations.
The assembler code is only required on non-GNU compilers as GNU provides
the computed goto statement.

* A dynamic code generator (strictly, just a combiner) has been
implemented, which dynamically generates multi-opcode instructions.
However, it is disabled by default because it currently generates
dynamic code for all JITted methods, which uses large amounts of
memory, and is not always faster (due to code caching). An algorithm
to selectively re-JIT frequently-used methods is being worked on.

* Split out the configuration into a seperate Config.h file.

* Misc other bug-fixes and improvements.

System.Drawing:

* Implmented LinearGradiantBrush

* Fixed bug in HatchBrush that caused all hatches to be drawn 90
degrees rotated.



================================================
FILE: CustomDevice/CustomDevice.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>9.0.30729</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{43619745-0A80-499E-907C-E733FF3DA2BE}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>CustomDevice</RootNamespace>
    <AssemblyName>CustomDevice</AssemblyName>
    <FileUpgradeFlags>
    </FileUpgradeFlags>
    <UpgradeBackupLocation>
    </UpgradeBackupLocation>
    <OldToolsVersion>3.5</OldToolsVersion>
    <IsWebBootstrapper>false</IsWebBootstrapper>
    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
    <PublishUrl>publish\</PublishUrl>
    <Install>true</Install>
    <InstallFrom>Disk</InstallFrom>
    <UpdateEnabled>false</UpdateEnabled>
    <UpdateMode>Foreground</UpdateMode>
    <UpdateInterval>7</UpdateInterval>
    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
    <UpdatePeriodically>false</UpdatePeriodically>
    <UpdateRequired>false</UpdateRequired>
    <MapFileExtensions>true</MapFileExtensions>
    <ApplicationRevision>0</ApplicationRevision>
    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
    <UseApplicationTrust>false</UseApplicationTrust>
    <BootstrapperEnabled>true</BootstrapperEnabled>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <FileAlignment>512</FileAlignment>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <FileAlignment>512</FileAlignment>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="DeviceGraphics.cs" />
    <Compile Include="KeyPad.cs" />
    <Compile Include="KeyPadKey.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Utils.cs" />
    <Compile Include="WindowsScreen.cs">
      <SubType>Form</SubType>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
      <Visible>False</Visible>
      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
      <Install>true</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
  <PropertyGroup>
    <PostBuildEvent>xcopy $(TargetPath) $(SolutionDir)Builds\$(ConfigurationName)\ /Y</PostBuildEvent>
  </PropertyGroup>
</Project>

================================================
FILE: CustomDevice/DeviceGraphics.cs
================================================
// Copyright (c) 2012 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Threading;

namespace CustomDevice {

	public static class DeviceGraphics {

		private const int ScreenX = 320;
		private const int ScreenY = 240;

		private static int whichScreen = 0;

		public static int ScreenXSize {
			get {
				return ScreenX;
			}
		}

		public static int ScreenYSize {
			get {
				return ScreenY;
			}
		}

		public static Graphics GetScreen() {
			if (whichScreen == 0) {
				if (Utils.IsInterNet2) {
					whichScreen = 1;
				} else {
					whichScreen = 2;
				}
			}
			if (whichScreen == 1) {
				return GetScreen_InterNet2();
			} else {
				return GetScreen_Windows();
			}
		}

		private static Graphics GetScreen_InterNet2() {
			// In the InterNet2 System.Drawing dll Graphics.FromHdc() will always
			// return the Graphics object for the screen.
			return Graphics.FromHdc(IntPtr.Zero);
		}

		private static Graphics GetScreen_Windows() {

			if (WindowsScreen.winScreen == null) {
				Thread t = new Thread(WindowsScreen.WindowsMessagePump);
				t.IsBackground = true;
				t.Start();
				while (WindowsScreen.winScreen == null) {
					Thread.Sleep(2);
				}
			}

			lock (WindowsScreen.winScreen) {
				Graphics g = Graphics.FromImage(WindowsScreen.winScreen.FormSurface);
				return g;
			}
		}

	}

}


================================================
FILE: CustomDevice/KeyPad.cs
================================================
// Copyright (c) 2012 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Threading;

namespace CustomDevice {
	public static class KeyPad {

		[DllImport("libIGraph")]
		extern private static bool IsKeyDown_Internal(KeyPadKey key);

		[DllImport("libIGraph")]
		extern private static int LatestKeyUp_Internal();

		[DllImport("libIGraph")]
		extern private static int LatestKeyDown_Internal();

		public static bool IsKeyDown(KeyPadKey key) {
			if (Utils.IsInterNet2) {
				return IsKeyDown_Internal(key);
			} else {
				return WindowsScreen.WinScreen.IsKeyDown(key);
			}
		}

		private static bool WindowsLatestKeyUp(out KeyPadKey key) {
			return WindowsScreen.WinScreen.LatestKeyUp(out key);
		}

		private static bool WindowsLatestKeyDown(out KeyPadKey key) {
			return WindowsScreen.WinScreen.LatestKeyDown(out key);
		}

		public static bool LatestKeyUp(out KeyPadKey key) {
			if (Utils.IsInterNet2) {
				int iKey = LatestKeyUp_Internal();
				if (iKey >= 0) {
					key = (KeyPadKey)iKey;
					return true;
				} else {
					key = KeyPadKey.B0;
					return false;
				}
			} else {
				return WindowsLatestKeyUp(out key);
			}
		}

		public static bool LatestKeyDown(out KeyPadKey key) {
			if (Utils.IsInterNet2) {
				int iKey = LatestKeyDown_Internal();
				if (iKey >= 0) {
					key = (KeyPadKey)iKey;
					return true;
				} else {
					key = KeyPadKey.B0;
					return false;
				}
			} else {
				return WindowsLatestKeyDown(out key);
			}
		}

		public static KeyPadKey? ReadKey(int timeoutMs) {
			DateTime end = DateTime.UtcNow.AddMilliseconds(timeoutMs);
			do {
				KeyPadKey key;
				if (LatestKeyDown(out key)) {
					return key;
				}
				Thread.Sleep(1);
			} while (DateTime.UtcNow < end && timeoutMs >= 0);
			return null;
		}

		public static KeyPadKey? ReadKey() {
			return ReadKey(-1);
		}
	}
}


================================================
FILE: CustomDevice/KeyPadKey.cs
================================================
// Copyright (c) 2012 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace CustomDevice {
	public enum KeyPadKey {

		B0 = 0,
		B1 = 1,
		B2 = 2,
		B3 = 3,
		B4 = 4,
		B5 = 5,
		B6 = 6,
		B7 = 7,
		B8 = 8,
		B9 = 9,
		C = 10,
		OK = 11

	}
}


================================================
FILE: CustomDevice/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("DeviceGraphics")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Docobo")]
[assembly: AssemblyProduct("DeviceGraphics")]
[assembly: AssemblyCopyright("Copyright © Docobo 2007")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("a7a488bb-a22b-4377-ab45-d2139150ff7d")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Revision and Build Numbers 
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]


================================================
FILE: CustomDevice/Utils.cs
================================================
// Copyright (c) 2012 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace CustomDevice {
	static class Utils {

		private static bool isDNA, isDNASet = false;
		public static bool IsInterNet2 {
			get {
				if (!isDNASet) {
					isDNA = Environment.OSVersion.VersionString.EndsWith("(DNA)");
					isDNASet = true;
				}
				return isDNA;
			}
		}

	}
}


================================================
FILE: CustomDevice/WindowsScreen.cs
================================================
// Copyright (c) 2012 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.Threading;
using System.IO;
using System.Runtime.InteropServices;

namespace CustomDevice {
	class WindowsScreen : Form {

		internal static WindowsScreen winScreen = null;

		public static WindowsScreen WinScreen {
			get {
				if (winScreen == null) {
					using (Graphics g = DeviceGraphics.GetScreen()) {
					}
				}
				return winScreen;
			}
		}

		public WindowsScreen(int width, int height) {
			this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
			this.SetStyle(ControlStyles.FixedWidth, true);
			this.SetStyle(ControlStyles.FixedHeight, true);
			this.SetStyle(ControlStyles.Opaque, true);
			this.SetStyle(ControlStyles.UserPaint, true);

			this.formSurface = new Bitmap(width, height);

			this.ClientSize = new Size(width, height);

			this.Show();
			this.Activate();

		}

		private Bitmap formSurface;

		public Bitmap FormSurface {
			get {
				return this.formSurface;
			}
		}

		protected override void OnPaint(PaintEventArgs e) {
			lock (this) {
				e.Graphics.DrawImageUnscaled(this.formSurface, new Point());
			}
		}

		internal static void WindowsMessagePump(object state) {
			WindowsScreen.winScreen = new WindowsScreen(DeviceGraphics.ScreenXSize, DeviceGraphics.ScreenYSize);
			for (; ; ) {
				Application.DoEvents();
				Thread.Sleep(40);
				WindowsScreen.winScreen.Refresh();
			}
		}

		private bool[] keyState = new bool[12];

		private KeyPadKey MapKey(Keys pcKey, out bool isValid) {
			isValid = true;
			switch (pcKey) {
				case Keys.D0:
				case Keys.NumPad0:
					return KeyPadKey.B0;
				case Keys.D1:
				case Keys.NumPad1:
					return KeyPadKey.B1;
				case Keys.D2:
				case Keys.NumPad2:
					return KeyPadKey.B2;
				case Keys.D3:
				case Keys.NumPad3:
					return KeyPadKey.B3;
				case Keys.D4:
				case Keys.NumPad4:
					return KeyPadKey.B4;
				case Keys.D5:
				case Keys.NumPad5:
					return KeyPadKey.B5;
				case Keys.D6:
				case Keys.NumPad6:
					return KeyPadKey.B6;
				case Keys.D7:
				case Keys.NumPad7:
					return KeyPadKey.B7;
				case Keys.D8:
				case Keys.NumPad8:
					return KeyPadKey.B8;
				case Keys.D9:
				case Keys.NumPad9:
					return KeyPadKey.B9;
				case Keys.Enter:
					return KeyPadKey.OK;
				case Keys.Escape:
					return KeyPadKey.C;
				default:
					isValid = false;
					return KeyPadKey.B0;
			}
		}

		protected override void OnKeyDown(KeyEventArgs e) {
			bool isValid;
			KeyPadKey key = this.MapKey(e.KeyCode, out isValid);
			if (isValid) {
				e.Handled = true;
				this.keyState[(int)key] = true;
				this.latestKeyDown = key;
				return;
			}
			base.OnKeyDown(e);
		}

		protected override void OnKeyUp(KeyEventArgs e) {
			bool isValid;
			KeyPadKey key = this.MapKey(e.KeyCode, out isValid);
			if (isValid) {
				e.Handled = true;
				this.keyState[(int)key] = false;
				this.latestKeyUp = key;
				return;
			}
			base.OnKeyUp(e);
		}

		public bool IsKeyDown(KeyPadKey key) {
			return this.keyState[(int)key];
		}

		private KeyPadKey? latestKeyUp = null;
		public bool LatestKeyUp(out KeyPadKey key) {
			if (this.latestKeyUp.HasValue) {
				key = this.latestKeyUp.Value;
				this.latestKeyUp = null;
				return true;
			} else {
				key = KeyPadKey.B0;
				return false;
			}
		}

		private KeyPadKey? latestKeyDown = null;
		public bool LatestKeyDown(out KeyPadKey key) {
			if (this.latestKeyDown.HasValue) {
				key = this.latestKeyDown.Value;
				this.latestKeyDown = null;
				return true;
			} else {
				key = KeyPadKey.B0;
				return false;
			}
		}
	}
}


================================================
FILE: License.txt
================================================
Copyright (c) 2012 DotNetAnywhere

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.



================================================
FILE: Managed.sln
================================================

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 11
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "corlib", "corlib\corlib.csproj", "{6A77A7C0-FB66-4CAA-94EE-142DBA20655D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Drawing", "System.Drawing\System.Drawing.csproj", "{0F7F935F-E3F5-40AD-BD22-0BA43721560F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System", "System\System.csproj", "{388F5D73-0211-4A64-B501-92CDC4E32ACF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Snake", "Snake\Snake.csproj", "{C26A3309-7A61-40B6-9998-69B78CF226C1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomDevice", "CustomDevice\CustomDevice.csproj", "{43619745-0A80-499E-907C-E733FF3DA2BE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Core", "System.Core\System.Core.csproj", "{429C3225-3A36-427A-A44E-2AA3563FCD6D}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		LocalTest|Any CPU = LocalTest|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{0F7F935F-E3F5-40AD-BD22-0BA43721560F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{0F7F935F-E3F5-40AD-BD22-0BA43721560F}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{0F7F935F-E3F5-40AD-BD22-0BA43721560F}.LocalTest|Any CPU.ActiveCfg = Release|Any CPU
		{0F7F935F-E3F5-40AD-BD22-0BA43721560F}.LocalTest|Any CPU.Build.0 = Release|Any CPU
		{0F7F935F-E3F5-40AD-BD22-0BA43721560F}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{0F7F935F-E3F5-40AD-BD22-0BA43721560F}.Release|Any CPU.Build.0 = Release|Any CPU
		{388F5D73-0211-4A64-B501-92CDC4E32ACF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{388F5D73-0211-4A64-B501-92CDC4E32ACF}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{388F5D73-0211-4A64-B501-92CDC4E32ACF}.LocalTest|Any CPU.ActiveCfg = Release|Any CPU
		{388F5D73-0211-4A64-B501-92CDC4E32ACF}.LocalTest|Any CPU.Build.0 = Release|Any CPU
		{388F5D73-0211-4A64-B501-92CDC4E32ACF}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{388F5D73-0211-4A64-B501-92CDC4E32ACF}.Release|Any CPU.Build.0 = Release|Any CPU
		{429C3225-3A36-427A-A44E-2AA3563FCD6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{429C3225-3A36-427A-A44E-2AA3563FCD6D}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{429C3225-3A36-427A-A44E-2AA3563FCD6D}.LocalTest|Any CPU.ActiveCfg = Release|Any CPU
		{429C3225-3A36-427A-A44E-2AA3563FCD6D}.LocalTest|Any CPU.Build.0 = Release|Any CPU
		{429C3225-3A36-427A-A44E-2AA3563FCD6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{429C3225-3A36-427A-A44E-2AA3563FCD6D}.Release|Any CPU.Build.0 = Release|Any CPU
		{43619745-0A80-499E-907C-E733FF3DA2BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{43619745-0A80-499E-907C-E733FF3DA2BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{43619745-0A80-499E-907C-E733FF3DA2BE}.LocalTest|Any CPU.ActiveCfg = Release|Any CPU
		{43619745-0A80-499E-907C-E733FF3DA2BE}.LocalTest|Any CPU.Build.0 = Release|Any CPU
		{43619745-0A80-499E-907C-E733FF3DA2BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{43619745-0A80-499E-907C-E733FF3DA2BE}.Release|Any CPU.Build.0 = Release|Any CPU
		{6A77A7C0-FB66-4CAA-94EE-142DBA20655D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{6A77A7C0-FB66-4CAA-94EE-142DBA20655D}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{6A77A7C0-FB66-4CAA-94EE-142DBA20655D}.LocalTest|Any CPU.ActiveCfg = LocalTest|Any CPU
		{6A77A7C0-FB66-4CAA-94EE-142DBA20655D}.LocalTest|Any CPU.Build.0 = LocalTest|Any CPU
		{6A77A7C0-FB66-4CAA-94EE-142DBA20655D}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{6A77A7C0-FB66-4CAA-94EE-142DBA20655D}.Release|Any CPU.Build.0 = Release|Any CPU
		{C26A3309-7A61-40B6-9998-69B78CF226C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{C26A3309-7A61-40B6-9998-69B78CF226C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{C26A3309-7A61-40B6-9998-69B78CF226C1}.LocalTest|Any CPU.ActiveCfg = Release|Any CPU
		{C26A3309-7A61-40B6-9998-69B78CF226C1}.LocalTest|Any CPU.Build.0 = Release|Any CPU
		{C26A3309-7A61-40B6-9998-69B78CF226C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{C26A3309-7A61-40B6-9998-69B78CF226C1}.Release|Any CPU.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
EndGlobal


================================================
FILE: Snake/ASnake.cs
================================================
// Copyright (c) 2012 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

namespace Snake {
	class ASnake {

		private SnakePit snakePit;
		private Queue<Point> bodyParts = new Queue<Point>();
		private Point head;
		private int xSpeed, ySpeed;
		private Color col;
		private int increaseBy;

		public ASnake(SnakePit snakePit, int startLength, Point startPosition, Color col) {
			this.snakePit = snakePit;
			for (int i = 0; i < startLength; i++) {
				Point cell = new Point(startPosition.X - startLength + i + 1, startPosition.Y);
				snakePit.SetCell(cell, col);
				this.bodyParts.Enqueue(cell);
				this.head = cell;
			}
			this.col = col;
			this.xSpeed = 1;
			this.ySpeed = 0;
			this.increaseBy = 0;
			snakePit.AddSnake(this);
		}

		public CrashType Move() {
			if (this.increaseBy == 0) {
				Point tail = this.bodyParts.Dequeue();
				snakePit.ClearCell(tail);
			} else {
				this.increaseBy--;
			}
			this.head.X += this.xSpeed;
			this.head.Y += this.ySpeed;
			if (this.DoesIntersect(this.head)) {
				Console.WriteLine("!!!SELF CRASH!!!");
				return CrashType.Self;
			}
			this.bodyParts.Enqueue(this.head);
			snakePit.SetCell(this.head, this.col);
			CrashType crash = this.snakePit.IsCrash(head);
			return crash;
		}

		public void DrawHead() {
			snakePit.SetCell(this.head, this.col);
		}

		public void SetDirection(int x, int y) {
			// Do nothing if trying to set current or opposite direction
			if (x != 0 && this.xSpeed != 0) {
				return;
			}
			if (y != 0 && this.ySpeed != 0) {
				return;
			}
			// Set new speeds
			this.xSpeed = x;
			this.ySpeed = y;
		}

		public bool DoesIntersect(IEnumerable<Point> cells) {
			foreach (Point cell in cells) {
				if (this.DoesIntersect(cell)) {
					return true;
				}
			}
			return false;
		}

		public bool DoesIntersect(Point cell) {
			foreach (Point p in this.bodyParts) {
				if (p == cell) {
					return true;
				}
			}
			return false;
		}

		public void IncreaseLength(int amount) {
			this.increaseBy += amount;
		}

		public Point Head {
			get {
				return this.head;
			}
		}

	}
}


================================================
FILE: Snake/CrashType.cs
================================================
// Copyright (c) 2012 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace Snake {
	public enum CrashType {
		None,
		Self,
		Wall,
		Food,
	}
}


================================================
FILE: Snake/Program.cs
================================================
// Copyright (c) 2012 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Threading;
using CustomDevice;

namespace Snake {
	class Program {
		static void Main(string[] args) {
			for (; ; ) {
				bool res = Play();
				if (!res) {
					break;
				}
			}
		}

		static bool Play() {

			Font f = new Font("tahoma", 25);
			SnakePit snakePit = new SnakePit();
			Random rnd = new Random();
			int delay = 300;

			ASnake snake = new ASnake(snakePit, 5, snakePit.Centre, Color.Black);

			CrashType crashType;
			for (; ; ) {
				Thread.Sleep(delay);
				KeyPadKey key;
				if (KeyPad.LatestKeyDown(out key)) {
					switch (key) {
					case KeyPadKey.B6: // Left
						snake.SetDirection(-1, 0);
						break;
					case KeyPadKey.B7: // Down
						snake.SetDirection(0, 1);
						break;
					case KeyPadKey.B8: // Up
						snake.SetDirection(0, -1);
						break;
					case KeyPadKey.B9: // Right
						snake.SetDirection(1, 0);
						break;
					case KeyPadKey.C:
						return false;
					}
				}
				crashType = snake.Move();
				bool finish = false;
				switch (crashType) {
				case CrashType.None:
					break;
				case CrashType.Self:
				case CrashType.Wall:
				default:
					finish = true;
					break;
				case CrashType.Food:
					bool levelUp = snakePit.EatFood();
					if (levelUp) {
						delay = (delay * 3) / 4;
					}
					snake.IncreaseLength(4);
					break;

				}
				snake.DrawHead();
				if (finish) {
					break;
				}

				int r = rnd.Next(1000);
				if (r < 50) {
					snakePit.CreateFood(r < 5);
				}
				r = rnd.Next(1000);
				if (r < 20) {
					snakePit.AddObstacle();
				}
			}
			snakePit.Msg(crashType.ToString());
			Thread.Sleep(5000);

			return true;
		}
	}
}


================================================
FILE: Snake/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Snake")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Docobo")]
[assembly: AssemblyProduct("Snake")]
[assembly: AssemblyCopyright("Copyright © Docobo 2007")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("a65d79de-9fdb-4e50-aa31-5aff8c5f8744")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]


================================================
FILE: Snake/Snake.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>9.0.30729</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{C26A3309-7A61-40B6-9998-69B78CF226C1}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Snake</RootNamespace>
    <AssemblyName>Snake</AssemblyName>
    <FileUpgradeFlags>
    </FileUpgradeFlags>
    <UpgradeBackupLocation>
    </UpgradeBackupLocation>
    <OldToolsVersion>3.5</OldToolsVersion>
    <IsWebBootstrapper>false</IsWebBootstrapper>
    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
    <PublishUrl>publish\</PublishUrl>
    <Install>true</Install>
    <InstallFrom>Disk</InstallFrom>
    <UpdateEnabled>false</UpdateEnabled>
    <UpdateMode>Foreground</UpdateMode>
    <UpdateInterval>7</UpdateInterval>
    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
    <UpdatePeriodically>false</UpdatePeriodically>
    <UpdateRequired>false</UpdateRequired>
    <MapFileExtensions>true</MapFileExtensions>
    <ApplicationRevision>0</ApplicationRevision>
    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
    <UseApplicationTrust>false</UseApplicationTrust>
    <BootstrapperEnabled>true</BootstrapperEnabled>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <FileAlignment>512</FileAlignment>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="ASnake.cs" />
    <Compile Include="CrashType.cs" />
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="SnakePit.cs" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\CustomDevice\CustomDevice.csproj">
      <Project>{43619745-0A80-499E-907C-E733FF3DA2BE}</Project>
      <Name>CustomDevice</Name>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
      <Visible>False</Visible>
      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
      <Install>true</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
  <PropertyGroup>
    <PostBuildEvent>xcopy $(TargetPath) $(SolutionDir)Builds\$(ConfigurationName)\ /Y</PostBuildEvent>
  </PropertyGroup>
</Project>

================================================
FILE: Snake/SnakePit.cs
================================================
// Copyright (c) 2012 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using CustomDevice;
using System.Drawing.Drawing2D;

namespace Snake {
	class SnakePit {

		private const int cellSize = 8;
		private const int scoreBoardHeight = 48;

		private Graphics screen;
		private int cellOfsX, cellOfsY;
		private int numCellsX, numCellsY;
		private Random rnd;
		private Point[] food;
		private List<ASnake> snakes = new List<ASnake>();
		private int score, level;
		private List<Point[]> obstacles = new List<Point[]>();

		public SnakePit() {
			this.screen = DeviceGraphics.GetScreen();
			this.screen.Clear(Color.White);
			this.numCellsX = (DeviceGraphics.ScreenXSize / cellSize) - 2;
			this.numCellsY = ((DeviceGraphics.ScreenYSize - scoreBoardHeight) / cellSize) - 2;
			this.cellOfsX = cellSize;
			this.cellOfsY = cellSize;
			this.rnd = new Random();
			this.food = null;
			this.score = 0;
			this.level = 1;

			using (Brush brush = new HatchBrush(HatchStyle.DiagonalCross, Color.Black, Color.White)) {
				this.screen.FillRectangle(brush, 0, 0, DeviceGraphics.ScreenXSize, cellSize);
				this.screen.FillRectangle(brush, 0, cellSize, cellSize, this.numCellsY * cellSize);
				this.screen.FillRectangle(brush, (1 + this.numCellsX) * cellSize, cellSize, cellSize, this.numCellsY * cellSize);
				this.screen.FillRectangle(brush, 0, (1 + this.numCellsY) * cellSize, DeviceGraphics.ScreenXSize, cellSize);
			}
			this.screen.DrawRectangle(Pens.Black, cellSize - 1, cellSize - 1,
				this.numCellsX * cellSize + 1, this.numCellsY * cellSize + 1);

			using (Font f = new Font("tahoma", 15)) {
				using (StringFormat sf = new StringFormat()) {
					sf.Alignment = StringAlignment.Center;
					sf.LineAlignment = StringAlignment.Center;
					this.screen.DrawString("<", f, Brushes.Black, new RectangleF(0, 220, 64, 20), sf);
					this.screen.DrawString("v", f, Brushes.Black, new RectangleF(64, 220, 64, 20), sf);
					this.screen.DrawString("^", f, Brushes.Black, new RectangleF(128, 220, 64, 20), sf);
					this.screen.DrawString(">", f, Brushes.Black, new RectangleF(192, 220, 64, 20), sf);
				}
			}

			this.ShowScore();
		}

		private void FillCell(Point cell, Color col) {
			using (Brush brush = new SolidBrush(col)) {
				screen.FillRectangle(brush,
					this.cellOfsX + cell.X * cellSize, this.cellOfsY + cell.Y * cellSize, cellSize, cellSize);
			}
		}

		public void FillAndOutlineCells(IEnumerable<Point> points, Color fillCol, Color outlineCol) {
			using (Brush brush = new SolidBrush(fillCol)) {
				this.FillAndOutlineCells(points, brush, outlineCol);
			}
		}

		public void FillAndOutlineCells(IEnumerable<Point> points, Brush fillBrush, Color outlineCol) {
			int minX = int.MaxValue, maxX = int.MinValue;
			int minY = int.MaxValue, maxY = int.MinValue;
			foreach (Point p in points) {
				minX = Math.Min(minX, p.X);
				maxX = Math.Max(maxX, p.X);
				minY = Math.Min(minY, p.Y);
				maxY = Math.Max(maxY, p.Y);
			}
			int x = this.cellOfsX + minX * cellSize;
			int y = this.cellOfsY + minY * cellSize;
			int width = (maxX - minX + 1) * cellSize;
			int height = (maxY - minY + 1) * cellSize;
			this.screen.FillRectangle(fillBrush, x, y, width, height);
			using (Pen pen = new Pen(outlineCol)) {
				this.screen.DrawRectangle(pen, x, y, width - 1, height - 1);
			}
		}

		public void AddSnake(ASnake snake) {
			this.snakes.Add(snake);
		}

		public Point Centre {
			get {
				return new Point(numCellsX >> 1, numCellsY >> 1);
			}
		}

		public Size Size {
			get {
				return new Size(numCellsX, numCellsY);
			}
		}

		public void SetCell(Point cell, Color col) {
			this.FillCell(cell, col);
		}

		public void ClearCell(Point cell) {
			this.FillCell(cell, Color.White);
		}

		public bool IsCrashObstacle(Point cell) {
			foreach (Point[] obs in this.obstacles) {
				foreach (Point pt in obs) {
					if (pt == cell) {
						return true;
					}
				}
			}
			return false;
		}

		public CrashType IsCrash(Point cell) {
			if (cell.X < 0 || cell.X >= this.numCellsX || cell.Y < 0 || cell.Y >= this.numCellsY) {
				return CrashType.Wall;
			}
			if (this.IsCrashObstacle(cell)) {
				return CrashType.Wall;
			}
			if (this.food != null) {
				for (int i = 0; i < this.food.Length; i++) {
					if (this.food[i] == cell) {
						return CrashType.Food;
					}
				}
			}
			return CrashType.None;
		}

		public void CreateFood(bool canMoveFood) {
			if (this.food != null && !canMoveFood) {
				// Don't move the food
				return;
			}
			this.RemoveFood();
			Point[] newFood;
			for (; ; ) {
				int x = this.rnd.Next(this.numCellsX - 1);
				int y = this.rnd.Next(this.numCellsY - 1);
				newFood = new Point[4];
				newFood[0] = new Point(x, y);
				newFood[1] = new Point(x + 1, y);
				newFood[2] = new Point(x, y + 1);
				newFood[3] = new Point(x + 1, y + 1);
				bool ok = true;
				foreach (ASnake snake in this.snakes) {
					if (snake.DoesIntersect(newFood)) {
						ok = false;
						break;
					}
				}
				if (ok) {
					foreach (Point pt in newFood) {
						if (IsCrashObstacle(pt)) {
							ok = false;
							break;
						}
					}
				}
				if (ok) {
					break;
				}
			}
			this.food = newFood;
			this.FillAndOutlineCells(this.food, Color.Gray, Color.Black);
		}

		public void RemoveFood() {
			if (this.food == null) {
				return;
			}
			for (int i = 0; i < this.food.Length; i++) {
				this.ClearCell(this.food[i]);
			}
			this.food = null;
		}

		public bool EatFood() {
			this.RemoveFood();
			this.score++;
			bool ret = false;
			if (this.score >= this.level * 4) {
				this.level++;
				ret = true;
			}
			this.ShowScore();
			return ret;
		}

		public void Msg(string msg) {
			using (Font f = new Font("tahoma", 40)) {
				this.screen.DrawString(msg, f, Brushes.Black, 30, 80);
			}
		}

		public void ShowScore() {
			this.screen.FillRectangle(Brushes.White, 0,
				DeviceGraphics.ScreenYSize - scoreBoardHeight, DeviceGraphics.ScreenXSize, scoreBoardHeight - 20);
			using (Font f = new Font("tahoma", 15)) {
				string s = string.Format("Level: {0}", this.level);
				this.screen.DrawString(s, f, Brushes.Black, 0, DeviceGraphics.ScreenYSize - scoreBoardHeight);
				s = string.Format("Score: {0}", this.score);
				this.screen.DrawString(s, f, Brushes.Black, DeviceGraphics.ScreenXSize >> 1, DeviceGraphics.ScreenYSize - scoreBoardHeight);
			}
		}

		public int Level {
			get {
				return this.level;
			}
		}

		private int Dist(Point a, Point b) {
			int dx = a.X - b.Y;
			int dy = a.Y - b.Y;
			return Math.Max(Math.Abs(dx), Math.Abs(dy));
		}

		public void AddObstacle() {
			Point[] obs;
			for (; ; ) {
				int x = this.rnd.Next(this.numCellsX - 1);
				int y = this.rnd.Next(this.numCellsY - 1);
				obs = new Point[4];
				obs[0] = new Point(x, y);
				obs[1] = new Point(x + 1, y);
				obs[2] = new Point(x, y + 1);
				obs[3] = new Point(x + 1, y + 1);
				bool ok = true;
				foreach (ASnake snake in this.snakes) {
					if (snake.DoesIntersect(obs) || this.Dist(snake.Head, obs[0]) < 10) {
						ok = false;
						break;
					}
				}
				if (ok) {
					break;
				}
			}
			using (HatchBrush brush = new HatchBrush(HatchStyle.DiagonalCross,Color.Black, Color.White)) {
				this.FillAndOutlineCells(obs, brush, Color.Black);
			}
			this.obstacles.Add(obs);
			if (this.obstacles.Count > this.Level * 2) {
				// Remove an obstacle
				obs = this.obstacles[0];
				foreach (Point pt in obs) {
					this.ClearCell(pt);
				}
				this.obstacles.RemoveAt(0);
			}
		}
	}
}


================================================
FILE: System/Properties/AssemblyInfo.cs
================================================
/*using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("System")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Docobo")]
[assembly: AssemblyProduct("System")]
[assembly: AssemblyCopyright("Copyright © Docobo 2007")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("ac7fc7c3-9352-46c9-a145-9737bfab7e1a")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Revision and Build Numbers 
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
*/

================================================
FILE: System/System.Collections.Generic/Queue.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;

namespace System.Collections.Generic {
	public class Queue<T> : IEnumerable<T>, ICollection, IEnumerable {
		T[] _array;
		int _head;
		int _tail;
		int _size;
		int _version;

		private const int INITIAL_SIZE = 16;

		public Queue() {
		}

		public Queue(int count) {
			if (count < 0)
				throw new ArgumentOutOfRangeException("count");

			_array = new T[count];
		}

		public Queue(IEnumerable<T> collection) {
			if (collection == null)
				throw new ArgumentNullException("collection");

			foreach (T t in collection)
				Enqueue(t);
		}

		public void Clear() {
			if (_array != null)
				Array.Clear(_array, 0, _array.Length);

			_head = _tail = _size = 0;
			_version++;
		}

		public bool Contains(T item) {
			if (item == null) {
				foreach (T t in this)
					if (t == null)
						return true;
			} else {
				foreach (T t in this)
					if (item.Equals(t))
						return true;
			}

			return false;
		}

		public void CopyTo(T[] array, int idx) {
			if (array == null)
				throw new ArgumentNullException();

			if ((uint)idx > (uint)array.Length)
				throw new ArgumentOutOfRangeException();

			if (array.Length - idx < _size)
				throw new ArgumentOutOfRangeException();

			if (_size == 0)
				return;

			int contents_length = _array.Length;
			int length_from_head = contents_length - _head;

			Array.Copy(_array, _head, array, idx, Math.Min(_size, length_from_head));
			if (_size > length_from_head)
				Array.Copy(_array, 0, array,
						idx + length_from_head,
						_size - length_from_head);

		}

		void ICollection.CopyTo(Array array, int idx) {
			if (array == null)
				throw new ArgumentNullException();

			if ((uint)idx < (uint)array.Length)
				throw new ArgumentOutOfRangeException();

			if (array.Length - idx < _size)
				throw new ArgumentOutOfRangeException();

			if (_size == 0)
				return;

			try {
				int contents_length = _array.Length;
				int length_from_head = contents_length - _head;

				Array.Copy(_array, _head, array, idx, Math.Min(_size, length_from_head));
				if (_size > length_from_head)
					Array.Copy(_array, 0, array,
							idx + length_from_head,
							_size - length_from_head);
			} catch (ArrayTypeMismatchException) {
				throw new ArgumentException();
			}
		}

		public T Dequeue() {
			T ret = Peek();

			// clear stuff out to make the GC happy
			_array[_head] = default(T);

			if (++_head == _array.Length)
				_head = 0;
			_size--;
			_version++;

			return ret;
		}

		public T Peek() {
			if (_size == 0)
				throw new InvalidOperationException();

			return _array[_head];
		}

		public void Enqueue(T item) {
			if (_array == null || _size == _array.Length)
				SetCapacity(Math.Max(_size * 2, 4));

			_array[_tail] = item;

			if (++_tail == _array.Length)
				_tail = 0;

			_size++;
			_version++;
		}

		public T[] ToArray() {
			T[] t = new T[_size];
			CopyTo(t, 0);
			return t;
		}

		public void TrimExcess() {
			if (_array != null && (_size < _array.Length * 0.9))
				SetCapacity(_size);
		}

		void SetCapacity(int new_size) {
			if (_array != null && new_size == _array.Length)
				return;

			if (new_size < _size)
				throw new InvalidOperationException("shouldnt happen");

			T[] new_data = new T[new_size];
			if (_size > 0)
				CopyTo(new_data, 0);

			_array = new_data;
			_tail = _size;
			_head = 0;
			_version++;
		}

		public int Count {
			get { return _size; }
		}

		bool ICollection.IsSynchronized {
			get { return false; }
		}

		object ICollection.SyncRoot {
			get { return this; }
		}

		public Enumerator GetEnumerator() {
			return new Enumerator(this);
		}

		IEnumerator<T> IEnumerable<T>.GetEnumerator() {
			return GetEnumerator();
		}

		IEnumerator IEnumerable.GetEnumerator() {
			return GetEnumerator();
		}

		public struct Enumerator : IEnumerator<T>, IEnumerator, IDisposable {
			const int NOT_STARTED = -2;

			// this MUST be -1, because we depend on it in move next.
			// we just decr the _size, so, 0 - 1 == FINISHED
			const int FINISHED = -1;

			Queue<T> q;
			int idx;
			int ver;

			internal Enumerator(Queue<T> q) {
				this.q = q;
				idx = NOT_STARTED;
				ver = q._version;
			}

			public void Dispose() {
				idx = NOT_STARTED;
			}

			public bool MoveNext() {
				if (ver != q._version)
					throw new InvalidOperationException();

				if (idx == NOT_STARTED)
					idx = q._size;

				return idx != FINISHED && --idx != FINISHED;
			}

			public T Current {
				get {
					if (idx < 0)
						throw new InvalidOperationException();

					return q._array[(q._size - 1 - idx + q._head) % q._array.Length];
				}
			}

			void IEnumerator.Reset() {
				if (ver != q._version)
					throw new InvalidOperationException();

				idx = NOT_STARTED;
			}

			object IEnumerator.Current {
				get { return Current; }
			}

		}
	}
}


================================================
FILE: System/System.Collections.Generic/Stack.cs
================================================
//
// System.Collections.Generic.Stack
//
// Authors:
//	Martin Baulig (martin@ximian.com)
//	Ben Maurer (bmaurer@ximian.com)
//
// (C) 2003, 2004 Novell, Inc.
//

//
// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
// 
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//

using System;
//using System.Runtime.InteropServices;

namespace System.Collections.Generic
{
	public class Stack <T> : IEnumerable <T>, ICollection, IEnumerable
	{
		T [] _array;
		int _size;
		int _version;
		
		private const int INITIAL_SIZE = 16;

		public Stack ()
		{
		}
		
		public Stack (int count)
		{
			if (count < 0)
				throw new ArgumentOutOfRangeException ("count");

			_array = new T [count];
		}
		
		public Stack (IEnumerable <T> collection)
		{
			if (collection == null)
				throw new ArgumentNullException ("collection");
			
			ICollection <T> col = collection as ICollection <T>;
			
			if (col != null) {
				_size = col.Count;
				_array = new T [_size];
				col.CopyTo (_array, 0);
			} else {
				foreach (T t in collection)
					Push (t);
			}
		}
		
		public void Clear ()
		{
			if (_array != null)
				Array.Clear (_array, 0, _array.Length);
			
			_size = 0;
			_version ++;
		}
		
		public bool Contains (T t)
		{		
			return _array != null && Array.IndexOf (_array, t, 0, _size) != -1;
		}
		
		public void CopyTo (T [] dest, int idx)
		{
			// this gets copied in the order that it is poped
			if (_array != null) {
				Array.Copy (_array, 0, dest, idx, _size);
				Array.Reverse (dest, idx, _size);
			}
		}
		
		public T Peek ()
		{
			if (_size == 0)
				throw new InvalidOperationException ();
			
			return _array [_size - 1];
		}
		
		public T Pop ()
		{
			if (_size == 0)
				throw new InvalidOperationException ();
			
			_version ++;
			T popped = _array [--_size];
			// clear stuff out to make the GC happy
			_array [_size] = default(T);
			return popped;
		}

		public void Push (T t)
		{
			if (_size == 0 || _size == _array.Length)
				Array.Resize <T> (ref _array, _size == 0 ? INITIAL_SIZE : 2 * _size);
			
			_version ++;
			
			_array [_size++] = t;
		}
		
		public T [] ToArray ()
		{
			T [] copy = new T [_size];
			CopyTo (copy, 0);
			return copy;
		}

		public void TrimExcess ()
		{
			if (_array != null && (_size < _array.Length * 0.9))
				Array.Resize <T> (ref _array, _size);
			_version ++;
		}
		
		public int Count {
			get { return _size; }
		}
		
		bool ICollection.IsSynchronized {
			get { return false; }
		}
		
		object ICollection.SyncRoot {
			get { return this; }
		}
		
		void ICollection.CopyTo (Array dest, int idx)
		{
			try {
				if (_array != null) {
					_array.CopyTo (dest, idx);
					Array.Reverse (dest, idx, _size);
				}
			} catch (ArrayTypeMismatchException) {
				throw new ArgumentException ();
			}
		}
		
		public Enumerator GetEnumerator ()
		{
			return new Enumerator (this);
		}

		IEnumerator <T> IEnumerable<T>.GetEnumerator ()
		{
			return GetEnumerator ();
		}

		IEnumerator IEnumerable.GetEnumerator ()
		{
			return GetEnumerator ();
		}
		
		public struct Enumerator : IEnumerator <T>, IEnumerator, IDisposable {
			const int NOT_STARTED = -2;
			
			// this MUST be -1, because we depend on it in move next.
			// we just decr the _size, so, 0 - 1 == FINISHED
			const int FINISHED = -1;
			
			Stack <T> parent;
			int idx;
			int _version;
			
			internal Enumerator (Stack <T> t)
			{
				parent = t;
				idx = NOT_STARTED;
				_version = t._version;
			}
			
			public void Dispose ()
			{
				idx = NOT_STARTED;
			}
			
			public bool MoveNext ()
			{
				if (_version != parent._version)
					throw new InvalidOperationException ();
				
				if (idx == -2)
					idx = parent._size;
				
				return idx != FINISHED && -- idx != FINISHED;
			}
			
			public T Current {
				get {
					if (idx < 0)
						throw new InvalidOperationException ();
					
					return parent._array [idx];
				}
			}
			
			void IEnumerator.Reset ()
			{
				if (_version != parent._version)
					throw new InvalidOperationException ();
				
				idx = NOT_STARTED;
			}
			
			object IEnumerator.Current {
				get { return Current; }
			}
			
		}
	}
}


================================================
FILE: System/System.ComponentModel/Win32Exception.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace System.ComponentModel {
	public class Win32Exception : ExternalException {

		private int nativeError = 0;

		public Win32Exception() : base("Win32 exception", 0) { }

		public Win32Exception(int err)
			: base("Win32 exception", err) {
			this.nativeError = err;
		}

		public Win32Exception(int err, string msg)
			: base(msg, err) {
			this.nativeError = err;
		}

		public int NativeErrorCode {
			get {
				return this.nativeError;
			}
		}

	}
}


================================================
FILE: System/System.Net/Dns.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.CompilerServices;

namespace System.Net {
	public static class Dns {

		[MethodImpl(MethodImplOptions.InternalCall)]
		extern private static int[] Internal_GetHostEnt(string dnsName, out string hostName);

		public static IPHostEntry GetHostEntry(string hostNameOrAddress) {
			IPAddress ipAddr;
			bool isIPAddr = IPAddress.TryParse(hostNameOrAddress, out ipAddr);
			if (!isIPAddr) {
				string hostName;
				int[] ips = Internal_GetHostEnt(hostNameOrAddress, out hostName);
				IPAddress[] addresses = new IPAddress[ips.Length];
				for (int i = 0; i < ips.Length; i++) {
					addresses[i] = new IPAddress((uint)ips[i]);
				}
				IPHostEntry hostEnt = new IPHostEntry();
				hostEnt.AddressList = addresses;
				hostEnt.HostName = hostName;
				return hostEnt;
			} else {
				return GetHostEntry(ipAddr);
			}
		}

		public static IPHostEntry GetHostEntry(IPAddress addr) {
			if (addr == null) {
				throw new ArgumentNullException("address");
			}
			throw new NotImplementedException();
		}

	}
}


================================================
FILE: System/System.Net/EndPoint.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;

namespace System.Net {
	public abstract class EndPoint {

		protected EndPoint() { }

		public virtual EndPoint Create(SocketAddress address) {
			throw new NotSupportedException();
		}

		public virtual AddressFamily AddressFamily {
			get {
				throw new NotSupportedException();
			}
		}

		public virtual SocketAddress Serialize() {
			throw new NotSupportedException();
		}

	}
}


================================================
FILE: System/System.Net/IPAddress.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;

namespace System.Net {
	public class IPAddress {

		public static readonly IPAddress Any = new IPAddress(0);
		public static readonly IPAddress Broadcast = IPAddress.Parse("255.255.255.255");
		public static readonly IPAddress Loopback = IPAddress.Parse("127.0.0.1");
		public static readonly IPAddress None = IPAddress.Parse("255.255.255.255");

		public static IPAddress Parse(string ip) {
			IPAddress addr;
			if (TryParse(ip, out addr)) {
				return addr;
			}
			throw new FormatException("An invalid IP address was specified");
		}

		public static bool TryParse(string ip, out IPAddress address) {
			// Only handle IPv4
			if (ip == null) {
				throw new ArgumentNullException("ip");
			}
			if (ip.Length == 0 || ip == " ") {
				address = new IPAddress(0);
				return true;
			}
			string[] parts = ip.Split('.');
			if (parts.Length != 4) {
				address = null;
				return false;
			}
			uint a = 0;
			for (int i = 0; i < 4; i++) {
				int val;
				if (!int.TryParse(parts[i], out val)) {
					address = null;
					return false;
				}
				a |= ((uint)val) << (i << 3);
			}
			address = new IPAddress((long)a);
			return true;
		}

		private uint ip4Address;
		private AddressFamily family = AddressFamily.InterNetwork;

		public IPAddress(long addr) {
			this.ip4Address = (uint)addr;
		}

		public AddressFamily AddressFamily {
			get {
				return this.family;
			}
		}

		internal uint InternalIPv4Address {
			get { return this.ip4Address; }
		}

		public override int GetHashCode() {
			return (int)this.ip4Address;
		}

		public override bool Equals(object obj) {
			IPAddress a = obj as IPAddress;
			return a != null && a.ip4Address == this.ip4Address;
		}

		public override string ToString() {
			return string.Format("{0}.{1}.{2}.{3}",
				this.ip4Address & 0xff, (this.ip4Address >> 8) & 0xff,
				(this.ip4Address >> 16) & 0xff, this.ip4Address >> 24);
		}
	}
}


================================================
FILE: System/System.Net/IPEndPoint.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;

namespace System.Net {
	public class IPEndPoint : EndPoint {

		public const int MinPort = 0;
		public const int MaxPort = 0xffff;

		public IPAddress address;
		public int port;

		public IPEndPoint(IPAddress addr, int port) {
			if (addr == null) {
				throw new ArgumentNullException();
			}
			this.Address = addr;
			this.Port = port;
		}

		public IPEndPoint(long addr, int port) : this(new IPAddress(addr), port) { }

		public IPAddress Address {
			get {
				return this.address;
			}
			set {
				this.address = value;
			}
		}

		public int Port {
			get {
				return this.port;
			}
			set {
				if (value < MinPort || value > MaxPort) {
					throw new ArgumentOutOfRangeException("Port");
				}
				this.port = value;
			}
		}

		public override AddressFamily AddressFamily {
			get {
				return this.address.AddressFamily;
			}
		}

		public override EndPoint Create(SocketAddress sockaddr) {
			if (sockaddr.Size < 8) {
				return null;
			}
			if (sockaddr.Family != AddressFamily.InterNetwork) {
				// Only support IP4
				return null;
			}
			int port = (((int)sockaddr[2]) << 8) | (int)sockaddr[3];
			long address = (((long)sockaddr[7]) << 24) |
				(((long)sockaddr[6]) << 16) |
				(((long)sockaddr[5]) << 8) |
				(long)sockaddr[4];
			return new IPEndPoint(address, port);
		}

		public override SocketAddress Serialize() {
			SocketAddress sockaddr = null;
			switch (this.address.AddressFamily) {
				case AddressFamily.InterNetwork:
					// .net produces a 16 byte buffer, even though
					// only 8 bytes are used. I guess its just a
					// holdover from struct sockaddr padding.
					sockaddr = new SocketAddress(AddressFamily.InterNetwork, 16);

					// bytes 2 and 3 store the port, the rest
					// stores the address
					sockaddr[2] = (byte)((this.port >> 8) & 0xff);
					sockaddr[3] = (byte)(this.port & 0xff);
					uint addr = this.address.InternalIPv4Address;
					sockaddr[4] = (byte)(addr & 0xff);
					sockaddr[5] = (byte)((addr >> 8) & 0xff);
					sockaddr[6] = (byte)((addr >> 16) & 0xff);
					sockaddr[7] = (byte)((addr >> 24) & 0xff);
					break;
			}
			return sockaddr;
		}

		public override string ToString() {
			return this.address.ToString() + ":" + this.port.ToString();
		}

		public override int GetHashCode() {
			return this.address.GetHashCode() + this.port;
		}

		public override bool Equals(Object obj) {
			IPEndPoint p = obj as IPEndPoint;
			return p != null &&
				   p.port == this.port &&
				   p.address.Equals(this.address);
		}

	}
}


================================================
FILE: System/System.Net/IPHostEntry.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace System.Net {
	public class IPHostEntry {

		private IPAddress[] addressList;
		private String[] aliases;
		private String hostName;

		public IPHostEntry() {
		}

		public IPAddress[] AddressList {
			get { return addressList; }
			set { addressList = value; }
		}

		public string[] Aliases {
			get { return aliases; }
			set { aliases = value; }
		}

		public string HostName {
			get { return hostName; }
			set { hostName = value; }
		}

	}
}


================================================
FILE: System/System.Net/SocketAddress.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;

namespace System.Net {
	public class SocketAddress {
		private byte[] data;

		public SocketAddress(AddressFamily family, int size) {
			if (size < 2) {
				throw new ArgumentOutOfRangeException("size is too small");
			}

			data = new byte[size];
			data[0] = (byte)family;
			data[1] = (byte)((int)family >> 8);
		}

		public SocketAddress(AddressFamily family) : this(family, 32) { }

		public AddressFamily Family {
			get {
				return (AddressFamily)(data[0] + (data[1] << 8));
			}
		}

		public int Size {
			get {
				return data.Length;
			}
		}

		public byte this[int offset] {
			get {
				return (data[offset]);
			}

			set {
				data[offset] = value;
			}
		}

		public override string ToString() {
			string af = ((AddressFamily)data[0]).ToString();
			int size = data.Length;
			string ret = af + ":" + size + ":{";

			for (int i = 2; i < size; i++) {
				int val = (int)data[i];
				ret = ret + val;
				if (i < size - 1) {
					ret = ret + ",";
				}
			}

			ret = ret + "}";

			return (ret);
		}

		public override bool Equals(object obj) {
			if (obj is System.Net.SocketAddress &&
				((System.Net.SocketAddress)obj).data.Length == data.Length) {
				byte[] otherData = ((System.Net.SocketAddress)obj).data;
				for (int i = 0; i < data.Length; i++)
					if (otherData[i] != data[i])
						return false;

				return true;
			}

			return false;
		}

		public override int GetHashCode() {
			int code = 0;

			for (int i = 0; i < data.Length; i++)
				code += data[i] + i;

			return code;
		}
	}
}


================================================
FILE: System/System.Net.Sockets/AddressFamily.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace System.Net.Sockets {
	public enum AddressFamily {
		Unknown = -1,
		Unspecified = 0,
		Unix = 1,
		InterNetwork = 2,
		ImpLink = 3,
		Pup = 4,
		Chaos = 5,
		NS = 6,
		Ipx = 6,
		Iso = 7,
		Osi = 7,
		Ecma = 8,
		DataKit = 9,
		Ccitt = 10,
		Sna = 11,
		DecNet = 12,
		DataLink = 13,
		Lat = 14,
		HyperChannel = 15,
		AppleTalk = 16,
		NetBios = 17,
		VoiceView = 18,
		FireFox = 19,
		Banyan = 21,
		Atm = 22,
		InterNetworkV6 = 23,
		Cluster = 24,
		Ieee12844 = 25,
		Irda = 26,
		NetworkDesigners = 28,
		Max = 29,
	}
}


================================================
FILE: System/System.Net.Sockets/ProtocolType.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace System.Net.Sockets {
	public enum ProtocolType {
		IP = 0,
		Icmp = 1,
		Igmp = 2,
		Ggp = 3,
		Tcp = 6,
		Pup = 12,
		Udp = 17,
		Idp = 22,
		IPv6 = 41,
		ND = 77,
		Raw = 255,
		Unspecified = 0,
		Ipx = 1000,
		Spx = 1256,
		SpxII = 1257,
		Unknown = -1,
		IPv4 = 4,
		IPv6RoutingHeader = 43,
		IPv6FragmentHeader = 44,
		IPSecEncapsulatingSecurityPayload = 50,
		IPSecAuthenticationHeader = 51,
		IcmpV6 = 58,
		IPv6NoNextHeader = 59,
		IPv6DestinationOptions = 60,
		IPv6HopByHopOptions = 0,
	}
}


================================================
FILE: System/System.Net.Sockets/Socket.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.CompilerServices;

namespace System.Net.Sockets {
	public class Socket : IDisposable {

		#region Internal Methods

		[MethodImpl(MethodImplOptions.InternalCall)]
		extern private static IntPtr Internal_CreateSocket(int family, int type, int proto, out int error);

		[MethodImpl(MethodImplOptions.InternalCall)]
		extern private static void Internal_Close(IntPtr native);

		[MethodImpl(MethodImplOptions.InternalCall)]
		extern private static void Internal_Bind(IntPtr native, uint address, int port, out int error);

		[MethodImpl(MethodImplOptions.InternalCall)]
		extern private static void Internal_Listen(IntPtr native, int backLog, out int error);

		[MethodImpl(MethodImplOptions.InternalCall)]
		extern private static IntPtr Internal_Accept(IntPtr native, out int error);

		[MethodImpl(MethodImplOptions.InternalCall)]
		extern private static void Internal_Connect(IntPtr native, uint address, int port, out int error);

		[MethodImpl(MethodImplOptions.InternalCall)]
		extern private static int Internal_Receive(IntPtr native, byte[] buffer, int offset, int size, int flags, out int error);

		[MethodImpl(MethodImplOptions.InternalCall)]
		extern private static int Internal_Send(IntPtr native, byte[] buffer, int offset, int size, int flags, out int error);

		#endregion

		private IntPtr native;
		private AddressFamily family;
		private SocketType type;
		private ProtocolType proto;

		public Socket(AddressFamily family, SocketType type, ProtocolType proto) {
			this.family = family;
			this.type = type;
			this.proto = proto;

			int error;
			this.native = Internal_CreateSocket((int)family, (int)type, (int)proto, out error);
			this.CheckError(error);
		}

		private Socket(AddressFamily family, SocketType type, ProtocolType proto, IntPtr native) {
			this.family = family;
			this.type = type;
			this.proto = proto;
			this.native = native;
		}

		~Socket() {
			this.Dispose(false);
		}

		private void Dispose(bool disposing) {
			if (this.native != IntPtr.Zero) {
				Internal_Close(this.native);
				this.native = IntPtr.Zero;
				if (disposing) {
					GC.SuppressFinalize(this);
				}
			}
		}

		void IDisposable.Dispose() {
			this.Dispose(true);
		}

		public void Close() {
			this.Dispose(true);
		}

		private void CheckDisposed() {
			if (this.native == IntPtr.Zero) {
				throw new ObjectDisposedException(this.GetType().ToString());
			}
		}

		private void CheckError(int error) {
			if (error != 0) {
				Console.WriteLine("SOCKET_ERROR {0}", error);
				throw new SocketException(error);
			}
		}

		private void GetIPInfo(EndPoint ep, out uint addr, out int port) {
			if (ep.AddressFamily != AddressFamily.InterNetwork) {
				throw new ArgumentException("EndPoint", "Can only handle IPv4 addresses");
			}
			SocketAddress sockAddr = ep.Serialize();
			port = (((int)sockAddr[2]) << 8) | sockAddr[3];
			addr = ((((uint)sockAddr[7]) << 24) | (((uint)sockAddr[6]) << 16) |
				(((uint)sockAddr[5]) << 8) | (uint)sockAddr[4]);
		}

		public void Bind(EndPoint epLocal) {
			this.CheckDisposed();
			if (epLocal == null) {
				throw new ArgumentNullException("epLocal");
			}
			int port;
			uint addr;
			this.GetIPInfo(epLocal, out addr, out port);
			int error;
			Internal_Bind(this.native, addr, port, out error);
			this.CheckError(error);
		}

		public void Listen(int backLog) {
			this.CheckDisposed();
			int error;
			Internal_Listen(this.native, backLog, out error);
			this.CheckError(error);
		}

		public Socket Accept() {
			this.CheckDisposed();
			int error;
			IntPtr socket = Internal_Accept(this.native, out error);
			this.CheckError(error);
			return new Socket(this.family, this.type, this.proto, socket);
		}

		public void Connect(EndPoint epRemote) {
			this.CheckDisposed();
			if (epRemote == null) {
				throw new ArgumentNullException("epRemote");
			}
			int port;
			uint addr;
			this.GetIPInfo(epRemote, out addr, out port);
			int error;
			Internal_Connect(this.native, addr, port, out error);
			this.CheckError(error);
		}

		public int Send(byte[] buffer) {
			return this.Send(buffer, 0, buffer.Length, SocketFlags.None);
		}

		public int Send(byte[] buffer, SocketFlags flags) {
			return this.Send(buffer, 0, buffer.Length, flags);
		}

		public int Send(byte[] buffer, int size, SocketFlags flags) {
			return this.Send(buffer, 0, size, flags);
		}

		public int Send(byte[] buffer, int offset, int size, SocketFlags flags) {
			this.CheckDisposed();
			if (buffer == null) {
				throw new ArgumentNullException("buffer");
			}
			if (offset < 0 || size < 0 || offset + size > buffer.Length) {
				throw new ArgumentOutOfRangeException();
			}
			int error;
			int ret = Internal_Send(this.native, buffer, offset, size, (int)flags, out error);
			this.CheckError(error);
			return ret;
		}

		public int Receive(byte[] buffer) {
			return this.Receive(buffer, 0, buffer.Length, SocketFlags.None);
		}

		public int Receive(byte[] buffer, SocketFlags flags) {
			return this.Receive(buffer, 0, buffer.Length, flags);
		}

		public int Receive(byte[] buffer, int size, SocketFlags flags) {
			return this.Receive(buffer, 0, size, flags);
		}

		public int Receive(byte[] buffer, int offset, int size, SocketFlags flags) {
			this.CheckDisposed();
			if (buffer == null) {
				throw new ArgumentNullException("buffer");
			}
			if (offset < 0 || size < 0 || offset + size > buffer.Length) {
				throw new ArgumentOutOfRangeException();
			}
			int error;
			int ret = Internal_Receive(this.native, buffer, offset, size, (int)flags, out error);
			this.CheckError(error);
			return ret;
		}
	}
}


================================================
FILE: System/System.Net.Sockets/SocketException.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;

namespace System.Net.Sockets {
	public class SocketException : Win32Exception {

		public SocketException(int error) : base(error) { }

		public override int ErrorCode {
			get {
				return NativeErrorCode;
			}
		}

	}
}


================================================
FILE: System/System.Net.Sockets/SocketFlags.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace System.Net.Sockets {
	[Flags]
	public enum SocketFlags {
		None = 0x00000000,
		OutOfBand = 0x00000001,
		Peek = 0x00000002,
		DontRoute = 0x00000004,
		MaxIOVectorLength = 0x00000010,
		Truncated = 0x00000100,
		ControlDataTruncated = 0x00000200,
		Broadcast = 0x00000400,
		Multicast = 0x00000800,
		Partial = 0x00008000,
	}
}


================================================
FILE: System/System.Net.Sockets/SocketOptionLevel.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace System.Net.Sockets {
	public enum SocketOptionLevel {
		Socket = 65535,
		IP = 0,
		IPv6 = 41,
		Tcp = 6,
		Udp = 17,
	}
}


================================================
FILE: System/System.Net.Sockets/SocketOptionName.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace System.Net.Sockets {
	public enum SocketOptionName {
		Debug = 1,
		AcceptConnection = 2,
		ReuseAddress = 4,
		KeepAlive = 8,
		DontRoute = 16,
		Broadcast = 32,
		UseLoopback = 64,
		Linger = 128,
		OutOfBandInline = 256,
		DontLinger = -129,
		ExclusiveAddressUse = -5,
		SendBuffer = 4097,
		ReceiveBuffer = 4098,
		SendLowWater = 4099,
		ReceiveLowWater = 4100,
		SendTimeout = 4101,
		ReceiveTimeout = 4102,
		Error = 4103,
		Type = 4104,
		MaxConnections = 2147483647,
		IPOptions = 1,
		HeaderIncluded = 2,
		TypeOfService = 3,
		IpTimeToLive = 4,
		MulticastInterface = 9,
		MulticastTimeToLive = 10,
		MulticastLoopback = 11,
		AddMembership = 12,
		DropMembership = 13,
		DontFragment = 14,
		AddSourceMembership = 15,
		DropSourceMembership = 16,
		BlockSource = 17,
		UnblockSource = 18,
		PacketInformation = 19,
		NoDelay = 1,
		BsdUrgent = 2,
		Expedited = 2,
		NoChecksum = 1,
		ChecksumCoverage = 20,
		HopLimit = 21,
		UpdateAcceptContext = 28683,
		UpdateConnectContext = 28688,
	}
}


================================================
FILE: System/System.Net.Sockets/SocketType.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace System.Net.Sockets {
	public enum SocketType {
		Stream = 1,
		Dgram = 2,
		Raw = 3,
		Rdm = 4,
		Seqpacket = 5,
		Unknown = -1,
	}
}


================================================
FILE: System/System.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>9.0.30729</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{388F5D73-0211-4A64-B501-92CDC4E32ACF}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>System</RootNamespace>
    <AssemblyName>System</AssemblyName>
    <FileUpgradeFlags>
    </FileUpgradeFlags>
    <UpgradeBackupLocation>
    </UpgradeBackupLocation>
    <OldToolsVersion>3.5</OldToolsVersion>
    <IsWebBootstrapper>false</IsWebBootstrapper>
    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
    <PublishUrl>publish\</PublishUrl>
    <Install>true</Install>
    <InstallFrom>Disk</InstallFrom>
    <UpdateEnabled>false</UpdateEnabled>
    <UpdateMode>Foreground</UpdateMode>
    <UpdateInterval>7</UpdateInterval>
    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
    <UpdatePeriodically>false</UpdatePeriodically>
    <UpdateRequired>false</UpdateRequired>
    <MapFileExtensions>true</MapFileExtensions>
    <ApplicationRevision>0</ApplicationRevision>
    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
    <UseApplicationTrust>false</UseApplicationTrust>
    <BootstrapperEnabled>true</BootstrapperEnabled>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <FileAlignment>512</FileAlignment>
    <NoStdLib>true</NoStdLib>
    <CodeAnalysisRules>
    </CodeAnalysisRules>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <FileAlignment>512</FileAlignment>
    <NoStdLib>true</NoStdLib>
    <CodeAnalysisRules>
    </CodeAnalysisRules>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="System.Collections.Generic\Queue.cs" />
    <Compile Include="System.Collections.Generic\Stack.cs" />
    <Compile Include="System.ComponentModel\Win32Exception.cs" />
    <Compile Include="System.Net.Sockets\AddressFamily.cs" />
    <Compile Include="System.Net.Sockets\ProtocolType.cs" />
    <Compile Include="System.Net.Sockets\Socket.cs" />
    <Compile Include="System.Net.Sockets\SocketException.cs" />
    <Compile Include="System.Net.Sockets\SocketFlags.cs" />
    <Compile Include="System.Net.Sockets\SocketOptionLevel.cs" />
    <Compile Include="System.Net.Sockets\SocketOptionName.cs" />
    <Compile Include="System.Net.Sockets\SocketType.cs" />
    <Compile Include="System.Net\Dns.cs" />
    <Compile Include="System.Net\EndPoint.cs" />
    <Compile Include="System.Net\IPAddress.cs" />
    <Compile Include="System.Net\IPEndPoint.cs" />
    <Compile Include="System.Net\IPHostEntry.cs" />
    <Compile Include="System.Net\SocketAddress.cs" />
  </ItemGroup>
  <ItemGroup>
    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
      <Visible>False</Visible>
      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
      <Install>true</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\corlib\corlib.csproj">
      <Project>{6a77a7c0-fb66-4caa-94ee-142dba20655d}</Project>
      <Name>corlib</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
  <PropertyGroup>
    <PostBuildEvent>xcopy $(TargetPath) $(SolutionDir)Builds\$(ConfigurationName)\ /Y</PostBuildEvent>
  </PropertyGroup>
</Project>

================================================
FILE: System.Core/Properties/AssemblyInfo.cs
================================================
//using System.Reflection;
//using System.Runtime.CompilerServices;
//using System.Runtime.InteropServices;

//// General Information about an assembly is controlled through the following 
//// set of attributes. Change these attribute values to modify the information
//// associated with an assembly.
//[assembly: AssemblyTitle("System.Core")]
//[assembly: AssemblyDescription("")]
//[assembly: AssemblyConfiguration("")]
//[assembly: AssemblyCompany("")]
//[assembly: AssemblyProduct("System.Core")]
//[assembly: AssemblyCopyright("Copyright ©  2012")]
//[assembly: AssemblyTrademark("")]
//[assembly: AssemblyCulture("")]

//// Setting ComVisible to false makes the types in this assembly not visible 
//// to COM components.  If you need to access a type in this assembly from 
//// COM, set the ComVisible attribute to true on that type.
//[assembly: ComVisible(false)]

//// The following GUID is for the ID of the typelib if this project is exposed to COM
//[assembly: Guid("60bd1f97-8a45-4bdb-9b4e-344f479dd643")]

//// Version information for an assembly consists of the following four values:
////
////      Major Version
////      Minor Version 
////      Build Number
////      Revision
////
//// You can specify all the values or you can default the Build and Revision Numbers 
//// by using the '*' as shown below:
//// [assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyVersion("1.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]


================================================
FILE: System.Core/System/Action.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

namespace System {

	public delegate void Action<T>(T arg);
	public delegate void Action<T1, T2>(T1 arg1, T2 arg2);
	public delegate void Action<T1, T2, T3>(T1 arg1, T2 arg2, T3 arg3);
	public delegate void Action<T1, T2, T3, T4>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);

}


================================================
FILE: System.Core/System/Func.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

namespace System {

	public delegate TResult Func<TResult>();
	public delegate TResult Func<T, TResult>(T arg);
	public delegate TResult Func<T1, T2, TResult>(T1 arg1, T2 arg2);
	public delegate TResult Func<T1, T2, T3, TResult>(T1 arg1, T2 arg2, T3 arg3);
	public delegate TResult Func<T1, T2, T3, T4, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);

}


================================================
FILE: System.Core/System.Collections.Generic/HashSet.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace System.Collections.Generic {

	public class HashSet<T> : ICollection<T>, IEnumerable<T>, IEnumerable {

		public struct Enumerator : IEnumerator<T>, IEnumerator, IDisposable {

			internal Enumerator(HashSet<T> hashSet) {
				this.en = hashSet.dict.Keys.GetEnumerator();
			}

			private IEnumerator<T> en;

			public T Current {
				get {
					return this.en.Current;
				}
			}

			public void Dispose() {
			}

			object IEnumerator.Current {
				get {
					return this.en.Current;
				}
			}

			public bool MoveNext() {
				return this.en.MoveNext();
			}

			public void Reset() {
				this.en.Reset();
			}

		}

		private Dictionary<T, object> dict;

		public HashSet() {
			this.dict = new Dictionary<T, object>();
		}

		public HashSet(IEnumerable<T> collection) : this(collection, null) { }

		public HashSet(IEqualityComparer<T> comparer) {
			this.dict = new Dictionary<T, object>(comparer);
		}

		public HashSet(IEnumerable<T> collection, IEqualityComparer<T> comparer) {
			if (collection == null) {
				throw new ArgumentNullException();
			}
			this.dict = new Dictionary<T, object>(comparer);
			foreach (T item in collection) {
				this.dict[item] = null;
			}
		}

		public bool Add(T item) {
			bool ret = !this.dict.ContainsKey(item);
			this.dict[item] = null;
			return ret;
		}

		public void Clear() {
			this.dict.Clear();
		}

		public bool Contains(T item) {
			return this.dict.ContainsKey(item);
		}

		public void CopyTo(T[] array) {
			throw new NotImplementedException();
		}

		public void CopyTo(T[] array, int arrayIndex) {
			throw new NotImplementedException();
		}

		public void CopyTo(T[] array, int arrayIndex, int count) {
			throw new NotImplementedException();
		}

		public Enumerator GetEnumerator() {
			return new Enumerator(this);
		}

		public bool Remove(T item) {
			return this.dict.Remove(item);
		}

		public IEqualityComparer<T> Comparer {
			get {
				return this.dict.Comparer;
			}
		}

		public int Count {
			get {
				return this.dict.Count;
			}
		}


		#region Interface Members

		void ICollection<T>.Add(T item) {
			this.Add(item);
		}

		bool ICollection<T>.IsReadOnly {
			get {
				return false;
			}
		}

		IEnumerator<T> IEnumerable<T>.GetEnumerator() {
			return new Enumerator(this);
		}

		IEnumerator IEnumerable.GetEnumerator() {
			return new Enumerator(this);
		}

		#endregion
	}

}


================================================
FILE: System.Core/System.Core.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{429C3225-3A36-427A-A44E-2AA3563FCD6D}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>System.Core</RootNamespace>
    <AssemblyName>System.Core</AssemblyName>
    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <FileAlignment>512</FileAlignment>
    <NoStdLib>true</NoStdLib>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <FileAlignment>512</FileAlignment>
    <NoStdLib>true</NoStdLib>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="System.Collections.Generic\HashSet.cs" />
    <Compile Include="System.Linq\Enumerable.cs" />
    <Compile Include="System.Linq\Grouping.cs" />
    <Compile Include="System.Linq\IGrouping.cs" />
    <Compile Include="System.Linq\ILookup.cs" />
    <Compile Include="System.Linq\IOrderedEnumerable.cs" />
    <Compile Include="System.Linq\Lookup.cs" />
    <Compile Include="System.Linq\OrderedEnumerable.cs" />
    <Compile Include="System.Runtime.CompilerServices\ExtensionAttribute.cs" />
    <Compile Include="System\Action.cs" />
    <Compile Include="System\Func.cs" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\corlib\corlib.csproj">
      <Project>{6a77a7c0-fb66-4caa-94ee-142dba20655d}</Project>
      <Name>corlib</Name>
    </ProjectReference>
    <ProjectReference Include="..\System\System.csproj">
      <Project>{388f5d73-0211-4a64-b501-92cdc4e32acf}</Project>
      <Name>System</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <PropertyGroup>
    <PostBuildEvent>xcopy $(TargetPath) $(SolutionDir)Builds\$(ConfigurationName)\ /Y</PostBuildEvent>
  </PropertyGroup>
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>

================================================
FILE: System.Core/System.Linq/Enumerable.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace System.Linq {
	public static class Enumerable {

		private static class Funcs<T> {
			public static readonly Func<T, bool> True = x => true;
			public static readonly Func<T, T> Identity = x => x;
		}

		#region Aggregate

		public static T Aggregate<T>(this IEnumerable<T> source, Func<T, T, T> func) {
			Check(source, func);
			using (var en = source.GetEnumerator()) {
				if (!en.MoveNext()) {
					throw new InvalidOperationException();
				}
				T value = en.Current;
				while (en.MoveNext()) {
					value = func(value, en.Current);
				}
				return value;
			}
		}

		public static TAcc Aggregate<T, TAcc>(this IEnumerable<T> source, TAcc seed, Func<TAcc, T, TAcc> func) {
			return source.Aggregate(seed, func, Funcs<TAcc>.Identity);
		}

		public static TResult Aggregate<T, TAcc, TResult>
			(this IEnumerable<T> source, TAcc seed, Func<TAcc, T, TAcc> func, Func<TAcc,TResult> resultSelector) {
			Check(source, func, resultSelector);
			foreach (var item in source) {
				seed = func(seed, item);
			}
			return resultSelector(seed);
		}

		#endregion

		#region All

		public static bool All<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			Check(source);
			foreach (T item in source) {
				if (!predicate(item)) {
					return false;
				}
			}
			return true;
		}

		#endregion

		#region Any

		public static bool Any<T>(this IEnumerable<T> source) {
			return source.Any(Funcs<T>.True);
		}

		public static bool Any<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			Check(source, predicate);
			foreach (T item in source) {
				if (predicate(item)) {
					return true;
				}
			}
			return false;
		}

		#endregion

		#region Average

		public static double Average(this IEnumerable<int> source) {
			return Avg<int, long, double>(source, (a, v) => a + v, (a, c) => (double)a / (double)c);
		}

		public static double? Average(this IEnumerable<int?> source) {
			return AvgNullable<int, long, double>(source, (a, v) => a + v, (a, c) => (double)a / (double)c);
		}

		public static double Average(this IEnumerable<long> source) {
			return Avg<long, long, double>(source, (a, v) => a + v, (a, c) => (double)a / (double)c);
		}

		public static double? Average(this IEnumerable<long?> source) {
			return AvgNullable<long, long, double>(source, (a, v) => a + v, (a, c) => (double)a / (double)c);
		}

		public static float Average(this IEnumerable<float> source) {
			return Avg<float, float, float>(source, (a, v) => a + v, (a, c) => a / c);
		}

		public static float? Average(this IEnumerable<float?> source) {
			return AvgNullable<float, float, float>(source, (a, v) => a + v, (a, c) => a / c);
		}

		public static double Average(this IEnumerable<double> source) {
			return Avg<double, double, double>(source, (a, v) => a + v, (a, c) => a / c);
		}

		public static double? Average(this IEnumerable<double?> source) {
			return AvgNullable<double, double, double>(source, (a, v) => a + v, (a, c) => a / c);
		}

		public static Decimal Average(this IEnumerable<Decimal> source) {
			throw new NotImplementedException();
		}

		public static Decimal? Average(this IEnumerable<Decimal?> source) {
			throw new NotImplementedException();
		}

		public static double Average<T>(this IEnumerable<T> source, Func<T, int> selector) {
			return Avg<int, long, double>(source.Select(selector), (a, v) => a + v, (a, c) => (double)a / (double)c);
		}

		public static double? Average<T>(this IEnumerable<T> source, Func<T, int?> selector) {
			return AvgNullable<int, long, double>(source.Select(selector), (a, v) => a + v, (a, c) => (double)a / (double)c);
		}

		public static double Average<T>(this IEnumerable<T> source, Func<T, long> selector) {
			return Avg<long, long, double>(source.Select(selector), (a, v) => a + v, (a, c) => (double)a / (double)c);
		}

		public static double? Average<T>(this IEnumerable<T> source, Func<T, long?> selector) {
			return AvgNullable<long, long, double>(source.Select(selector), (a, v) => a + v, (a, c) => (double)a / (double)c);
		}

		public static float Average<T>(this IEnumerable<T> source, Func<T, float> selector) {
			return Avg<float, float, float>(source.Select(selector), (a, v) => a + v, (a, c) => a / c);
		}

		public static float? Average<T>(this IEnumerable<T> source, Func<T, float?> selector) {
			return AvgNullable<float, float, float>(source.Select(selector), (a, v) => a + v, (a, c) => a / c);
		}

		public static double Average<T>(this IEnumerable<T> source, Func<T, double> selector) {
			return Avg<double, double, double>(source.Select(selector), (a, v) => a + v, (a, c) => a / c);
		}

		public static double? Average<T>(this IEnumerable<T> source, Func<T, double?> selector) {
			return AvgNullable<double, double, double>(source.Select(selector), (a, v) => a + v, (a, c) => a / c);
		}

		public static Decimal Average<T>(this IEnumerable<T> source, Func<T, Decimal> selector) {
			throw new NotImplementedException();
		}

		public static Decimal? Average<T>(this IEnumerable<T> source, Func<T, Decimal?> selector) {
			throw new NotImplementedException();
		}

		private static TRes Avg<T, TAcc, TRes>(IEnumerable<T> source,
			Func<TAcc, T, TAcc> accFn, Func<TAcc, int, TRes> resFn) {
			Check(source);
			TAcc acc = default(TAcc);
			int counter = 0;
			foreach (var item in source) {
				acc = accFn(acc, item);
				counter++;
			}
			if (counter == 0) {
				throw new InvalidOperationException();
			}
			return resFn(acc, counter);
		}

		private static TRes? AvgNullable<T, TAcc, TRes>(IEnumerable<T?> source,
			Func<TAcc, T, TAcc> accFn, Func<TAcc, int, TRes> resFn)
			where T : struct
			where TRes : struct {
			Check(source);
			TAcc acc = default(TAcc);
			int counter = 0;
			foreach (var item in source) {
				if (item != null) {
					acc = accFn(acc, item.Value);
					counter++;
				}
			}
			if (counter == 0) {
				return null;
			}
			return resFn(acc, counter);
		}

		#endregion

		#region AsEnumerable

		public static IEnumerable<T> AsEnumerable<T>(this IEnumerable<T> source) {
			return source;
		}

		#endregion

		#region Cast

		public static IEnumerable<T> Cast<T>(IEnumerable source) {
			Check(source);
			return CastIterator<T>(source);
		}

		private static IEnumerable<T> CastIterator<T>(IEnumerable source) {
			foreach (T item in source) {
				yield return item;
			}
		}

		#endregion

		#region Concat

		public static IEnumerable<T> Concat<T>
			(this IEnumerable<T> first, IEnumerable<T> second) {
			Check(first, second);
			return ConcatIterator(first, second);
		}

		private static IEnumerable<T> ConcatIterator<T>
			(IEnumerable<T> first, IEnumerable<T> second) {
			foreach (T item in first) {
				yield return item;
			}
			foreach (T item in second) {
				yield return item;
			}
		}

		#endregion

		#region Contains

		public static bool Contains<T>(this IEnumerable<T> source, T value) {
			return source.Contains(value, null);
		}

		public static bool Contains<T>
			(this IEnumerable<T> source, T value, IEqualityComparer<T> comparer) {
			Check(source);
			if (comparer == null) {
				comparer = EqualityComparer<T>.Default;
			}
			foreach (T item in source) {
				if (comparer.Equals(item, value)) {
					return true;
				}
			}
			return false;
		}

		#endregion

		#region Count, LongCount

		public static int Count<T>(this IEnumerable<T> source) {
			Check(source);
			ICollection<T> collection = source as ICollection<T>;
			if (collection != null) {
				return collection.Count;
			} else {
				return source.Count(Funcs<T>.True);
			}
		}

		public static int Count<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			Check(source, predicate);
			int count = 0;
			foreach (T item in source) {
				if (predicate(item)) {
					count++;
				}
			}
			return count;
		}

		public static long LongCount<T>(this IEnumerable<T> source) {
			return (long)Count(source);
		}

		public static long LongCount<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			return (long)Count(source, predicate);
		}

		#endregion

		#region DefaultIfEmpty

		public static IEnumerable<T> DefaultIfEmpty<T>(this IEnumerable<T> source) {
			return source.DefaultIfEmpty(default(T));
		}

		public static IEnumerable<T> DefaultIfEmpty<T>(this IEnumerable<T> source, T defaultValue) {
			Check(source);
			return DefaultIfEmptyIterator(source, defaultValue);
		}

		private static IEnumerable<T> DefaultIfEmptyIterator<T>(IEnumerable<T> source, T defaultValue) {
			using (IEnumerator<T> en = source.GetEnumerator()) {
				if (en.MoveNext()) {
					do {
						yield return en.Current;
					} while (en.MoveNext());
				} else {
					yield return defaultValue;
				}
			}
		}

		#endregion

		#region Distinct

		public static IEnumerable<T> Distinct<T>(this IEnumerable<T> source) {
			return Distinct(source, null);
		}

		public static IEnumerable<T> Distinct<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer) {
			return DistinctIterator(source, comparer);
		}

		private static IEnumerable<T> DistinctIterator<T>(IEnumerable<T> source, IEqualityComparer<T> comparer) {
			HashSet<T> h = new HashSet<T>(comparer);
			foreach (T item in source) {
				if (h.Add(item)) {
					yield return item;
				}
			}
		}

		#endregion

		#region ElementAt, ElementAtOrDefault

		public static T ElementAt<T>(IEnumerable<T> source, int index) {
			return ElementAt(source, index, false);
		}

		public static T ElementAtOrDefault<T>(IEnumerable<T> source, int index) {
			return ElementAt(source, index, true);
		}

		private static T ElementAt<T>(IEnumerable<T> source, int index, bool orDefault) {
			Check(source);
			if (index >= 0) {
				IList<T> list = source as IList<T>;
				if (list != null) {
					if (index < list.Count) {
						return list[index];
					}
				} else {
					int count = 0;
					foreach (T item in source) {
						if (count == index) {
							return item;
						}
						count++;
					}
				}
			}
			if (orDefault) {
				return default(T);
			} else {
				throw new ArgumentOutOfRangeException();
			}
		}

		#endregion

		#region Empty

		public static IEnumerable<T> Empty<T>() {
			return new T[0];
		}

		#endregion

		#region Except

		public static IEnumerable<T> Except<T>(this IEnumerable<T> first, IEnumerable<T> second) {
			return Except(first, second, null);
		}

		public static IEnumerable<T> Except<T>
			(this IEnumerable<T> first, IEnumerable<T> second, IEqualityComparer<T> comparer) {
			Check(first, second);
			return ExceptIterator(first, second, comparer);
		}

		private static IEnumerable<T> ExceptIterator<T>
			(IEnumerable<T> first, IEnumerable<T> second, IEqualityComparer<T> comparer) {
			HashSet<T> h = new HashSet<T>(second, comparer);
			foreach (T item in first) {
				if (!h.Contains(item)) {
					yield return item;
				}
			}
		}

		#endregion

		#region First, FirstOrDefault, Single, SingleOrDefault

		private static T FirstSingle<T>(IEnumerable<T> source, Func<T, bool> predicate, bool single, bool retDefault) {
			Check(source, predicate);
			using (var en = source.Where(predicate).GetEnumerator()) {
				if (en.MoveNext()) {
					T value = en.Current;
					if (single) {
						if (en.MoveNext()) {
							throw new InvalidOperationException();
						}
					}
					return value;
				} else {
					if (retDefault) {
						return default(T);
					} else {
						throw new InvalidOperationException();
					}
				}
			}
		}

		public static T First<T>(this IEnumerable<T> source) {
			return FirstSingle(source, Funcs<T>.True, false, false);
		}

		public static T First<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			return FirstSingle(source, predicate, false, false);
		}

		public static T FirstOrDefault<T>(this IEnumerable<T> source) {
			return FirstSingle(source, Funcs<T>.True, false, true);
		}

		public static T FirstOrDefault<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			return FirstSingle(source, predicate, false, true);
		}

		public static T Single<T>(this IEnumerable<T> source) {
			return FirstSingle(source, Funcs<T>.True, true, false);
		}

		public static T Single<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			return FirstSingle(source, predicate, true, false);
		}

		public static T SingleOrDefault<T>(this IEnumerable<T> source) {
			return FirstSingle(source, Funcs<T>.True, true, true);
		}

		public static T SingleOrDefault<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			return FirstSingle(source, predicate, true, true);
		}

		#endregion

		#region GroupBy

		public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>
			(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) {
			return source.GroupBy(keySelector, null);
		}

		public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>
			(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			IEqualityComparer<TKey> comparer) {
			return source.GroupBy(keySelector, Funcs<TSource>.Identity, comparer);
		}

		public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>
			(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			Func<TSource, TElement> elementSelector) {
			return source.GroupBy(keySelector, elementSelector, null);
		}

		public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>
			(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer) {
			return source.GroupBy(keySelector, elementSelector,
				(key, elements) => (IGrouping<TKey, TElement>)new Grouping<TKey, TElement>(key, elements),
				comparer);
		}

		public static IEnumerable<TResult> GroupBy<TSource, TKey, TResult>
			(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			Func<TKey, IEnumerable<TSource>, TResult> resultSelector) {
			return source.GroupBy(keySelector, resultSelector, null);
		}

		public static IEnumerable<TResult> GroupBy<TSource, TKey, TResult>
			(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			Func<TKey, IEnumerable<TSource>, TResult> resultSelector, IEqualityComparer<TKey> comparer) {
			return source.GroupBy(keySelector, Funcs<TSource>.Identity, resultSelector, comparer);
		}

		public static IEnumerable<TResult> GroupBy<TSource, TKey, TElement, TResult>
			(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			Func<TSource, TElement> elementSelector, Func<TKey, IEnumerable<TElement>, TResult> resultSelector) {
			return source.GroupBy(keySelector, elementSelector, resultSelector, null);
		}

		public static IEnumerable<TResult> GroupBy<TSource, TKey, TElement, TResult>
			(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			Func<TSource, TElement> elementSelector, Func<TKey, IEnumerable<TElement>, TResult> resultSelector,
			IEqualityComparer<TKey> comparer) {
			Check(source, keySelector, elementSelector);
			Check(resultSelector);
			return GroupByIterator(source, keySelector, elementSelector, resultSelector, comparer);
		}

		private static IEnumerable<TResult> GroupByIterator<TSource, TKey, TElement, TResult>
			(IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			Func<TSource, TElement> elementSelector, Func<TKey, IEnumerable<TElement>, TResult> resultSelector,
			IEqualityComparer<TKey> comparer) {
			Dictionary<TKey, List<TElement>> groups = new Dictionary<TKey, List<TElement>>(comparer);
			foreach (var item in source) {
				TKey key = keySelector(item);
				TElement element = elementSelector(item);
				List<TElement> itemsInGroup;
				if (!groups.TryGetValue(key, out itemsInGroup)) {
					itemsInGroup = new List<TElement>();
					groups.Add(key, itemsInGroup);
				}
				itemsInGroup.Add(element);
			}
			foreach (var group in groups) {
				yield return resultSelector(group.Key, group.Value);
			}
		}

		#endregion

		#region GroupJoin

		public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>
			(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner,
			Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector,
			Func<TOuter, IEnumerable<TInner>, TResult> resultSelector) {
			return outer.GroupJoin(inner, outerKeySelector, innerKeySelector, resultSelector, null);
		}

		public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>
			(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner,
			Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector,
			Func<TOuter, IEnumerable<TInner>, TResult> resultSelector,
			IEqualityComparer<TKey> comparer) {
			Check(outer, inner, outerKeySelector);
			Check(innerKeySelector, resultSelector);
			return GroupJoinIterator(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer);
		}

		public static IEnumerable<TResult> GroupJoinIterator<TOuter, TInner, TKey, TResult>
			(IEnumerable<TOuter> outer, IEnumerable<TInner> inner,
			Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector,
			Func<TOuter, IEnumerable<TInner>, TResult> resultSelector,
			IEqualityComparer<TKey> comparer) {
			var innerLookup = inner.ToLookup(innerKeySelector, comparer);
			foreach (var outerItem in outer) {
				TKey outerKey = outerKeySelector(outerItem);
				yield return resultSelector(outerItem,
					innerLookup.Contains(outerKey) ? innerLookup[outerKey] : Empty<TInner>());
			}
		}
		#endregion

		#region Intersect

		public static IEnumerable<T> Intersect<T>(this IEnumerable<T> first, IEnumerable<T> second) {
			return first.Intersect(second, null);
		}

		public static IEnumerable<T> Intersect<T>(this IEnumerable<T> first, IEnumerable<T> second,
			IEqualityComparer<T> comparer) {
			Check(first, second);
			return IntersectIterator(first, second, comparer);
		}

		private static IEnumerable<T> IntersectIterator<T>(IEnumerable<T> first, IEnumerable<T> second,
			IEqualityComparer<T> comparer) {
			HashSet<T> hash = new HashSet<T>(first, comparer);
			foreach (var item in second.Distinct(comparer)) {
				if (hash.Contains(item)) {
					yield return item;
				}
			}
		}

		#endregion

		#region Join

		public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>
			(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner,
			Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector,
			Func<TOuter, TInner, TResult> resultSelector) {
			return outer.Join(inner, outerKeySelector, innerKeySelector, resultSelector, null);
		}

		public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>
			(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner,
			Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector,
			Func<TOuter, TInner, TResult> resultSelector, IEqualityComparer<TKey> comparer) {
			Check(outer, inner);
			Check(outerKeySelector, innerKeySelector, resultSelector);
			return JoinIterator(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer);
		}

		private static IEnumerable<TResult> JoinIterator<TOuter, TInner, TKey, TResult>
			(IEnumerable<TOuter> outer, IEnumerable<TInner> inner,
			Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector,
			Func<TOuter, TInner, TResult> resultSelector, IEqualityComparer<TKey> comparer) {
			var outerLookup = outer.ToLookup(outerKeySelector, comparer);
			foreach (TInner innerItem in inner) {
				TKey innerKey = innerKeySelector(innerItem);
				if (outerLookup.Contains(innerKey)) {
					foreach (TOuter outerItem in outerLookup[innerKey]) {
						yield return resultSelector(outerItem, innerItem);
					}
				}
			}
		} 

		#endregion

		#region Last, LastOrDefault

		private static T LastOrDefault<T>(IEnumerable<T> source, Func<T, bool> predicate, bool retDefault) {
			Check(source, predicate);
			T last = default(T);
			bool empty = true;
			foreach (T item in source) {
				if (predicate(item)) {
					empty = false;
					last = item;
				}
			}
			if (empty && !retDefault) {
				throw new InvalidOperationException();
			}
			return last;
		}

		public static T Last<T>(this IEnumerable<T> source) {
			return LastOrDefault(source, Funcs<T>.True, false);
		}

		public static T Last<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			return LastOrDefault(source, predicate, false);
		}

		public static T LastOrDefault<T>(this IEnumerable<T> source) {
			return LastOrDefault(source, Funcs<T>.True, true);
		}

		public static T LastOrDefault<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			return LastOrDefault(source, predicate, true);
		}

		#endregion

		#region Max

		public static int Max(this IEnumerable<int> source) {
			return GenProc(source, (a, b) => Math.Max(a, b), false);
		}

		public static int? Max(this IEnumerable<int?> source) {
			return GenProcNullable(source, (a, b) => Math.Max(a, b));
		}

		public static long Max(this IEnumerable<long> source) {
			return GenProc(source, (a, b) => Math.Max(a, b), false);
		}

		public static long? Max(this IEnumerable<long?> source) {
			return GenProcNullable(source, (a, b) => Math.Max(a, b));
		}

		public static float Max(this IEnumerable<float> source) {
			return GenProc(source, (a, b) => Math.Max(a, b), false);
		}

		public static float? Max(this IEnumerable<float?> source) {
			return GenProcNullable(source, (a, b) => Math.Max(a, b));
		}

		public static double Max(this IEnumerable<double> source) {
			return GenProc(source, (a, b) => Math.Max(a, b), false);
		}

		public static double? Max(this IEnumerable<double?> source) {
			return GenProcNullable(source, (a, b) => Math.Max(a, b));
		}

		public static Decimal Max(this IEnumerable<Decimal> source) {
			throw new NotImplementedException();
		}

		public static Decimal? Max(this IEnumerable<Decimal?> source) {
			throw new NotImplementedException();
		}

		public static T Max<T>(this IEnumerable<T> source) {
			Comparer<T> comparer = Comparer<T>.Default;
			return GenProc(source, (a, b) => comparer.Compare(a, b) > 0 ? a : b, true);
		}

		public static TResult Max<T, TResult>(this IEnumerable<T> source, Func<T, TResult> selector) {
			return Max(source.Select(selector));
		}

		public static int Max<T>(this IEnumerable<T> source, Func<T, int> selector) {
			return Max(source.Select(selector));
		}

		public static int? Max<T>(this IEnumerable<T> source, Func<T, int?> selector) {
			return Max(source.Select(selector));
		}

		public static long Max<T>(this IEnumerable<T> source, Func<T, long> selector) {
			return Max(source.Select(selector));
		}

		public static long? Max<T>(this IEnumerable<T> source, Func<T, long?> selector) {
			return Max(source.Select(selector));
		}

		public static float Max<T>(this IEnumerable<T> source, Func<T, float> selector) {
			return Max(source.Select(selector));
		}

		public static float? Max<T>(this IEnumerable<T> source, Func<T, float?> selector) {
			return Max(source.Select(selector));
		}

		public static double Max<T>(this IEnumerable<T> source, Func<T, double> selector) {
			return Max(source.Select(selector));
		}

		public static double? Max<T>(this IEnumerable<T> source, Func<T, double?> selector) {
			return Max(source.Select(selector));
		}

		public static Decimal Max<T>(this IEnumerable<T> source, Func<T, Decimal> selector) {
			return Max(source.Select(selector));
		}

		public static Decimal? Max<T>(this IEnumerable<T> source, Func<T, Decimal?> selector) {
			return Max(source.Select(selector));
		}

		#endregion

		#region Min

		public static int Min(this IEnumerable<int> source) {
			return GenProc(source, (a, b) => Math.Min(a, b), false);
		}

		public static int? Min(this IEnumerable<int?> source) {
			return GenProcNullable(source, (a, b) => Math.Min(a, b));
		}

		public static long Min(this IEnumerable<long> source) {
			return GenProc(source, (a, b) => Math.Min(a, b), false);
		}

		public static long? Min(this IEnumerable<long?> source) {
			return GenProcNullable(source, (a, b) => Math.Min(a, b));
		}

		public static float Min(this IEnumerable<float> source) {
			return GenProc(source, (a, b) => Math.Min(a, b), false);
		}

		public static float? Min(this IEnumerable<float?> source) {
			return GenProcNullable(source, (a, b) => Math.Min(a, b));
		}

		public static double Min(this IEnumerable<double> source) {
			return GenProc(source, (a, b) => Math.Min(a, b), false);
		}

		public static double? Min(this IEnumerable<double?> source) {
			return GenProcNullable(source, (a, b) => Math.Min(a, b));
		}

		public static Decimal Min(this IEnumerable<Decimal> source) {
			throw new NotImplementedException();
		}

		public static Decimal? Min(this IEnumerable<Decimal?> source) {
			throw new NotImplementedException();
		}

		public static T Min<T>(this IEnumerable<T> source) {
			Comparer<T> comparer = Comparer<T>.Default;
			return GenProc(source, (a, b) => comparer.Compare(a, b) < 0 ? a : b, true);
		}

		public static TResult Min<T, TResult>(this IEnumerable<T> source, Func<T, TResult> selector) {
			return Min(source.Select(selector));
		}

		public static int Min<T>(this IEnumerable<T> source, Func<T, int> selector) {
			return Min(source.Select(selector));
		}

		public static int? Min<T>(this IEnumerable<T> source, Func<T, int?> selector) {
			return Min(source.Select(selector));
		}

		public static long Min<T>(this IEnumerable<T> source, Func<T, long> selector) {
			return Min(source.Select(selector));
		}

		public static long? Min<T>(this IEnumerable<T> source, Func<T, long?> selector) {
			return Min(source.Select(selector));
		}

		public static float Min<T>(this IEnumerable<T> source, Func<T, float> selector) {
			return Min(source.Select(selector));
		}

		public static float? Min<T>(this IEnumerable<T> source, Func<T, float?> selector) {
			return Min(source.Select(selector));
		}

		public static double Min<T>(this IEnumerable<T> source, Func<T, double> selector) {
			return Min(source.Select(selector));
		}

		public static double? Min<T>(this IEnumerable<T> source, Func<T, double?> selector) {
			return Min(source.Select(selector));
		}

		public static Decimal Min<T>(this IEnumerable<T> source, Func<T, Decimal> selector) {
			return Min(source.Select(selector));
		}

		public static Decimal? Min<T>(this IEnumerable<T> source, Func<T, Decimal?> selector) {
			return Min(source.Select(selector));
		}

		private static T GenProc<T>(IEnumerable<T> source, Func<T, T, T> fn, bool allowEmpty) {
			Check(source);
			using (var en = source.GetEnumerator()) {
				if (!en.MoveNext()) {
					if (allowEmpty) {
						return default(T);
					} else {
						throw new InvalidOperationException();
					}
				}
				T value = en.Current;
				while (en.MoveNext()) {
					value = fn(value, en.Current);
				}
				return value;
			}
		}

		private static T? GenProcNullable<T>(IEnumerable<T?> source, Func<T, T, T> fn) where T : struct {
			T? value = null;
			foreach (T? item in source) {
				if (value == null) {
					value = item;
				} else if (item != null) {
					value = fn(value.Value, item.Value);
				}
			}
			return value;
		}

		#endregion

		#region OfType

		public static IEnumerable<T> OfType<T>(this IEnumerable source) {
			Check(source);
			return OfTypeIterator<T>(source);
		}

		private static IEnumerable<T> OfTypeIterator<T>(IEnumerable source) {
			foreach (object item in source) {
				if (item is T) {
					yield return (T)item;
				}
			}
		}

		#endregion

		#region OrderBy, OrderByDescending

		public static IOrderedEnumerable<T> OrderBy<T, TKey>(
			this IEnumerable<T> source,
			Func<T, TKey> selector,
			IComparer<TKey> comparer) {
			Check(source, selector);
			return new OrderedEnumerable<T, TKey>(source, selector, comparer, true);
		}

		public static IOrderedEnumerable<T> OrderBy<T, TKey>(
			this IEnumerable<T> source,
			Func<T, TKey> selector) {
			Check(source, selector);
			return new OrderedEnumerable<T, TKey>(source, selector, null, true);
		}

		public static IOrderedEnumerable<T> OrderByDescending<T, TKey>(
			this IEnumerable<T> source,
			Func<T, TKey> selector,
			IComparer<TKey> comparer) {
			Check(source, selector);
			return new OrderedEnumerable<T, TKey>(source, selector, comparer, false);
		}

		public static IOrderedEnumerable<T> OrderByDescending<T, TKey>(
			this IEnumerable<T> source,
			Func<T, TKey> selector) {
			Check(source, selector);
			return new OrderedEnumerable<T, TKey>(source, selector, null, false);
		}

		#endregion

		#region Range

		public static IEnumerable<int> Range(int start, int count) {
			if (count < 0) {
				throw new ArgumentOutOfRangeException("count");
			}
			return RangeIterator(start, count);
		}

		private static IEnumerable<int> RangeIterator(int start, int count) {
			int end = start + count;
			for (int i = start; i < end; i++) {
				yield return i;
			}
		}

		#endregion

		#region Repeat

		public static IEnumerable<TResult> Repeat<TResult>(TResult element, int count) {
			if (count < 0) {
				throw new ArgumentOutOfRangeException("count");
			}
			return RepeatIterator(element, count);
		}

		private static IEnumerable<TResult> RepeatIterator<TResult>(TResult element, int count) {
			for (int i = 0; i < count; i++) {
				yield return element;
			}
		}

		#endregion

		#region Reverse

		public static IEnumerable<T> Reverse<T>(this IEnumerable<T> source) {
			Check(source);
			IList<T> list = source as IList<T> ?? new List<T>(source);
			return ReverseIterator(list);
		}

		private static IEnumerable<T> ReverseIterator<T>(IList<T> source) {
			for (int i = source.Count - 1; i >= 0; i--) {
				yield return source[i];
			}
		}

		#endregion

		#region Select

		public static IEnumerable<TResult> Select<T, TResult>
			(this IEnumerable<T> source, Func<T, TResult> selector) {
			Check(source, selector);
			return SelectIterator(source, selector);
		}

		private static IEnumerable<TResult> SelectIterator<T, TResult>
			(IEnumerable<T> source, Func<T, TResult> selector) {
			foreach (T item in source) {
				yield return selector(item);
			}
		}

		public static IEnumerable<TResult> Select<T, TResult>
			(this IEnumerable<T> source, Func<T, int, TResult> selector) {
			Check(source, selector);
			return SelectIterator(source, selector);
		}

		private static IEnumerable<TResult> SelectIterator<T, TResult>
			(IEnumerable<T> source, Func<T, int, TResult> selector) {
			int count = 0;
			foreach (T item in source) {
				yield return selector(item, count);
				count++;
			}
		}

		#endregion

		#region SelectMany

		public static IEnumerable<TResult> SelectMany<TSource, TResult>
			(this IEnumerable<TSource> source, Func<TSource, IEnumerable<TResult>> selector) {
			return source.SelectMany((s, i) => selector(s));
		}

		public static IEnumerable<TResult> SelectMany<TSource, TResult>
			(this IEnumerable<TSource> source, Func<TSource, int, IEnumerable<TResult>> selector) {
			return source.SelectMany(selector, (s, c) => c);
		}

		public static IEnumerable<TResult> SelectMany<TSource, TCollection, TResult>
			(this IEnumerable<TSource> source, Func<TSource, IEnumerable<TCollection>> collectionSelector,
			Func<TSource, TCollection, TResult> resultSelector) {
			return source.SelectMany((s, i) => collectionSelector(s), resultSelector);
		}

		public static IEnumerable<TResult> SelectMany<TSource, TCollection, TResult>
			(this IEnumerable<TSource> source, Func<TSource, int, IEnumerable<TCollection>> collectionSelector,
			Func<TSource, TCollection, TResult> resultSelector) {
			Check(source, collectionSelector, resultSelector);
			return SelectManyIterator(source, collectionSelector, resultSelector);
		}

		private static IEnumerable<TResult> SelectManyIterator<TSource, TCollection, TResult>
			(IEnumerable<TSource> source, Func<TSource, int, IEnumerable<TCollection>> collectionSelector,
			Func<TSource, TCollection, TResult> resultSelector) {
			int count = 0;
			foreach (TSource item in source) {
				foreach (TCollection col in collectionSelector(item, count)) {
					yield return resultSelector(item, col);
				}
				count++;
			}
		}

		#endregion

		#region SequenceEqual

		public static bool SequenceEqual<T>(this IEnumerable<T> first, IEnumerable<T> second) {
			return first.SequenceEqual(second, null);
		}

		public static bool SequenceEqual<T>(this IEnumerable<T> first, IEnumerable<T> second, IEqualityComparer<T> comparer) {
			Check(first, second);
			if (comparer == null) {
				comparer = EqualityComparer<T>.Default;
			}
			using (IEnumerator<T> en1 = first.GetEnumerator(), en2 = second.GetEnumerator()) {
				while (en1.MoveNext()) {
					if (!en2.MoveNext()) {
						return false;
					}
					if (!comparer.Equals(en1.Current, en2.Current)) {
						return false;
					}
				}
				return !en2.MoveNext();
			}
		}

		#endregion

		#region Skip

		public static IEnumerable<T> Skip<T>(this IEnumerable<T> source, int count) {
			Check(source);
			return SkipIterator(source, count);
		}

		private static IEnumerable<T> SkipIterator<T>(IEnumerable<T> source, int count) {
			foreach (T item in source) {
				if (count <= 0) {
					yield return item;
				}
				count--;
			}
		}

		#endregion

		#region SkipWhile

		public static IEnumerable<T> SkipWhile<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			Check(source, predicate);
			return SkipWhileIterator(source, predicate);
		}

		public static IEnumerable<T> SkipWhileIterator<T>(IEnumerable<T> source, Func<T, bool> predicate) {
			bool skip = true;
			foreach (T item in source) {
				if (skip) {
					if (!predicate(item)) {
						skip = false;
						yield return item;
					}
				} else {
					yield return item;
				}
			}
		}

		public static IEnumerable<T> SkipWhile<T>(this IEnumerable<T> source, Func<T, int, bool> predicate) {
			Check(source, predicate);
			return SkipWhileIterator(source, predicate);
		}

		public static IEnumerable<T> SkipWhileIterator<T>(IEnumerable<T> source, Func<T, int, bool> predicate) {
			bool skip = true;
			int count = 0;
			foreach (T item in source) {
				if (skip) {
					if (!predicate(item, count)) {
						skip = false;
						yield return item;
					}
				} else {
					yield return item;
				}
				count++;
			}
		}

		#endregion

		#region Take

		public static IEnumerable<T> Take<T>(this IEnumerable<T> source, int count) {
			Check(source);
			return TakeIterator(source, count);
		}

		private static IEnumerable<T> TakeIterator<T>(IEnumerable<T> source, int count) {
			if (count <= 0) {
				yield break;
			}
			foreach (T item in source) {
				yield return item;
				count--;
				if (count == 0) {
					yield break;
				}
			}
		}

		#endregion

		#region TakeWhile

		public static IEnumerable<T> TakeWhile<T>(this IEnumerable<T> source, Func<T, bool> predicate) {
			Check(source, predicate);
			return TakeWhileIterator(source, predicate);
		}

		private static IEnumerable<T> TakeWhileIterator<T>(IEnumerable<T> source, Func<T, bool> predicate) {
			foreach (T item in source) {
				if (!predicate(item)) {
					yield break;
				}
				yield return item;
			}
		}

		public static IEnumerable<T> TakeWhile<T>(this IEnumerable<T> source, Func<T, int, bool> predicate) {
			Check(source, predicate);
			return TakeWhileIterator(source, predicate);
		}

		private static IEnumerable<T> TakeWhileIterator<T>(IEnumerable<T> source, Func<T, int, bool> predicate) {
			int count = 0;
			foreach (T item in source) {
				if (!predicate(item, count)) {
					yield break;
				}
				yield return item;
				count++;
			}
		}

		#endregion

		#region ThenBy, ThenByDescending

		//public static IOrderedEnumerable<T> ThenBy<T, TKey>(this IOrderedEnumerable<T> source,
		//    Func<T, TKey> keySelector) {
		//    return source.ThenBy(keySelector, null);
		//}

		//public static IOrderedEnumerable<T> ThenBy<T, TKey>(this IOrderedEnumerable<T> source,
		//    Func<T, TKey> keySelector, IComparer<TKey> comparer) {
		//    Check(source, keySelector);
		//    return source.CreateOrderedEnumerable(keySelector, comparer, false);
		//}

		//public static IOrderedEnumerable<T> ThenByDescending<T, TKey>(this IOrderedEnumerable<T> source,
		//    Func<T, TKey> keySelector) {
		//    return source.ThenByDescending(keySelector, null);
		//}

		//public static IOrderedEnumerable<T> ThenByDescending<T, TKey>(this IOrderedEnumerable<T> source,
		//    Func<T, TKey> keySelector, IComparer<TKey> comparer) {
		//    Check(source, keySelector);
		//    return source.CreateOrderedEnumerable(keySelector, comparer, true);
		//}

		#endregion

		#region Union

		public static IEnumerable<T> Union<T>(this IEnumerable<T> first, IEnumerable<T> second) {
			return Union(first, second, null);
		}

		public static IEnumerable<T> Union<T>
			(this IEnumerable<T> first, IEnumerable<T> second, IEqualityComparer<T> comparer) {
			// Check not needed, as Concat() will do it
			return DistinctIterator(first.Concat(second), comparer);
		}

		#endregion

		#region Where

		public static IEnumerable<T> Where<T>
			(this IEnumerable<T> source, Func<T, bool> predicate) {
			Check(source, predicate);
			return WhereIterator(source, predicate);
		}

		private static IEnumerable<T> WhereIterator<T>
			(IEnumerable<T> source, Func<T, bool> predicate) {
			foreach (T item in source) {
				if (predicate(item)) {
					yield return item;
				}
			}
		}

		public static IEnumerable<T> Where<T>
			(this IEnumerable<T> source, Func<T, int, bool> predicate) {
			Check(source, predicate);
			return WhereIterator(source, predicate);
		}

		private static IEnumerable<T> WhereIterator<T>
			(IEnumerable<T> source, Func<T, int, bool> predicate) {
			int count = 0;
			foreach (T item in source) {
				if (predicate(item, count)) {
					yield return item;
				}
				count++;
			}
		}

		#endregion

		#region ToList, ToArray, ToDictionary, ToLookup

		public static List<T> ToList<T>(this IEnumerable<T> source) {
			Check(source);
			return new List<T>(source);
		}

		public static T[] ToArray<T>(this IEnumerable<T> source) {
			Check(source);
			ICollection<T> collection =
				source as ICollection<T> ?? new List<T>(source);
			T[] result = new T[collection.Count];
			collection.CopyTo(result, 0);
			return result;
		}

		public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(
			this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) {
			return source.ToDictionary(keySelector, Funcs<TSource>.Identity, null);
		}

		public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(
			this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			IEqualityComparer<TKey> comparer) {
			return source.ToDictionary(keySelector, Funcs<TSource>.Identity, comparer);
		}

		public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, TElement>(
			this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			Func<TSource, TElement> elementSelector) {
			return source.ToDictionary(keySelector, elementSelector, null);
		}

		public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, TElement>(
			this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer) {
			Check(source, keySelector, elementSelector);
			Dictionary<TKey, TElement> dict = new Dictionary<TKey, TElement>(comparer);
			foreach (TSource item in source) {
				dict.Add(keySelector(item), elementSelector(item));
			}
			return dict;
		}

		public static ILookup<TKey, TSource> ToLookup<TSource, TKey>(
			this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) {
			return source.ToLookup(keySelector, Funcs<TSource>.Identity, null);
		}

		public static ILookup<TKey, TSource> ToLookup<TSource, TKey>(
			this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			IEqualityComparer<TKey> comparer) {
			return source.ToLookup(keySelector, Funcs<TSource>.Identity, comparer);
		}

		public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(
			this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			Func<TSource, TElement> elementSelector) {
			return source.ToLookup(keySelector, elementSelector, null);
		}

		public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(
			this IEnumerable<TSource> source, Func<TSource, TKey> keySelector,
			Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer) {
			Check(source, keySelector, elementSelector);
			var lookup = new Dictionary<TKey, List<TElement>>(comparer);
			foreach (TSource item in source) {
				TKey key = keySelector(item);
				if (key == null) {
					throw new ArgumentNullException();
				}
				List<TElement> list;
				if (!lookup.TryGetValue(key, out list)) {
					list = new List<TElement>();
					lookup.Add(key, list);
				}
				list.Add(elementSelector(item));
			}
			return new Lookup<TKey, TElement>(lookup);
		}

		#endregion

		#region Checks

		private static void Check(object o) {
			if (o == null) {
				throw new ArgumentNullException();
			}
		}

		private static void Check(object o1, object o2) {
			if (o1 == null || o2 == null) {
				throw new ArgumentNullException();
			}
		}

		private static void Check(object o1, object o2, object o3) {
			if (o1 == null || o2 == null || o3 == null) {
				throw new ArgumentNullException();
			}
		}

		#endregion

	}
}


================================================
FILE: System.Core/System.Linq/Grouping.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace System.Linq {
	class Grouping<TKey, TElement> : IGrouping<TKey, TElement> {

		public Grouping(TKey key, IEnumerable<TElement> elements) {
			this.key = key;
			this.elements = elements;
		}

		private TKey key;
		private IEnumerable<TElement> elements;
		
		public TKey Key {
			get {
				return this.key;
			}
		}

		public IEnumerator<TElement> GetEnumerator() {
			return this.elements.GetEnumerator();
		}

		IEnumerator System.Collections.IEnumerable.GetEnumerator() {
			return this.elements.GetEnumerator();
		}

	}
}


================================================
FILE: System.Core/System.Linq/IGrouping.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace System.Linq {
	public interface IGrouping<TKey, TElement> : IEnumerable<TElement>, IEnumerable {

		TKey Key { get; }

	}
}


================================================
FILE: System.Core/System.Linq/ILookup.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace System.Linq {
	public interface ILookup<TKey, TElement> : IEnumerable<IGrouping<TKey, TElement>>, IEnumerable {

		bool Contains(TKey key);
		int Count { get; }
		IEnumerable<TElement> this[TKey key] { get; }

	}
}


================================================
FILE: System.Core/System.Linq/IOrderedEnumerable.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace System.Linq {

	public interface IOrderedEnumerable<T> : IEnumerable<T> {

		IOrderedEnumerable<T> CreateOrderedEnumerable<TKey>(
			Func<T, TKey> selector, IComparer<TKey> comparer, bool descending);

	}

}


================================================
FILE: System.Core/System.Linq/Lookup.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;

namespace System.Linq {
	public class Lookup<TKey, TElement> : ILookup<TKey, TElement> {

		private Dictionary<TKey, IGrouping<TKey, TElement>> lookup;

		internal Lookup(Dictionary<TKey, List<TElement>> data) {
			this.lookup = new Dictionary<TKey, IGrouping<TKey, TElement>>(data.Comparer);
			foreach (var item in data) {
				this.lookup.Add(item.Key, new Grouping<TKey, TElement>(item.Key, item.Value));
			}
		}

		public bool Contains(TKey key) {
			return this.lookup.ContainsKey(key);
		}

		public int Count {
			get {
				return this.lookup.Count;
			}
		}

		public IEnumerable<TElement> this[TKey key] {
			get {
				return this.lookup[key];
			}
		}

		public IEnumerator<IGrouping<TKey, TElement>> GetEnumerator() {
			return this.lookup.Values.GetEnumerator();
		}

		IEnumerator IEnumerable.GetEnumerator() {
			return this.lookup.Values.GetEnumerator();
		}

	}
}


================================================
FILE: System.Core/System.Linq/OrderedEnumerable.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Collections;

#if LOCALTEST
namespace System_.Linq {
#else
namespace System.Linq {
#endif
	class OrderedEnumerable<TElement, TKey> : IOrderedEnumerable<TElement> {

		private class QuickSort {

			public QuickSort(IEnumerable<TElement> source,
				Func<TElement, TKey> selector, IComparer<TKey> comparer, bool ascending) {
				this.comparer = comparer;
				this.ascending = ascending;
				this.elements = source.ToArray();
				int len = this.elements.Length;
				this.keys = new TKey[len];
				this.order = new int[len];
				for (int i = 0; i < len; i++) {
					this.keys[i] = selector(this.elements[i]);
					this.order[i] = i;
				}
			}

			private IComparer<TKey> comparer;
			private bool ascending;
			private TElement[] elements;
			private TKey[] keys;
			private int[] order;
			private const int INSERTION_SORT_SIZE = 6;

			private void Swap(int idx0, int idx1) {
				if (idx0 != idx1) {
					int temp = this.order[idx0];
					this.order[idx0] = this.order[idx1];
					this.order[idx1] = temp;
				}
			}

			private void PerformSort(int startIdx, int endIdx) {
				// Special cases if lenth is 0, 1 or less than or equal to INSERTION_SORT_SIZE
				int length = endIdx - startIdx + 1;
				if (length <= 1) {
					return;
				}
				if (length <= INSERTION_SORT_SIZE) {
				    // Perform insertion sort
					for (int idx = startIdx + 1; idx <= endIdx; idx++) {
						int i, orderIdx = this.order[idx];
						TKey key = this.keys[orderIdx];
						for (i = idx; i > startIdx && this.comparer.Compare(key, this.keys[this.order[i - 1]]) < 0; i--) {
							this.order[i] = this.order[i - 1];
						}
						this.order[i] = orderIdx;
					}
					return;
				}
				// Perform quick-sort
				// Find the pivot value
				int pivotIdx;
				int midIdx = (startIdx + endIdx) / 2;
				TKey pivot0 = this.keys[this.order[startIdx]];
				TKey pivot1 = this.keys[this.order[midIdx]];
				TKey pivot2 = this.keys[this.order[endIdx]];
				bool _0lessthan1 = this.comparer.Compare(pivot0, pivot1) < 0;
				bool _1lessthan2 = this.comparer.Compare(pivot1, pivot2) < 0;
				if (_0lessthan1 == _1lessthan2) {
					pivotIdx = midIdx;
				} else {
					bool _0lessthan2 = this.comparer.Compare(pivot0, pivot2) < 0;
					pivotIdx = (_1lessthan2 == _0lessthan2) ? startIdx : endIdx;
				}
				TKey pivot = this.keys[this.order[pivotIdx]];
				//Console.WriteLine("S={4},M={5},E={6}  p0={1},p1={2},p2={3}  Pivot = {0}", pivot, pivot0, pivot1, pivot2, startIdx, midIdx, endIdx);
				// Perform sort
				this.Swap(pivotIdx, endIdx);
				int storeIndex = startIdx;
				for (int i = startIdx; i < endIdx; i++) {
					TKey value = this.keys[this.order[i]];
					// if value <= pivot
					if (this.comparer.Compare(value, pivot) <= 0) {
						this.Swap(storeIndex, i);
						storeIndex++;
					}
				}
				this.Swap(storeIndex, endIdx);
				this.PerformSort(startIdx, storeIndex - 1);
				this.PerformSort(storeIndex + 1, endIdx);
			}

			public IEnumerable<TElement> Sort() {
				int len = this.elements.Length;
				this.PerformSort(0, len - 1);
				if (this.ascending) {
					for (int i = 0; i < len; i++) {
						yield return this.elements[this.order[i]];
					}
				} else {
					for (int i = len - 1; i >= 0; i--) {
						yield return this.elements[this.order[i]];
					}
				}
			}

		}

		public OrderedEnumerable(IEnumerable<TElement> source,
			Func<TElement, TKey> selector, IComparer<TKey> comparer, bool ascending) {
			this.source = source;
			this.selector = selector;
			this.comparer = comparer ?? Comparer<TKey>.Default;
			this.ascending = ascending;
		}

		public IOrderedEnumerable<TElement> CreateOrderedEnumerable<TKey2>(
			Func<TElement, TKey2> selector, IComparer<TKey2> comparer, bool descending) {
			throw new NotImplementedException();
		}

		private IEnumerable<TElement> source;
		private Func<TElement, TKey> selector;
		private IComparer<TKey> comparer;
		private bool ascending;

		public IEnumerator<TElement> GetEnumerator() {
			QuickSort sort = new QuickSort(this.source, this.selector, this.comparer, this.ascending);
			return sort.Sort().GetEnumerator();
		}

		IEnumerator IEnumerable.GetEnumerator() {
			return this.GetEnumerator();
		}

	}
}


================================================
FILE: System.Core/System.Runtime.CompilerServices/ExtensionAttribute.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace System.Runtime.CompilerServices {

	[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)]
	public sealed class ExtensionAttribute : Attribute {
	}

}


================================================
FILE: System.Drawing/Properties/AssemblyInfo.cs
================================================
/*using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("System.Drawing")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Docobo")]
[assembly: AssemblyProduct("System.Drawing")]
[assembly: AssemblyCopyright("Copyright © Docobo 2007")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("d9baba9f-5d04-4f14-b992-e6439f76f8f1")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Revision and Build Numbers 
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
*/

================================================
FILE: System.Drawing/System.Drawing/Bitmap.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing.Imaging;

namespace System.Drawing {
	public sealed class Bitmap : Image {

		public Bitmap(int width, int height)
			: this(width, height, PixelFormat.Format32bppArgb) { }

		public Bitmap(int width, int height, PixelFormat pixelFormat) {
			base.native = LibIGraph._CreateBitmap(width, height, pixelFormat);
			if (base.native == IntPtr.Zero) {
				throw new ArgumentException();
			}
			base.width = width;
			base.height = height;
			base.pixelFormat = pixelFormat;
		}

		internal Bitmap(IntPtr native, int width, int height, PixelFormat pixelFormat) {
			if (native == IntPtr.Zero) {
				throw new ArgumentException("Cannot create Bitmap");
			}
			base.native = native;
			base.width = width;
			base.height = height;
			base.pixelFormat = pixelFormat;
		}

	}
}


================================================
FILE: System.Drawing/System.Drawing/Brush.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace System.Drawing {
	public abstract class Brush : MarshalByRefObject, IDisposable {

		internal IntPtr native = IntPtr.Zero;

		~Brush() {
			this.Dispose(false);
		}

		public void Dispose() {
			this.Dispose(true);
			GC.SuppressFinalize(this);
		}

		protected virtual void Dispose(bool disposing) {
			if (this.native != IntPtr.Zero) {
				LibIGraph.DisposeBrush(this.native);
				this.native = IntPtr.Zero;
			}
		}

	}
}


================================================
FILE: System.Drawing/System.Drawing/Brushes.cs
================================================
// Copyright (c) 2009 DotNetAnywhere
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

using System;
using System.Collections.Generic;
using System.Text;

namespace System.Drawing {
	public static class Brushes {

		static SolidBrush aliceBlue;
		static SolidBrush antiqueWhite;
		static SolidBrush aqua;
		static SolidBrush aquamarine;
		static SolidBrush azure;
		static SolidBrush beige;
		static SolidBrush bisque;
		static SolidBrush black;
		static SolidBrush blanchedAlmond;
		static SolidBrush blue;
		static SolidBrush blueViolet;
		static SolidBrush brown;
		static SolidBrush burlyWood;
		static SolidBrush cadetBlue;
		static SolidBrush chartreuse;
		static SolidBrush chocolate;
		static SolidBrush coral;
		static SolidBrush cornflowerBlue;
		static SolidBrush cornsilk;
		static SolidBrush crimson;
		static SolidBrush cyan;
		static SolidBrush darkBlue;
		static SolidBrush darkCyan;
		static SolidBrush darkGoldenrod;
		static SolidBrush darkGray;
		static SolidBrush darkGreen;
		static SolidBrush darkKhaki;
		static SolidBrush darkMagenta;
		static SolidBrush darkOliveGreen;
		static SolidBrush darkOrange;
		static SolidBrush darkOrchid;
		static SolidBrush darkRed;
		static SolidBrush darkSalmon;
		static SolidBrush darkSeaGreen;
		static SolidBrush darkSlateBlue;
		static SolidBrush darkSlateGray;
		static SolidBrush darkTurquoise;
		static SolidBrush darkViolet;
		static SolidBrush deepPink;
		static SolidBrush deepSkyBlue;
		static SolidBrush dimGray;
		static SolidBrush dodgerBlue;
		static SolidBrush firebrick;
		static SolidBrush floralWhite;
		static SolidBrush forestGreen;
		static SolidBrush fuchsia;
		static SolidBrush gainsboro;
		static SolidBrush ghostWhite;
		static SolidBrush gold;
		static SolidBrush goldenrod;
		static SolidBrush gray;
		static SolidBrush green;
		static SolidBrush greenYellow;
		static SolidBrush honeydew;
		static SolidBrush hotPink;
		static SolidBrush indianRed;
		static SolidBrush indigo;
		static SolidBrush ivory;
		static SolidBrush khaki;
		static SolidBrush lavender;
		static SolidBrush lavenderBlush;
		static SolidBrush lawnGreen;
		static SolidBrush lemonChiffon;
		static SolidBrush lightBlue;
		static SolidBrush lightCoral;
		static SolidBrush lightCyan;
		static SolidBrush lightGoldenrodYellow;
		static SolidBrush lightGray;
		static SolidBrush lightGreen;
		static SolidBrush lightPink;
		static SolidBrush lightSalmon;
		static SolidBrush lightSeaGreen;
		static SolidBrush lightSkyBlue;
		static SolidBrush lightSlateGray;
		static SolidBrush lightSteelBlue;
		static SolidBrush lightYellow;
		static SolidBrush lime;
		static SolidBrush limeGreen;
		static SolidBrush linen;
		static SolidBrush magenta;
		static SolidBrush maroon;
		static SolidBrush mediumAquamarine;
		static SolidBrush mediumBlue;
		static SolidBrush mediumOrchid;
		static SolidBrush mediumPurple;
		static SolidBrush mediumSeaGreen;
		static SolidBrush mediumSlateBlue;
		static SolidBrush mediumSpringGreen;
		static SolidBrush mediumTurquoise;
		static SolidBrush mediumVioletRed;
		static SolidBrush midnightBlue;
		static SolidBrush mintCream;
		static SolidBrush mistyRose;
		static SolidBrush moccasin;
		static SolidBrush navajoWhite;
		static SolidBrush navy;
		static SolidBrush oldLace;
		static SolidBrush olive;
		static SolidBrush oliveDrab;
		static SolidBrush orange;
		static SolidBrush orangeRed;
		static SolidBrush orchid;
		static SolidBrush paleGoldenrod;
		static SolidBrush paleGreen;
		static SolidBrush paleTurquoise;
		static SolidBrush paleVioletRed;
		static SolidBrush papayaWhip;
		static SolidBrush peachPuff;
		static SolidBrush peru;
		static SolidBrush pink;
		static SolidBrush plum;
		static SolidBrush powderBlue;
		static SolidBrush purple;
		static SolidBrush red;
		static SolidBrush rosyBrown;
		static SolidBrush royalBlue;
		static SolidBrush saddleBrown;
		static SolidBrush salmon;
		static SolidBrush sandyBrown;
		static SolidBrush seaGreen;
		static SolidBrush seaShell;
		static SolidBrush sienna;
		static SolidBrush silver;
		static SolidBrush skyBlue;
		static SolidBrush slateBlue;
		static SolidBrush slateGray;
		static SolidBrush snow;
		static SolidBrush springGreen;
		static SolidBrush steelBlue;
		static SolidBrush tan;
		static SolidBrush teal;
		static SolidBrush thistle;
		static SolidBrush tomato;
		static SolidBrush transparent;
		static SolidBrush turquoise;
		static SolidBrush violet;
		static SolidBrush wheat;
		static SolidBrush white;
		static SolidBrush whiteSmoke;
		static SolidBrush yellow;
		static SolidBrush yellowGreen;

		// We intentionally do not set the is_modifiable=false flag on
		// the brushes, to stay Microsoft compatible

		public static Brush AliceBlue {
			get {
				if (aliceBlue == null) {
					aliceBlue = new SolidBrush(Color.AliceBlue);
				}
				return (aliceBlue);
			}
		}

		public static Brush AntiqueWhite {
			get {
				if (antiqueWhite == null) {
					antiqueWhite = new SolidBrush(Color.AntiqueWhite);
				}
				return (antiqueWhite);
			}
		}

		public static Brush Aqua {
			get {
				if (aqua == null) {
					aqua = new SolidBrush(Color.Aqua);
				}
				return (aqua);
			}
		}

		public static Brush Aquamarine {
			get {
				if (aquamarine == null) {
					aquamarine = new SolidBrush(Color.Aquamarine);
				}
				return (aquamarine);
			}
		}

		public static Brush Azure {
			get {
				if (azure == null) {
					azure = new SolidBrush(Color.Azure);
				}
				return (azure);
			}
		}

		public static Brush Beige {
			get {
				if (beige == null) {
					beige = new SolidBrush(Color.Beige);
				}
				return (beige);
			}
		}

		public static Brush Bisque {
			get {
				if (bisque == null) {
					bisque = new SolidBrush(Color.Bisque);
				}
				return (bisque);
			}
		}

		public static Brush Black {
			get {
				if (black == null) {
					black = new SolidBrush(Color.Black);
				}
				return (black);
			}
		}

		public static Brush BlanchedAlmond {
			get {
				if (blanchedAlmond == null) {
					blanchedAlmond = new SolidBrush(Color.BlanchedAlmond);
				}
				return (blanchedAlmond);
			}
		}

		public static Brush Blue {
			get {
				if (blue == null) {
					blue = new SolidBrush(Color.Blue);
				}
				return (blue);
			}
		}

		public static Brush BlueViolet {
			get {
				if (blueViolet == null) {
					blueViolet = new SolidBrush(Color.BlueViolet);
				}
				return (blueViolet);
			}
		}

		public static Brush Brown {
			get {
				if (brown == null) {
					brown = new SolidBrush(Color.Brown);
				}
				return (brown);
			}
		}

		public static Brush BurlyWood {
			get {
				if (burlyWood == null) {
					burlyWood = new SolidBrush(Color.BurlyWood);
				}
				return (burlyWood);
			}
		}

		public static Brush CadetBlue {
			get {
				if (cadetBlue == null) {
					cadetBlue = new SolidBrush(Color.CadetBlue);
				}
				return (cadetBlue);
			}
		}

		public static Brush Chartreuse {
			get {
				if (chartreuse == null) {
					chartreuse = new SolidBrush(Color.Chartreuse);
				}
				return (chartreuse);
			}
		}

		public static Brush Chocolate {
			get {
				if (chocolate == null) {
					chocolate = new SolidBrush(Color.Chocolate);
				}
				return (chocolate);
			}
		}

		public static Brush Coral {
			get {
				if (coral == null) {
					coral = new SolidBrush(Color.Coral);
				}
				return (coral);
			}
		}

		public static Brush CornflowerBlue {
			get {
				if (cornflowerBlue == null) {
					cornflowerBlue = new SolidBrush(Color.CornflowerBlue);
				}
				return (cornflowerBlue);
			}
		}

		public static Brush Cornsilk {
			get {
				if (cornsilk == null) {
					cornsilk = new SolidBrush(Color.Cornsilk);
				}
				return (cornsilk);
			}
		}

		public static Brush Crimson {
			get {
				if (crimson == null) {
					crimson = new SolidBrush(Color.Crimson);
				}
				return (crimson);
			}
		}

		public static Brush Cyan {
			get {
				if (cyan == null) {
					cyan = new SolidBrush(Color.Cyan);
				}
				return (cyan);
			}
		}

		public static Brush DarkBlue {
			get {
				if (darkBlue == null) {
					darkBlue = new SolidBrush(Color.DarkBlue);
				}
				return (darkBlue);
			}
		}

		public static Brush DarkCyan {
			get {
				if (darkCyan == null) {
					darkCyan = new SolidBrush(Color.DarkCyan);
				}
				return (darkCyan);
			}
		}

		public static Brush DarkGoldenrod {
			get {
				if (darkGoldenrod == null) {
					darkGoldenrod = new SolidBrush(Color.DarkGoldenrod);
				}
				return (darkGoldenrod);
			}
		}

		public static Brush DarkGray {
			get {
				if (darkGray == null) {
					darkGray = new SolidBrush(Color.DarkGray);
				}
				return (darkGray);
			}
		}

		public static Brush DarkGreen {
			get {
				if (darkGreen == null) {
					darkGreen = new SolidBrush(Color.DarkGreen);
				}
				return (darkGreen);
			}
		}

		public static Brush DarkKhaki {
			get {
				if (darkKhaki == null) {
					darkKhaki = new SolidBrush(Color.DarkKhaki);
				}
				return (darkKhaki);
			}
		}

		public static Brush DarkMagenta {
			get {
				if (darkMagenta == null) {
					darkMagenta = new SolidBrush(Color.DarkMagenta);
				}
				return (darkMagenta);
			}
		}

		public static Brush DarkOliveGreen {
			get {
				if (darkOliveGreen == null) {
					darkOliveGreen = new SolidBrush(Color.DarkOliveGreen);
				}
				return (darkOliveGreen);
			}
		}

		public static Brush DarkOrange {
			get {
				if (darkOrange == null) {
					darkOrange = new SolidBrush(Color.DarkOrange);
				}
				return (darkOrange);
			}
		}

		public static Brush DarkOrchid {
			get {
				if (darkOrchid == null) {
					darkOrchid = new SolidBrush(Color.DarkOrchid);
				}
				return (darkOrchid);
			}
		}

		public static Brush DarkRed {
			get {
				if (darkRed == null) {
					darkRed = new SolidBrush(Color.DarkRed);
				}
				return (darkRed);
			}
		}

		public static Brush DarkSalmon {
			get {
				if (darkSalmon == null) {
					darkSalmon = new SolidBrush(Color.DarkSalmon);
				}
				return (darkSalmon);
			}
		}

		public static Brush DarkSeaGreen {
			get {
				if (darkSeaGreen == null) {
					darkSeaGreen = new SolidBrush(Color.DarkSeaGreen);
				}
				return (darkSeaGreen);
			}
		}

		public static Brush DarkSlateBlue {
			get {
				if (darkSlateBlue == null) {
					darkSlateBlue = new SolidBrush(Color.DarkSlateBlue);
				}
				return (darkSlateBlue);
			}
		}

		public static Brush DarkSlateGray {
			get {
				if (darkSlateGray == null) {
					darkSlateGray = new SolidBrush(Color.DarkSlateGray);
				}
				return (darkSlateGray);
			}
		}

		public static Brush DarkTurquoise {
			get {
				if (darkTurquoise == null) {
					darkTurquoise = new SolidBrush(Color.DarkTurquoise);
				}
				return (darkTurquoise);
			}
		}

		public static Brush DarkViolet {
			get {
				if (darkViolet == null) {
					darkViolet = new SolidBrush(Color.DarkViolet);
				}
				return (darkViolet);
			}
		}

		public static Brush DeepPink {
			get {
				if (deepPink == null) {
					deepPink = new SolidBrush(Color.DeepPink);
				}
				return (deepPink);
			}
		}

		public static Brush DeepSkyBlue {
			get {
				if (deepSkyBlue == null) {
					deepSkyBlue = new SolidBrush(Color.DeepSkyBlue);
				}
				return (deepSkyBlue);
			}
		}

		public static Brush DimGray {
			get {
				if (dimGray == null) {
					dimGray = new SolidBrush(Color.DimGray);
				}
				return (dimGray);
			}
		}

		public static Brush DodgerBlue {
			get {
				if (dodgerBlue == null) {
					dodgerBlue = new SolidBrush(Color.DodgerBlue);
				}
				return (dodgerBlue);
			}
		}

		public static Brush Firebrick {
			get {
				if (firebrick == null) {
					firebrick = new SolidBrush(Color.Firebrick);
				}
				return (firebrick);
			}
		}

		public static Brush FloralWhite {
			get {
				if (floralWhite == null) {
					floralWhite = new SolidBrush(Color.FloralWhite);
				}
				return (floralWhite);
			}
		}

		public static Brush ForestGreen {
			get {
				if (forestGreen == null) {
					forestGreen = new SolidBrush(Color.ForestGreen);
				}
				return (forestGreen);
			}
		}

		public static Brush Fuchsia {
			get {
				if (fuchsia == null) {
					fuchsia = new SolidBrush(Color.Fuchsia);
				}
				return (fuchsia);
			}
		}

		public static Brush Gainsboro {
			get {
				if (gainsboro == null) {
					gainsboro = new SolidBrush(Color.Gainsboro);
				}
				return (gainsboro);
			}
		}

		public static Brush GhostWhite {
			get {
				if (ghostWhite == null) {
					ghostWhite = new SolidBrush(Color.GhostWhite);
				}
				return (ghostWhite);
			}
		}

		public static Brush Gold {
			get {
				if (gold == null) {
					gold = new SolidBrush(Color.Gold);
				}
				return (gold);
			}
		}

		public static Brush Goldenrod {
			get {
				if (goldenrod == null) {
					goldenrod = new SolidBrush(Color.Goldenrod);
				}
				return (goldenrod);
			}
		}

		public static Brush Gray {
			get {
				if (gray == null) {
					gray = new SolidBrush(Color.Gray);
				}
				return (gray);
			}
		}

		public static Brush Green {
			get {
				if (green == null) {
					green = new SolidBrush(Color.Green);
				}
				return (green);
			}
		}

		public static Brush GreenYellow {
			get {
				if (greenYellow == null) {
					greenYellow = new SolidBrush(Color.GreenYellow);
				}
				return (greenYellow);
			}
		}

		public static Brush Honeydew {
			get {
				if (honeydew == null) {
					honeydew = new SolidBrush(Color.Honeydew);
				}
				return (honeydew);
			}
		}

		public static Brush HotPink {
			get {
				if (hotPink == null) {
					hotPink = new SolidB
Download .txt
gitextract_4p48603e/

├── .gitignore
├── ChangeLog.txt
├── CustomDevice/
│   ├── CustomDevice.csproj
│   ├── DeviceGraphics.cs
│   ├── KeyPad.cs
│   ├── KeyPadKey.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Utils.cs
│   └── WindowsScreen.cs
├── License.txt
├── Managed.sln
├── Snake/
│   ├── ASnake.cs
│   ├── CrashType.cs
│   ├── Program.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Snake.csproj
│   └── SnakePit.cs
├── System/
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── System.Collections.Generic/
│   │   ├── Queue.cs
│   │   └── Stack.cs
│   ├── System.ComponentModel/
│   │   └── Win32Exception.cs
│   ├── System.Net/
│   │   ├── Dns.cs
│   │   ├── EndPoint.cs
│   │   ├── IPAddress.cs
│   │   ├── IPEndPoint.cs
│   │   ├── IPHostEntry.cs
│   │   └── SocketAddress.cs
│   ├── System.Net.Sockets/
│   │   ├── AddressFamily.cs
│   │   ├── ProtocolType.cs
│   │   ├── Socket.cs
│   │   ├── SocketException.cs
│   │   ├── SocketFlags.cs
│   │   ├── SocketOptionLevel.cs
│   │   ├── SocketOptionName.cs
│   │   └── SocketType.cs
│   └── System.csproj
├── System.Core/
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── System/
│   │   ├── Action.cs
│   │   └── Func.cs
│   ├── System.Collections.Generic/
│   │   └── HashSet.cs
│   ├── System.Core.csproj
│   ├── System.Linq/
│   │   ├── Enumerable.cs
│   │   ├── Grouping.cs
│   │   ├── IGrouping.cs
│   │   ├── ILookup.cs
│   │   ├── IOrderedEnumerable.cs
│   │   ├── Lookup.cs
│   │   └── OrderedEnumerable.cs
│   └── System.Runtime.CompilerServices/
│       └── ExtensionAttribute.cs
├── System.Drawing/
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── System.Drawing/
│   │   ├── Bitmap.cs
│   │   ├── Brush.cs
│   │   ├── Brushes.cs
│   │   ├── Color.cs
│   │   ├── Font.cs
│   │   ├── FontFamily.cs
│   │   ├── FontStyle.cs
│   │   ├── Graphics.cs
│   │   ├── Image.cs
│   │   ├── KnownColor.cs
│   │   ├── KnownColors.cs
│   │   ├── LibIGraph.cs
│   │   ├── Pen.cs
│   │   ├── Pens.cs
│   │   ├── Point.cs
│   │   ├── PointF.cs
│   │   ├── Rectangle.cs
│   │   ├── RectangleF.cs
│   │   ├── Region.cs
│   │   ├── Size.cs
│   │   ├── SizeF.cs
│   │   ├── SolidBrush.cs
│   │   ├── StringAlignment.cs
│   │   ├── StringFormat.cs
│   │   ├── StringFormatFlags.cs
│   │   └── StringTrimming.cs
│   ├── System.Drawing.Drawing2D/
│   │   ├── HatchBrush.cs
│   │   ├── HatchStyle.cs
│   │   ├── LinearGradientBrush.cs
│   │   └── WrapMode.cs
│   ├── System.Drawing.Imaging/
│   │   └── PixelFormat.cs
│   ├── System.Drawing.Text/
│   │   └── TextRenderingHint.cs
│   └── System.Drawing.csproj
├── corlib/
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── System/
│   │   ├── Action.cs
│   │   ├── Activator.cs
│   │   ├── ArgumentException.cs
│   │   ├── ArgumentNullException.cs
│   │   ├── ArgumentOutOfRangeException.cs
│   │   ├── ArithmeticException.cs
│   │   ├── Array.cs
│   │   ├── ArrayTypeMismatchException.cs
│   │   ├── AsyncCallback.cs
│   │   ├── Attribute.cs
│   │   ├── AttributeTargets.cs
│   │   ├── AttributeUsageAttribute.cs
│   │   ├── BitConverter.cs
│   │   ├── Boolean.cs
│   │   ├── Byte.cs
│   │   ├── Char.cs
│   │   ├── CharEnumerator.cs
│   │   ├── Console.cs
│   │   ├── ConsoleKey.cs
│   │   ├── ConsoleKeyInfo.cs
│   │   ├── ConsoleModifiers.cs
│   │   ├── Converter.cs
│   │   ├── DateTime.cs
│   │   ├── DateTimeKind.cs
│   │   ├── DayOfWeek.cs
│   │   ├── Decimal.cs
│   │   ├── Delegate.cs
│   │   ├── Double.cs
│   │   ├── Enum.cs
│   │   ├── Environment.cs
│   │   ├── Exception.cs
│   │   ├── FlagsAttribute.cs
│   │   ├── FormatException.cs
│   │   ├── GC.cs
│   │   ├── IAsyncResult.cs
│   │   ├── ICloneable.cs
│   │   ├── IComparable.cs
│   │   ├── ICustomFormatter.cs
│   │   ├── IDisposable.cs
│   │   ├── IEquatable.cs
│   │   ├── IFormatProvider.cs
│   │   ├── IFormattable.cs
│   │   ├── IndexOutOfRangeException.cs
│   │   ├── Int16.cs
│   │   ├── Int32.cs
│   │   ├── Int64.cs
│   │   ├── IntPtr.cs
│   │   ├── InvalidCastException.cs
│   │   ├── InvalidOperationException.cs
│   │   ├── MarshalByRefObject.cs
│   │   ├── Math.cs
│   │   ├── MulticastDelegate.cs
│   │   ├── MulticastNotSupportedException.cs
│   │   ├── NotImplementedException.cs
│   │   ├── NotSupportedException.cs
│   │   ├── NullReferenceException.cs
│   │   ├── Nullable.cs
│   │   ├── NumberFormatter.cs
│   │   ├── Object.cs
│   │   ├── ObjectDisposedException.cs
│   │   ├── OperatingSystem.cs
│   │   ├── OverflowException.cs
│   │   ├── ParamArrayAttribute.cs
│   │   ├── ParseHelper.cs
│   │   ├── PlatformID.cs
│   │   ├── Predicate.cs
│   │   ├── Random.cs
│   │   ├── RuntimeFieldHandle.cs
│   │   ├── RuntimeMethodHandle.cs
│   │   ├── RuntimeType.cs
│   │   ├── RuntimeTypeHandle.cs
│   │   ├── SByte.cs
│   │   ├── Single.cs
│   │   ├── String.cs
│   │   ├── StringComparison.cs
│   │   ├── StringHelper.cs
│   │   ├── SystemException.cs
│   │   ├── TimeSpan.cs
│   │   ├── Type.cs
│   │   ├── UInt16.cs
│   │   ├── UInt32.cs
│   │   ├── UInt64.cs
│   │   ├── UIntPtr.cs
│   │   ├── ValueType.cs
│   │   ├── Version.cs
│   │   ├── Void.cs
│   │   └── WeakReference.cs
│   ├── System.Collections/
│   │   ├── ArrayList.cs
│   │   ├── DictionaryEntry.cs
│   │   ├── ICollection.cs
│   │   ├── IComparer.cs
│   │   ├── IDictionary.cs
│   │   ├── IDictionaryEnumerator.cs
│   │   ├── IEnumerable.cs
│   │   ├── IEnumerator.cs
│   │   ├── IEqualityComparer.cs
│   │   └── IList.cs
│   ├── System.Collections.Generic/
│   │   ├── Comparer.cs
│   │   ├── Dictionary.cs
│   │   ├── EqualityComparer.cs
│   │   ├── GenericEqualityComparer.cs
│   │   ├── ICollection.cs
│   │   ├── IComparer.cs
│   │   ├── IDictionary.cs
│   │   ├── IEnumerable.cs
│   │   ├── IEnumerator.cs
│   │   ├── IEqualityComparer.cs
│   │   ├── IList.cs
│   │   ├── KeyNotFoundException.cs
│   │   ├── KeyValuePair.cs
│   │   └── List.cs
│   ├── System.Diagnostics/
│   │   └── Debugger.cs
│   ├── System.Globalization/
│   │   ├── Calendar.cs
│   │   ├── CalendarWeekRule.cs
│   │   ├── CalendricalCalculations.cs
│   │   ├── CultureInfo.cs
│   │   ├── CultureTypes.cs
│   │   ├── DateTimeFormatInfo.cs
│   │   ├── DigitShapes.cs
│   │   ├── GregorianCalendar.cs
│   │   ├── GregorianCalendarTypes.cs
│   │   ├── NumberFormatInfo.cs
│   │   ├── NumberStyles.cs
│   │   ├── TextInfo.cs
│   │   └── UnicodeCategory.cs
│   ├── System.IO/
│   │   ├── CheckArgument.cs
│   │   ├── Directory.cs
│   │   ├── DirectoryInfo.cs
│   │   ├── DirectoryNotFoundException.cs
│   │   ├── File.cs
│   │   ├── FileAccess.cs
│   │   ├── FileAttributes.cs
│   │   ├── FileInfo.cs
│   │   ├── FileInternal.cs
│   │   ├── FileMode.cs
│   │   ├── FileNotFoundException.cs
│   │   ├── FileShare.cs
│   │   ├── FileStream.cs
│   │   ├── FileSystemInfo.cs
│   │   ├── IOException.cs
│   │   ├── Path.cs
│   │   ├── SearchPattern.cs
│   │   ├── SeekOrigin.cs
│   │   ├── Stream.cs
│   │   ├── StreamReader.cs
│   │   └── TextReader.cs
│   ├── System.Reflection/
│   │   ├── DefaultMemberAttribute.cs
│   │   └── MemberInfo.cs
│   ├── System.Runtime.CompilerServices/
│   │   ├── IndexerNameAttribute.cs
│   │   ├── MethodImplAttribute.cs
│   │   ├── MethodImplOptions.cs
│   │   └── RuntimeHelpers.cs
│   ├── System.Runtime.InteropServices/
│   │   ├── CallingConvention.cs
│   │   ├── CharSet.cs
│   │   ├── DllImportAttribute.cs
│   │   ├── ExternalException.cs
│   │   ├── InAttribute.cs
│   │   └── OutAttribute.cs
│   ├── System.Text/
│   │   ├── Decoder.cs
│   │   ├── Encoding.cs
│   │   ├── StringBuilder.cs
│   │   ├── UTF8Encoding.cs
│   │   └── UnicodeEncoding.cs
│   ├── System.Threading/
│   │   ├── Interlocked.cs
│   │   ├── Monitor.cs
│   │   ├── ParameterizedThreadStart.cs
│   │   ├── Thread.cs
│   │   ├── ThreadStart.cs
│   │   ├── ThreadState.cs
│   │   └── WaitHandle.cs
│   └── corlib.csproj
├── dna/
│   ├── Bugs.txt
│   ├── CIL_OpCodes.h
│   ├── CLIFile.c
│   ├── CLIFile.h
│   ├── Compat.h
│   ├── Config.h
│   ├── Cultures/
│   │   ├── _
│   │   ├── af
│   │   ├── af-ZA
│   │   ├── ar
│   │   ├── ar-AE
│   │   ├── ar-BH
│   │   ├── ar-DZ
│   │   ├── ar-EG
│   │   ├── ar-IQ
│   │   ├── ar-JO
│   │   ├── ar-KW
│   │   ├── ar-LB
│   │   ├── ar-LY
│   │   ├── ar-MA
│   │   ├── ar-OM
│   │   ├── ar-QA
│   │   ├── ar-SA
│   │   ├── ar-SY
│   │   ├── ar-TN
│   │   ├── ar-YE
│   │   ├── az
│   │   ├── az-Cyrl-AZ
│   │   ├── az-Latn-AZ
│   │   ├── be
│   │   ├── be-BY
│   │   ├── bg
│   │   ├── bg-BG
│   │   ├── bn-IN
│   │   ├── bs-Latn-BA
│   │   ├── ca
│   │   ├── ca-ES
│   │   ├── cs
│   │   ├── cs-CZ
│   │   ├── cy-GB
│   │   ├── da
│   │   ├── da-DK
│   │   ├── de
│   │   ├── de-AT
│   │   ├── de-CH
│   │   ├── de-DE
│   │   ├── de-LI
│   │   ├── de-LU
│   │   ├── dv
│   │   ├── dv-MV
│   │   ├── el
│   │   ├── el-GR
│   │   ├── en
│   │   ├── en-029
│   │   ├── en-AU
│   │   ├── en-BZ
│   │   ├── en-CA
│   │   ├── en-GB
│   │   ├── en-IE
│   │   ├── en-JM
│   │   ├── en-NZ
│   │   ├── en-PH
│   │   ├── en-TT
│   │   ├── en-US
│   │   ├── en-ZA
│   │   ├── en-ZW
│   │   ├── es
│   │   ├── es-AR
│   │   ├── es-BO
│   │   ├── es-CL
│   │   ├── es-CO
│   │   ├── es-CR
│   │   ├── es-DO
│   │   ├── es-EC
│   │   ├── es-ES
│   │   ├── es-GT
│   │   ├── es-HN
│   │   ├── es-MX
│   │   ├── es-NI
│   │   ├── es-PA
│   │   ├── es-PE
│   │   ├── es-PR
│   │   ├── es-PY
│   │   ├── es-SV
│   │   ├── es-UY
│   │   ├── es-VE
│   │   ├── et
│   │   ├── et-EE
│   │   ├── eu
│   │   ├── eu-ES
│   │   ├── fa
│   │   ├── fa-IR
│   │   ├── fi
│   │   ├── fi-FI
│   │   ├── fo
│   │   ├── fo-FO
│   │   ├── fr
│   │   ├── fr-BE
│   │   ├── fr-CA
│   │   ├── fr-CH
│   │   ├── fr-FR
│   │   ├── fr-LU
│   │   ├── fr-MC
│   │   ├── gl
│   │   ├── gl-ES
│   │   ├── gu
│   │   ├── gu-IN
│   │   ├── he
│   │   ├── he-IL
│   │   ├── hi
│   │   ├── hi-IN
│   │   ├── hr
│   │   ├── hr-BA
│   │   ├── hr-HR
│   │   ├── hu
│   │   ├── hu-HU
│   │   ├── hy
│   │   ├── hy-AM
│   │   ├── id
│   │   ├── id-ID
│   │   ├── is
│   │   ├── is-IS
│   │   ├── it
│   │   ├── it-CH
│   │   ├── it-IT
│   │   ├── ja
│   │   ├── ja-JP
│   │   ├── ka
│   │   ├── ka-GE
│   │   ├── kk
│   │   ├── kk-KZ
│   │   ├── kn
│   │   ├── kn-IN
│   │   ├── ko
│   │   ├── ko-KR
│   │   ├── kok
│   │   ├── kok-IN
│   │   ├── ky
│   │   ├── ky-KG
│   │   ├── lt
│   │   ├── lt-LT
│   │   ├── lv
│   │   ├── lv-LV
│   │   ├── mi-NZ
│   │   ├── mk
│   │   ├── mk-MK
│   │   ├── ml-IN
│   │   ├── mn
│   │   ├── mn-MN
│   │   ├── mr
│   │   ├── mr-IN
│   │   ├── ms
│   │   ├── ms-BN
│   │   ├── ms-MY
│   │   ├── mt-MT
│   │   ├── nb-NO
│   │   ├── nl
│   │   ├── nl-BE
│   │   ├── nl-NL
│   │   ├── nn-NO
│   │   ├── no
│   │   ├── ns-ZA
│   │   ├── pa
│   │   ├── pa-IN
│   │   ├── pl
│   │   ├── pl-PL
│   │   ├── pt
│   │   ├── pt-BR
│   │   ├── pt-PT
│   │   ├── quz-BO
│   │   ├── quz-EC
│   │   ├── quz-PE
│   │   ├── ro
│   │   ├── ro-RO
│   │   ├── ru
│   │   ├── ru-RU
│   │   ├── sa
│   │   ├── sa-IN
│   │   ├── se-FI
│   │   ├── se-NO
│   │   ├── se-SE
│   │   ├── sk
│   │   ├── sk-SK
│   │   ├── sl
│   │   ├── sl-SI
│   │   ├── sma-NO
│   │   ├── sma-SE
│   │   ├── smj-NO
│   │   ├── smj-SE
│   │   ├── smn-FI
│   │   ├── sms-FI
│   │   ├── sq
│   │   ├── sq-AL
│   │   ├── sr
│   │   ├── sr-Cyrl-BA
│   │   ├── sr-Cyrl-CS
│   │   ├── sr-Latn-BA
│   │   ├── sr-Latn-CS
│   │   ├── sv
│   │   ├── sv-FI
│   │   ├── sv-SE
│   │   ├── sw
│   │   ├── sw-KE
│   │   ├── syr
│   │   ├── syr-SY
│   │   ├── ta
│   │   ├── ta-IN
│   │   ├── te
│   │   ├── te-IN
│   │   ├── th
│   │   ├── th-TH
│   │   ├── tn-ZA
│   │   ├── tr
│   │   ├── tr-TR
│   │   ├── tt
│   │   ├── tt-RU
│   │   ├── uk
│   │   ├── uk-UA
│   │   ├── ur
│   │   ├── ur-PK
│   │   ├── uz
│   │   ├── uz-Cyrl-UZ
│   │   ├── uz-Latn-UZ
│   │   ├── vi
│   │   ├── vi-VN
│   │   ├── xh-ZA
│   │   ├── zh-CHS
│   │   ├── zh-CHT
│   │   ├── zh-CN
│   │   ├── zh-HK
│   │   ├── zh-MO
│   │   ├── zh-SG
│   │   ├── zh-TW
│   │   └── zu-ZA
│   ├── Delegate.c
│   ├── Delegate.h
│   ├── EvalStack.h
│   ├── Finalizer.c
│   ├── Finalizer.h
│   ├── Generics.c
│   ├── Generics.h
│   ├── Heap.c
│   ├── Heap.h
│   ├── InternalCall.c
│   ├── InternalCall.h
│   ├── JIT.c
│   ├── JIT.h
│   ├── JIT_Execute.c
│   ├── JIT_OpCodes.h
│   ├── Makefile
│   ├── MetaData.c
│   ├── MetaData.h
│   ├── MetaDataTables.h
│   ├── MetaData_Fill.c
│   ├── MetaData_Search.c
│   ├── MethodState.c
│   ├── MethodState.h
│   ├── PInvoke.c
│   ├── PInvoke.h
│   ├── PInvoke_CaseCode.h
│   ├── PInvoke_TypeDef.h
│   ├── RVA.c
│   ├── RVA.h
│   ├── Sys.c
│   ├── Sys.h
│   ├── System.Array.c
│   ├── System.Array.h
│   ├── System.Char.CaseConversion.h
│   ├── System.Char.UC_IndexRuns.h
│   ├── System.Char.c
│   ├── System.Char.h
│   ├── System.Console.c
│   ├── System.Console.h
│   ├── System.DateTime.c
│   ├── System.DateTime.h
│   ├── System.Diagnostics.Debugger.c
│   ├── System.Diagnostics.Debugger.h
│   ├── System.Enum.c
│   ├── System.Enum.h
│   ├── System.Environment.c
│   ├── System.Environment.h
│   ├── System.GC.c
│   ├── System.GC.h
│   ├── System.IO.FileInternal.c
│   ├── System.IO.FileInternal.h
│   ├── System.Math.c
│   ├── System.Math.h
│   ├── System.Net.Dns.c
│   ├── System.Net.Dns.h
│   ├── System.Net.Sockets.Socket.c
│   ├── System.Net.Sockets.Socket.h
│   ├── System.Object.c
│   ├── System.Object.h
│   ├── System.Runtime.CompilerServices.RuntimeHelpers.c
│   ├── System.Runtime.CompilerServices.RuntimeHelpers.h
│   ├── System.RuntimeType.c
│   ├── System.RuntimeType.h
│   ├── System.String.c
│   ├── System.String.h
│   ├── System.Threading.Interlocked.c
│   ├── System.Threading.Interlocked.h
│   ├── System.Threading.Monitor.c
│   ├── System.Threading.Monitor.h
│   ├── System.Threading.Thread.c
│   ├── System.Threading.Thread.h
│   ├── System.Type.c
│   ├── System.Type.h
│   ├── System.ValueType.c
│   ├── System.ValueType.h
│   ├── System.WeakReference.c
│   ├── System.WeakReference.h
│   ├── Thread.c
│   ├── Thread.h
│   ├── Type.c
│   ├── Type.h
│   ├── Types.h
│   ├── dna.c
│   └── dna.vcproj
├── dna.sln
├── libIGraph/
│   ├── Bitmap.c
│   ├── Bitmap.h
│   ├── BitmapLoader.c
│   ├── Brush.c
│   ├── Brush.h
│   ├── Config.h
│   ├── DrawEllipses.c
│   ├── DrawEllipses.h
│   ├── DrawLines.c
│   ├── DrawLines.h
│   ├── DrawRectangles.c
│   ├── DrawRectangles.h
│   ├── Exports.c
│   ├── Font.c
│   ├── Font.h
│   ├── FontFamily.c
│   ├── FontFamily.h
│   ├── GetScreen.c
│   ├── GetScreen.h
│   ├── Graphics.c
│   ├── Graphics.h
│   ├── HatchBrushDefs.h
│   ├── Image.c
│   ├── Image.h
│   ├── Makefile
│   ├── Pen.c
│   ├── Pen.h
│   ├── Pixels.c
│   ├── Pixels.h
│   ├── Region.c
│   ├── Region.h
│   ├── StringFormat.c
│   ├── StringFormat.h
│   ├── Text.c
│   ├── Text.h
│   ├── freetype.txt
│   ├── include/
│   │   ├── freetype/
│   │   │   ├── config/
│   │   │   │   ├── ftconfig.h
│   │   │   │   ├── ftheader.h
│   │   │   │   ├── ftmodule.h
│   │   │   │   ├── ftoption.h
│   │   │   │   └── ftstdlib.h
│   │   │   ├── freetype.h
│   │   │   ├── ftbbox.h
│   │   │   ├── ftbdf.h
│   │   │   ├── ftbitmap.h
│   │   │   ├── ftcache.h
│   │   │   ├── ftchapters.h
│   │   │   ├── fterrdef.h
│   │   │   ├── fterrors.h
│   │   │   ├── ftgasp.h
│   │   │   ├── ftglyph.h
│   │   │   ├── ftgxval.h
│   │   │   ├── ftgzip.h
│   │   │   ├── ftimage.h
│   │   │   ├── ftincrem.h
│   │   │   ├── ftlcdfil.h
│   │   │   ├── ftlist.h
│   │   │   ├── ftlzw.h
│   │   │   ├── ftmac.h
│   │   │   ├── ftmm.h
│   │   │   ├── ftmodapi.h
│   │   │   ├── ftmoderr.h
│   │   │   ├── ftotval.h
│   │   │   ├── ftoutln.h
│   │   │   ├── ftpfr.h
│   │   │   ├── ftrender.h
│   │   │   ├── ftsizes.h
│   │   │   ├── ftsnames.h
│   │   │   ├── ftstroke.h
│   │   │   ├── ftsynth.h
│   │   │   ├── ftsystem.h
│   │   │   ├── fttrigon.h
│   │   │   ├── fttypes.h
│   │   │   ├── ftwinfnt.h
│   │   │   ├── ftxf86.h
│   │   │   ├── internal/
│   │   │   │   ├── autohint.h
│   │   │   │   ├── ftcalc.h
│   │   │   │   ├── ftdebug.h
│   │   │   │   ├── ftdriver.h
│   │   │   │   ├── ftgloadr.h
│   │   │   │   ├── ftmemory.h
│   │   │   │   ├── ftobjs.h
│   │   │   │   ├── ftrfork.h
│   │   │   │   ├── ftserv.h
│   │   │   │   ├── ftstream.h
│   │   │   │   ├── fttrace.h
│   │   │   │   ├── ftvalid.h
│   │   │   │   ├── internal.h
│   │   │   │   ├── pcftypes.h
│   │   │   │   ├── psaux.h
│   │   │   │   ├── pshints.h
│   │   │   │   ├── services/
│   │   │   │   │   ├── svbdf.h
│   │   │   │   │   ├── svgldict.h
│   │   │   │   │   ├── svgxval.h
│   │   │   │   │   ├── svkern.h
│   │   │   │   │   ├── svmm.h
│   │   │   │   │   ├── svotval.h
│   │   │   │   │   ├── svpfr.h
│   │   │   │   │   ├── svpostnm.h
│   │   │   │   │   ├── svpscmap.h
│   │   │   │   │   ├── svpsinfo.h
│   │   │   │   │   ├── svsfnt.h
│   │   │   │   │   ├── svttcmap.h
│   │   │   │   │   ├── svtteng.h
│   │   │   │   │   ├── svttglyf.h
│   │   │   │   │   ├── svwinfnt.h
│   │   │   │   │   └── svxf86nm.h
│   │   │   │   ├── sfnt.h
│   │   │   │   ├── t1types.h
│   │   │   │   └── tttypes.h
│   │   │   ├── t1tables.h
│   │   │   ├── ttnameid.h
│   │   │   ├── tttables.h
│   │   │   ├── tttags.h
│   │   │   └── ttunpat.h
│   │   └── ft2build.h
│   ├── jidctflt.c
│   ├── lib/
│   │   └── freetype.lib
│   ├── libIGraph.c
│   ├── libIGraph.def
│   ├── libIGraph.h
│   ├── libIGraph.vcproj
│   ├── tinyjpeg-internal.h
│   ├── tinyjpeg.c
│   └── tinyjpeg.h
├── mini-demo-dna/
│   ├── HelloWorld/
│   │   ├── HelloWorld.csproj
│   │   └── Program.cs
│   ├── mini-demo-dna/
│   │   └── main.c
│   ├── mini-demo-dna.sln
│   └── readme.md
└── readme.markdown
Download .txt
Showing preview only (251K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2941 symbols across 362 files)

FILE: CustomDevice/DeviceGraphics.cs
  class DeviceGraphics (line 29) | public static class DeviceGraphics {
    method GetScreen (line 48) | public static Graphics GetScreen() {
    method GetScreen_InterNet2 (line 63) | private static Graphics GetScreen_InterNet2() {
    method GetScreen_Windows (line 69) | private static Graphics GetScreen_Windows() {

FILE: CustomDevice/KeyPad.cs
  class KeyPad (line 29) | public static class KeyPad {
    method IsKeyDown_Internal (line 31) | [DllImport("libIGraph")]
    method LatestKeyUp_Internal (line 34) | [DllImport("libIGraph")]
    method LatestKeyDown_Internal (line 37) | [DllImport("libIGraph")]
    method IsKeyDown (line 40) | public static bool IsKeyDown(KeyPadKey key) {
    method WindowsLatestKeyUp (line 48) | private static bool WindowsLatestKeyUp(out KeyPadKey key) {
    method WindowsLatestKeyDown (line 52) | private static bool WindowsLatestKeyDown(out KeyPadKey key) {
    method LatestKeyUp (line 56) | public static bool LatestKeyUp(out KeyPadKey key) {
    method LatestKeyDown (line 71) | public static bool LatestKeyDown(out KeyPadKey key) {
    method ReadKey (line 86) | public static KeyPadKey? ReadKey(int timeoutMs) {
    method ReadKey (line 98) | public static KeyPadKey? ReadKey() {

FILE: CustomDevice/KeyPadKey.cs
  type KeyPadKey (line 26) | public enum KeyPadKey {

FILE: CustomDevice/Utils.cs
  class Utils (line 26) | static class Utils {

FILE: CustomDevice/WindowsScreen.cs
  class WindowsScreen (line 31) | class WindowsScreen : Form {
    method WindowsScreen (line 45) | public WindowsScreen(int width, int height) {
    method OnPaint (line 69) | protected override void OnPaint(PaintEventArgs e) {
    method WindowsMessagePump (line 75) | internal static void WindowsMessagePump(object state) {
    method MapKey (line 86) | private KeyPadKey MapKey(Keys pcKey, out bool isValid) {
    method OnKeyDown (line 129) | protected override void OnKeyDown(KeyEventArgs e) {
    method OnKeyUp (line 141) | protected override void OnKeyUp(KeyEventArgs e) {
    method IsKeyDown (line 153) | public bool IsKeyDown(KeyPadKey key) {
    method LatestKeyUp (line 158) | public bool LatestKeyUp(out KeyPadKey key) {
    method LatestKeyDown (line 170) | public bool LatestKeyDown(out KeyPadKey key) {

FILE: Snake/ASnake.cs
  class ASnake (line 27) | class ASnake {
    method ASnake (line 36) | public ASnake(SnakePit snakePit, int startLength, Point startPosition,...
    method Move (line 51) | public CrashType Move() {
    method DrawHead (line 70) | public void DrawHead() {
    method SetDirection (line 74) | public void SetDirection(int x, int y) {
    method DoesIntersect (line 87) | public bool DoesIntersect(IEnumerable<Point> cells) {
    method DoesIntersect (line 96) | public bool DoesIntersect(Point cell) {
    method IncreaseLength (line 105) | public void IncreaseLength(int amount) {

FILE: Snake/CrashType.cs
  type CrashType (line 26) | public enum CrashType {

FILE: Snake/Program.cs
  class Program (line 29) | class Program {
    method Main (line 30) | static void Main(string[] args) {
    method Play (line 39) | static bool Play() {

FILE: Snake/SnakePit.cs
  class SnakePit (line 29) | class SnakePit {
    method SnakePit (line 43) | public SnakePit() {
    method FillCell (line 78) | private void FillCell(Point cell, Color col) {
    method FillAndOutlineCells (line 85) | public void FillAndOutlineCells(IEnumerable<Point> points, Color fillC...
    method FillAndOutlineCells (line 91) | public void FillAndOutlineCells(IEnumerable<Point> points, Brush fillB...
    method AddSnake (line 110) | public void AddSnake(ASnake snake) {
    method SetCell (line 126) | public void SetCell(Point cell, Color col) {
    method ClearCell (line 130) | public void ClearCell(Point cell) {
    method IsCrashObstacle (line 134) | public bool IsCrashObstacle(Point cell) {
    method IsCrash (line 145) | public CrashType IsCrash(Point cell) {
    method CreateFood (line 162) | public void CreateFood(bool canMoveFood) {
    method RemoveFood (line 200) | public void RemoveFood() {
    method EatFood (line 210) | public bool EatFood() {
    method Msg (line 222) | public void Msg(string msg) {
    method ShowScore (line 228) | public void ShowScore() {
    method Dist (line 245) | private int Dist(Point a, Point b) {
    method AddObstacle (line 251) | public void AddObstacle() {

FILE: System.Core/System.Collections.Generic/HashSet.cs
  class HashSet (line 28) | public class HashSet<T> : ICollection<T>, IEnumerable<T>, IEnumerable {
    type Enumerator (line 30) | public struct Enumerator : IEnumerator<T>, IEnumerator, IDisposable {
      method Enumerator (line 32) | internal Enumerator(HashSet<T> hashSet) {
      method Dispose (line 44) | public void Dispose() {
      method MoveNext (line 53) | public bool MoveNext() {
      method Reset (line 57) | public void Reset() {
    method HashSet (line 65) | public HashSet() {
    method HashSet (line 69) | public HashSet(IEnumerable<T> collection) : this(collection, null) { }
    method HashSet (line 71) | public HashSet(IEqualityComparer<T> comparer) {
    method HashSet (line 75) | public HashSet(IEnumerable<T> collection, IEqualityComparer<T> compare...
    method Add (line 85) | public bool Add(T item) {
    method Clear (line 91) | public void Clear() {
    method Contains (line 95) | public bool Contains(T item) {
    method CopyTo (line 99) | public void CopyTo(T[] array) {
    method CopyTo (line 103) | public void CopyTo(T[] array, int arrayIndex) {
    method CopyTo (line 107) | public void CopyTo(T[] array, int arrayIndex, int count) {
    method GetEnumerator (line 111) | public Enumerator GetEnumerator() {
    method Remove (line 115) | public bool Remove(T item) {
    method Add (line 134) | void ICollection<T>.Add(T item) {
    method GetEnumerator (line 144) | IEnumerator<T> IEnumerable<T>.GetEnumerator() {
    method GetEnumerator (line 148) | IEnumerator IEnumerable.GetEnumerator() {

FILE: System.Core/System.Linq/Enumerable.cs
  class Enumerable (line 28) | public static class Enumerable {
    class Funcs (line 30) | private static class Funcs<T> {
    method Aggregate (line 37) | public static T Aggregate<T>(this IEnumerable<T> source, Func<T, T, T>...
    method Aggregate (line 51) | public static TAcc Aggregate<T, TAcc>(this IEnumerable<T> source, TAcc...
    method Aggregate (line 55) | public static TResult Aggregate<T, TAcc, TResult>
    method All (line 68) | public static bool All<T>(this IEnumerable<T> source, Func<T, bool> pr...
    method Any (line 82) | public static bool Any<T>(this IEnumerable<T> source) {
    method Any (line 86) | public static bool Any<T>(this IEnumerable<T> source, Func<T, bool> pr...
    method Average (line 100) | public static double Average(this IEnumerable<int> source) {
    method Average (line 104) | public static double? Average(this IEnumerable<int?> source) {
    method Average (line 108) | public static double Average(this IEnumerable<long> source) {
    method Average (line 112) | public static double? Average(this IEnumerable<long?> source) {
    method Average (line 116) | public static float Average(this IEnumerable<float> source) {
    method Average (line 120) | public static float? Average(this IEnumerable<float?> source) {
    method Average (line 124) | public static double Average(this IEnumerable<double> source) {
    method Average (line 128) | public static double? Average(this IEnumerable<double?> source) {
    method Average (line 132) | public static Decimal Average(this IEnumerable<Decimal> source) {
    method Average (line 136) | public static Decimal? Average(this IEnumerable<Decimal?> source) {
    method Average (line 140) | public static double Average<T>(this IEnumerable<T> source, Func<T, in...
    method Average (line 144) | public static double? Average<T>(this IEnumerable<T> source, Func<T, i...
    method Average (line 148) | public static double Average<T>(this IEnumerable<T> source, Func<T, lo...
    method Average (line 152) | public static double? Average<T>(this IEnumerable<T> source, Func<T, l...
    method Average (line 156) | public static float Average<T>(this IEnumerable<T> source, Func<T, flo...
    method Average (line 160) | public static float? Average<T>(this IEnumerable<T> source, Func<T, fl...
    method Average (line 164) | public static double Average<T>(this IEnumerable<T> source, Func<T, do...
    method Average (line 168) | public static double? Average<T>(this IEnumerable<T> source, Func<T, d...
    method Average (line 172) | public static Decimal Average<T>(this IEnumerable<T> source, Func<T, D...
    method Average (line 176) | public static Decimal? Average<T>(this IEnumerable<T> source, Func<T, ...
    method Avg (line 180) | private static TRes Avg<T, TAcc, TRes>(IEnumerable<T> source,
    method AvgNullable (line 195) | private static TRes? AvgNullable<T, TAcc, TRes>(IEnumerable<T?> source,
    method AsEnumerable (line 218) | public static IEnumerable<T> AsEnumerable<T>(this IEnumerable<T> sourc...
    method Cast (line 226) | public static IEnumerable<T> Cast<T>(IEnumerable source) {
    method CastIterator (line 231) | private static IEnumerable<T> CastIterator<T>(IEnumerable source) {
    method Concat (line 241) | public static IEnumerable<T> Concat<T>
    method ConcatIterator (line 247) | private static IEnumerable<T> ConcatIterator<T>
    method Contains (line 261) | public static bool Contains<T>(this IEnumerable<T> source, T value) {
    method Contains (line 265) | public static bool Contains<T>
    method Count (line 283) | public static int Count<T>(this IEnumerable<T> source) {
    method Count (line 293) | public static int Count<T>(this IEnumerable<T> source, Func<T, bool> p...
    method LongCount (line 304) | public static long LongCount<T>(this IEnumerable<T> source) {
    method LongCount (line 308) | public static long LongCount<T>(this IEnumerable<T> source, Func<T, bo...
    method DefaultIfEmpty (line 316) | public static IEnumerable<T> DefaultIfEmpty<T>(this IEnumerable<T> sou...
    method DefaultIfEmpty (line 320) | public static IEnumerable<T> DefaultIfEmpty<T>(this IEnumerable<T> sou...
    method DefaultIfEmptyIterator (line 325) | private static IEnumerable<T> DefaultIfEmptyIterator<T>(IEnumerable<T>...
    method Distinct (line 341) | public static IEnumerable<T> Distinct<T>(this IEnumerable<T> source) {
    method Distinct (line 345) | public static IEnumerable<T> Distinct<T>(this IEnumerable<T> source, I...
    method DistinctIterator (line 349) | private static IEnumerable<T> DistinctIterator<T>(IEnumerable<T> sourc...
    method ElementAt (line 362) | public static T ElementAt<T>(IEnumerable<T> source, int index) {
    method ElementAtOrDefault (line 366) | public static T ElementAtOrDefault<T>(IEnumerable<T> source, int index) {
    method ElementAt (line 370) | private static T ElementAt<T>(IEnumerable<T> source, int index, bool o...
    method Empty (line 399) | public static IEnumerable<T> Empty<T>() {
    method Except (line 407) | public static IEnumerable<T> Except<T>(this IEnumerable<T> first, IEnu...
    method Except (line 411) | public static IEnumerable<T> Except<T>
    method ExceptIterator (line 417) | private static IEnumerable<T> ExceptIterator<T>
    method FirstSingle (line 431) | private static T FirstSingle<T>(IEnumerable<T> source, Func<T, bool> p...
    method First (line 452) | public static T First<T>(this IEnumerable<T> source) {
    method First (line 456) | public static T First<T>(this IEnumerable<T> source, Func<T, bool> pre...
    method FirstOrDefault (line 460) | public static T FirstOrDefault<T>(this IEnumerable<T> source) {
    method FirstOrDefault (line 464) | public static T FirstOrDefault<T>(this IEnumerable<T> source, Func<T, ...
    method Single (line 468) | public static T Single<T>(this IEnumerable<T> source) {
    method Single (line 472) | public static T Single<T>(this IEnumerable<T> source, Func<T, bool> pr...
    method SingleOrDefault (line 476) | public static T SingleOrDefault<T>(this IEnumerable<T> source) {
    method SingleOrDefault (line 480) | public static T SingleOrDefault<T>(this IEnumerable<T> source, Func<T,...
    method GroupBy (line 488) | public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, T...
    method GroupBy (line 493) | public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, T...
    method GroupBy (line 499) | public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, ...
    method GroupBy (line 505) | public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, ...
    method GroupBy (line 513) | public static IEnumerable<TResult> GroupBy<TSource, TKey, TResult>
    method GroupBy (line 519) | public static IEnumerable<TResult> GroupBy<TSource, TKey, TResult>
    method GroupBy (line 525) | public static IEnumerable<TResult> GroupBy<TSource, TKey, TElement, TR...
    method GroupBy (line 531) | public static IEnumerable<TResult> GroupBy<TSource, TKey, TElement, TR...
    method GroupByIterator (line 540) | private static IEnumerable<TResult> GroupByIterator<TSource, TKey, TEl...
    method GroupJoin (line 564) | public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey, TRe...
    method GroupJoin (line 571) | public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey, TRe...
    method GroupJoinIterator (line 581) | public static IEnumerable<TResult> GroupJoinIterator<TOuter, TInner, T...
    method Intersect (line 597) | public static IEnumerable<T> Intersect<T>(this IEnumerable<T> first, I...
    method Intersect (line 601) | public static IEnumerable<T> Intersect<T>(this IEnumerable<T> first, I...
    method IntersectIterator (line 607) | private static IEnumerable<T> IntersectIterator<T>(IEnumerable<T> firs...
    method Join (line 621) | public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>
    method Join (line 628) | public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>
    method JoinIterator (line 637) | private static IEnumerable<TResult> JoinIterator<TOuter, TInner, TKey,...
    method LastOrDefault (line 656) | private static T LastOrDefault<T>(IEnumerable<T> source, Func<T, bool>...
    method Last (line 672) | public static T Last<T>(this IEnumerable<T> source) {
    method Last (line 676) | public static T Last<T>(this IEnumerable<T> source, Func<T, bool> pred...
    method LastOrDefault (line 680) | public static T LastOrDefault<T>(this IEnumerable<T> source) {
    method LastOrDefault (line 684) | public static T LastOrDefault<T>(this IEnumerable<T> source, Func<T, b...
    method Max (line 692) | public static int Max(this IEnumerable<int> source) {
    method Max (line 696) | public static int? Max(this IEnumerable<int?> source) {
    method Max (line 700) | public static long Max(this IEnumerable<long> source) {
    method Max (line 704) | public static long? Max(this IEnumerable<long?> source) {
    method Max (line 708) | public static float Max(this IEnumerable<float> source) {
    method Max (line 712) | public static float? Max(this IEnumerable<float?> source) {
    method Max (line 716) | public static double Max(this IEnumerable<double> source) {
    method Max (line 720) | public static double? Max(this IEnumerable<double?> source) {
    method Max (line 724) | public static Decimal Max(this IEnumerable<Decimal> source) {
    method Max (line 728) | public static Decimal? Max(this IEnumerable<Decimal?> source) {
    method Max (line 732) | public static T Max<T>(this IEnumerable<T> source) {
    method Max (line 737) | public static TResult Max<T, TResult>(this IEnumerable<T> source, Func...
    method Max (line 741) | public static int Max<T>(this IEnumerable<T> source, Func<T, int> sele...
    method Max (line 745) | public static int? Max<T>(this IEnumerable<T> source, Func<T, int?> se...
    method Max (line 749) | public static long Max<T>(this IEnumerable<T> source, Func<T, long> se...
    method Max (line 753) | public static long? Max<T>(this IEnumerable<T> source, Func<T, long?> ...
    method Max (line 757) | public static float Max<T>(this IEnumerable<T> source, Func<T, float> ...
    method Max (line 761) | public static float? Max<T>(this IEnumerable<T> source, Func<T, float?...
    method Max (line 765) | public static double Max<T>(this IEnumerable<T> source, Func<T, double...
    method Max (line 769) | public static double? Max<T>(this IEnumerable<T> source, Func<T, doubl...
    method Max (line 773) | public static Decimal Max<T>(this IEnumerable<T> source, Func<T, Decim...
    method Max (line 777) | public static Decimal? Max<T>(this IEnumerable<T> source, Func<T, Deci...
    method Min (line 785) | public static int Min(this IEnumerable<int> source) {
    method Min (line 789) | public static int? Min(this IEnumerable<int?> source) {
    method Min (line 793) | public static long Min(this IEnumerable<long> source) {
    method Min (line 797) | public static long? Min(this IEnumerable<long?> source) {
    method Min (line 801) | public static float Min(this IEnumerable<float> source) {
    method Min (line 805) | public static float? Min(this IEnumerable<float?> source) {
    method Min (line 809) | public static double Min(this IEnumerable<double> source) {
    method Min (line 813) | public static double? Min(this IEnumerable<double?> source) {
    method Min (line 817) | public static Decimal Min(this IEnumerable<Decimal> source) {
    method Min (line 821) | public static Decimal? Min(this IEnumerable<Decimal?> source) {
    method Min (line 825) | public static T Min<T>(this IEnumerable<T> source) {
    method Min (line 830) | public static TResult Min<T, TResult>(this IEnumerable<T> source, Func...
    method Min (line 834) | public static int Min<T>(this IEnumerable<T> source, Func<T, int> sele...
    method Min (line 838) | public static int? Min<T>(this IEnumerable<T> source, Func<T, int?> se...
    method Min (line 842) | public static long Min<T>(this IEnumerable<T> source, Func<T, long> se...
    method Min (line 846) | public static long? Min<T>(this IEnumerable<T> source, Func<T, long?> ...
    method Min (line 850) | public static float Min<T>(this IEnumerable<T> source, Func<T, float> ...
    method Min (line 854) | public static float? Min<T>(this IEnumerable<T> source, Func<T, float?...
    method Min (line 858) | public static double Min<T>(this IEnumerable<T> source, Func<T, double...
    method Min (line 862) | public static double? Min<T>(this IEnumerable<T> source, Func<T, doubl...
    method Min (line 866) | public static Decimal Min<T>(this IEnumerable<T> source, Func<T, Decim...
    method Min (line 870) | public static Decimal? Min<T>(this IEnumerable<T> source, Func<T, Deci...
    method GenProc (line 874) | private static T GenProc<T>(IEnumerable<T> source, Func<T, T, T> fn, b...
    method GenProcNullable (line 892) | private static T? GenProcNullable<T>(IEnumerable<T?> source, Func<T, T...
    method OfType (line 908) | public static IEnumerable<T> OfType<T>(this IEnumerable source) {
    method OfTypeIterator (line 913) | private static IEnumerable<T> OfTypeIterator<T>(IEnumerable source) {
    method OrderBy (line 925) | public static IOrderedEnumerable<T> OrderBy<T, TKey>(
    method OrderBy (line 933) | public static IOrderedEnumerable<T> OrderBy<T, TKey>(
    method OrderByDescending (line 940) | public static IOrderedEnumerable<T> OrderByDescending<T, TKey>(
    method OrderByDescending (line 948) | public static IOrderedEnumerable<T> OrderByDescending<T, TKey>(
    method Range (line 959) | public static IEnumerable<int> Range(int start, int count) {
    method RangeIterator (line 966) | private static IEnumerable<int> RangeIterator(int start, int count) {
    method Repeat (line 977) | public static IEnumerable<TResult> Repeat<TResult>(TResult element, in...
    method RepeatIterator (line 984) | private static IEnumerable<TResult> RepeatIterator<TResult>(TResult el...
    method Reverse (line 994) | public static IEnumerable<T> Reverse<T>(this IEnumerable<T> source) {
    method ReverseIterator (line 1000) | private static IEnumerable<T> ReverseIterator<T>(IList<T> source) {
    method Select (line 1010) | public static IEnumerable<TResult> Select<T, TResult>
    method SelectIterator (line 1016) | private static IEnumerable<TResult> SelectIterator<T, TResult>
    method Select (line 1023) | public static IEnumerable<TResult> Select<T, TResult>
    method SelectIterator (line 1029) | private static IEnumerable<TResult> SelectIterator<T, TResult>
    method SelectMany (line 1042) | public static IEnumerable<TResult> SelectMany<TSource, TResult>
    method SelectMany (line 1047) | public static IEnumerable<TResult> SelectMany<TSource, TResult>
    method SelectMany (line 1052) | public static IEnumerable<TResult> SelectMany<TSource, TCollection, TR...
    method SelectMany (line 1058) | public static IEnumerable<TResult> SelectMany<TSource, TCollection, TR...
    method SelectManyIterator (line 1065) | private static IEnumerable<TResult> SelectManyIterator<TSource, TColle...
    method SequenceEqual (line 1081) | public static bool SequenceEqual<T>(this IEnumerable<T> first, IEnumer...
    method SequenceEqual (line 1085) | public static bool SequenceEqual<T>(this IEnumerable<T> first, IEnumer...
    method Skip (line 1107) | public static IEnumerable<T> Skip<T>(this IEnumerable<T> source, int c...
    method SkipIterator (line 1112) | private static IEnumerable<T> SkipIterator<T>(IEnumerable<T> source, i...
    method SkipWhile (line 1125) | public static IEnumerable<T> SkipWhile<T>(this IEnumerable<T> source, ...
    method SkipWhileIterator (line 1130) | public static IEnumerable<T> SkipWhileIterator<T>(IEnumerable<T> sourc...
    method SkipWhile (line 1144) | public static IEnumerable<T> SkipWhile<T>(this IEnumerable<T> source, ...
    method SkipWhileIterator (line 1149) | public static IEnumerable<T> SkipWhileIterator<T>(IEnumerable<T> sourc...
    method Take (line 1169) | public static IEnumerable<T> Take<T>(this IEnumerable<T> source, int c...
    method TakeIterator (line 1174) | private static IEnumerable<T> TakeIterator<T>(IEnumerable<T> source, i...
    method TakeWhile (line 1191) | public static IEnumerable<T> TakeWhile<T>(this IEnumerable<T> source, ...
    method TakeWhileIterator (line 1196) | private static IEnumerable<T> TakeWhileIterator<T>(IEnumerable<T> sour...
    method TakeWhile (line 1205) | public static IEnumerable<T> TakeWhile<T>(this IEnumerable<T> source, ...
    method TakeWhileIterator (line 1210) | private static IEnumerable<T> TakeWhileIterator<T>(IEnumerable<T> sour...
    method Union (line 1251) | public static IEnumerable<T> Union<T>(this IEnumerable<T> first, IEnum...
    method Union (line 1255) | public static IEnumerable<T> Union<T>
    method Where (line 1265) | public static IEnumerable<T> Where<T>
    method WhereIterator (line 1271) | private static IEnumerable<T> WhereIterator<T>
    method Where (line 1280) | public static IEnumerable<T> Where<T>
    method WhereIterator (line 1286) | private static IEnumerable<T> WhereIterator<T>
    method ToList (line 1301) | public static List<T> ToList<T>(this IEnumerable<T> source) {
    method ToArray (line 1306) | public static T[] ToArray<T>(this IEnumerable<T> source) {
    method ToDictionary (line 1315) | public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(
    method ToDictionary (line 1320) | public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(
    method ToDictionary (line 1326) | public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, T...
    method ToDictionary (line 1332) | public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, T...
    method ToLookup (line 1343) | public static ILookup<TKey, TSource> ToLookup<TSource, TKey>(
    method ToLookup (line 1348) | public static ILookup<TKey, TSource> ToLookup<TSource, TKey>(
    method ToLookup (line 1354) | public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(
    method ToLookup (line 1360) | public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(
    method Check (line 1384) | private static void Check(object o) {
    method Check (line 1390) | private static void Check(object o1, object o2) {
    method Check (line 1396) | private static void Check(object o1, object o2, object o3) {

FILE: System.Core/System.Linq/Grouping.cs
  class Grouping (line 28) | class Grouping<TKey, TElement> : IGrouping<TKey, TElement> {
    method Grouping (line 30) | public Grouping(TKey key, IEnumerable<TElement> elements) {
    method GetEnumerator (line 44) | public IEnumerator<TElement> GetEnumerator() {
    method GetEnumerator (line 48) | IEnumerator System.Collections.IEnumerable.GetEnumerator() {

FILE: System.Core/System.Linq/IGrouping.cs
  type IGrouping (line 28) | public interface IGrouping<TKey, TElement> : IEnumerable<TElement>, IEnu...

FILE: System.Core/System.Linq/ILookup.cs
  type ILookup (line 28) | public interface ILookup<TKey, TElement> : IEnumerable<IGrouping<TKey, T...
    method Contains (line 30) | bool Contains(TKey key);

FILE: System.Core/System.Linq/IOrderedEnumerable.cs
  type IOrderedEnumerable (line 28) | public interface IOrderedEnumerable<T> : IEnumerable<T> {
    method CreateOrderedEnumerable (line 30) | IOrderedEnumerable<T> CreateOrderedEnumerable<TKey>(

FILE: System.Core/System.Linq/Lookup.cs
  class Lookup (line 28) | public class Lookup<TKey, TElement> : ILookup<TKey, TElement> {
    method Lookup (line 32) | internal Lookup(Dictionary<TKey, List<TElement>> data) {
    method Contains (line 39) | public bool Contains(TKey key) {
    method GetEnumerator (line 55) | public IEnumerator<IGrouping<TKey, TElement>> GetEnumerator() {
    method GetEnumerator (line 59) | IEnumerator IEnumerable.GetEnumerator() {

FILE: System.Core/System.Linq/OrderedEnumerable.cs
  class OrderedEnumerable (line 31) | class OrderedEnumerable<TElement, TKey> : IOrderedEnumerable<TElement> {
    class QuickSort (line 33) | private class QuickSort {
      method QuickSort (line 35) | public QuickSort(IEnumerable<TElement> source,
      method Swap (line 56) | private void Swap(int idx0, int idx1) {
      method PerformSort (line 64) | private void PerformSort(int startIdx, int endIdx) {
      method Sort (line 115) | public IEnumerable<TElement> Sort() {
    method OrderedEnumerable (line 131) | public OrderedEnumerable(IEnumerable<TElement> source,
    method CreateOrderedEnumerable (line 139) | public IOrderedEnumerable<TElement> CreateOrderedEnumerable<TKey2>(
    method GetEnumerator (line 149) | public IEnumerator<TElement> GetEnumerator() {
    method GetEnumerator (line 154) | IEnumerator IEnumerable.GetEnumerator() {

FILE: System.Core/System.Runtime.CompilerServices/ExtensionAttribute.cs
  class ExtensionAttribute (line 28) | [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | Att...

FILE: System.Drawing/System.Drawing.Drawing2D/HatchBrush.cs
  class HatchBrush (line 26) | public sealed class HatchBrush : Brush {
    method HatchBrush (line 28) | public HatchBrush(HatchStyle hatchStyle, Color foreColor, Color backCo...
    method HatchBrush (line 35) | public HatchBrush(HatchStyle hatchStyle, Color foreColor) : this(hatch...

FILE: System.Drawing/System.Drawing.Drawing2D/HatchStyle.cs
  type HatchStyle (line 26) | public enum HatchStyle {

FILE: System.Drawing/System.Drawing.Drawing2D/LinearGradientBrush.cs
  class LinearGradientBrush (line 26) | public sealed class LinearGradientBrush : Brush {
    method LinearGradientBrush (line 28) | public LinearGradientBrush(Point point1, Point point2, Color col1, Col...
    method LinearGradientBrush (line 33) | public LinearGradientBrush(PointF point1, PointF point2, Color col1, C...

FILE: System.Drawing/System.Drawing.Drawing2D/WrapMode.cs
  type WrapMode (line 26) | public enum WrapMode {

FILE: System.Drawing/System.Drawing.Imaging/PixelFormat.cs
  type PixelFormat (line 22) | public enum PixelFormat {

FILE: System.Drawing/System.Drawing.Text/TextRenderingHint.cs
  type TextRenderingHint (line 26) | public enum TextRenderingHint {

FILE: System.Drawing/System.Drawing/Bitmap.cs
  class Bitmap (line 27) | public sealed class Bitmap : Image {
    method Bitmap (line 29) | public Bitmap(int width, int height)
    method Bitmap (line 32) | public Bitmap(int width, int height, PixelFormat pixelFormat) {
    method Bitmap (line 42) | internal Bitmap(IntPtr native, int width, int height, PixelFormat pixe...

FILE: System.Drawing/System.Drawing/Brush.cs
  class Brush (line 26) | public abstract class Brush : MarshalByRefObject, IDisposable {
    method Dispose (line 34) | public void Dispose() {
    method Dispose (line 39) | protected virtual void Dispose(bool disposing) {

FILE: System.Drawing/System.Drawing/Brushes.cs
  class Brushes (line 26) | public static class Brushes {

FILE: System.Drawing/System.Drawing/Color.cs
  type Color (line 26) | public struct Color {
    method FromKnownColor (line 28) | public static Color FromKnownColor(KnownColor c) {
    method FromArgb (line 32) | public static Color FromArgb(int argb) {
    method FromArgb (line 38) | public static Color FromArgb(int alpha, Color baseCol) {
    method ToArgb (line 46) | public int ToArgb() {

FILE: System.Drawing/System.Drawing/Font.cs
  class Font (line 26) | public sealed class Font : MarshalByRefObject, IDisposable {
    method Font (line 32) | public Font(FontFamily family, float emSize)
    method Font (line 35) | public Font(FontFamily family, float emSize, FontStyle style) {
    method Font (line 40) | public Font(string familyName, float emSize) {
    method Dispose (line 49) | public void Dispose() {

FILE: System.Drawing/System.Drawing/FontFamily.cs
  class FontFamily (line 26) | public sealed class FontFamily:MarshalByRefObject, IDisposable {
    method FontFamily (line 30) | public FontFamily(string name) {
    method Dispose (line 41) | public void Dispose() {

FILE: System.Drawing/System.Drawing/FontStyle.cs
  type FontStyle (line 22) | public enum FontStyle {

FILE: System.Drawing/System.Drawing/Graphics.cs
  class Graphics (line 29) | public sealed class Graphics : MarshalByRefObject, IDisposable {
    method FromHdc (line 31) | public static Graphics FromHdc(IntPtr hdc) {
    method FromImage (line 44) | public static Graphics FromImage(Image image) {
    method Graphics (line 61) | private Graphics(int xSize, int ySize, PixelFormat pixelFormat, IntPtr...
    method Dispose (line 74) | public void Dispose() {
    method ResetClip (line 95) | public void ResetClip() {
    method Clear (line 99) | public void Clear(Color color) {
    method DrawLine (line 113) | public void DrawLine(Pen pen, int x1, int y1, int x2, int y2) {
    method DrawLine (line 117) | public void DrawLine(Pen pen, Point pt1, Point pt2) {
    method DrawLines (line 121) | public void DrawLines(Pen pen, Point[] points) {
    method DrawPolygon (line 128) | public void DrawPolygon(Pen pen, Point[] points) {
    method DrawRectangle (line 133) | public void DrawRectangle(Pen pen, int x, int y, int width, int height) {
    method DrawRectangle (line 143) | public void DrawRectangle(Pen pen, Rectangle rect) {
    method DrawRectangle (line 147) | public void DrawRectangle(Pen pen, float x, float y, float width, floa...
    method FillRectangle (line 151) | public void FillRectangle(Brush brush, int x, int y, int width, int he...
    method FillRectangle (line 155) | public void FillRectangle(Brush brush, Rectangle rect) {
    method FillRectangle (line 159) | public void FillRectangle(Brush brush, float x, float y, float width, ...
    method FillRectangle (line 163) | public void FillRectangle(Brush brush, RectangleF rect) {
    method DrawEllipse (line 167) | public void DrawEllipse(Pen pen, int x, int y, int width, int height) {
    method DrawEllipse (line 171) | public void DrawEllipse(Pen pen, Rectangle rect) {
    method FillEllipse (line 175) | public void FillEllipse(Brush brush, int x, int y, int width, int heig...
    method FillEllipse (line 179) | public void FillEllipse(Brush brush, Rectangle rect) {
    method DrawString (line 183) | public void DrawString(string s, Font font, Brush brush, float x, floa...
    method DrawString (line 187) | public void DrawString(string s, Font font, Brush brush, float x, floa...
    method DrawString (line 191) | public void DrawString(string s, Font font, Brush brush, PointF point) {
    method DrawString (line 195) | public void DrawString(string s, Font font, Brush brush, RectangleF re...
    method DrawString (line 201) | public void DrawString(string s, Font font, Brush brush, RectangleF re...
    method MeasureString (line 206) | public SizeF MeasureString(string s, Font font) {
    method MeasureString (line 210) | public SizeF MeasureString(string s, Font font, int width) {
    method MeasureString (line 214) | public SizeF MeasureString(string s, Font font, int width, StringForma...
    method DrawImage (line 220) | public void DrawImage(Image image, int x, int y) {
    method DrawImageUnscaled (line 224) | public void DrawImageUnscaled(Image image, int x, int y) {
    method CopyFromScreen (line 228) | public void CopyFromScreen(int srcX, int srcY, int destX, int destY, S...
    method CopyFromScreen (line 232) | public void CopyFromScreen(Point upperLeftSource, Point upperLeftDesti...

FILE: System.Drawing/System.Drawing/Image.cs
  class Image (line 27) | public abstract class Image : MarshalByRefObject, IDisposable {
    method FromFile (line 29) | public static Image FromFile(string filename) {
    method Dispose (line 48) | public void Dispose() {

FILE: System.Drawing/System.Drawing/KnownColor.cs
  type KnownColor (line 26) | public enum KnownColor {

FILE: System.Drawing/System.Drawing/KnownColors.cs
  class KnownColors (line 26) | internal static class KnownColors {
    method FromKnownColor (line 206) | internal static Color FromKnownColor(KnownColor knownColor) {

FILE: System.Drawing/System.Drawing/LibIGraph.cs
  class LibIGraph (line 30) | internal static class LibIGraph {
    method GetScreen (line 34) | [DllImport("libIGraph")]
    method GetGraphicsFromImage (line 37) | [DllImport("libIGraph")]
    method DisposeGraphics (line 40) | [DllImport("libIGraph")]
    method TextRenderingHint_Set (line 43) | [DllImport("libIGraph")]
    method Clear (line 46) | [DllImport("libIGraph")]
    method DrawLine_Ints (line 49) | [DllImport("libIGraph")]
    method FillRectangle_Ints (line 52) | [DllImport("libIGraph")]
    method DrawEllipse_Ints (line 55) | [DllImport("libIGraph")]
    method FillEllipse_Ints (line 58) | [DllImport("libIGraph")]
    method DrawString (line 61) | [DllImport("libIGraph", CharSet = CharSet.Unicode)]
    method MeasureString (line 64) | [DllImport("libIGraph", CharSet = CharSet.Unicode)]
    method DrawImageUnscaled (line 67) | [DllImport("libIGraph")]
    method Graphics_SetClip (line 70) | [DllImport("libIGraph")]
    method Graphics_CopyFromScreen (line 73) | [DllImport("libIGraph")]
    method CreatePen_Color (line 80) | [DllImport("libIGraph")]
    method DisposePen (line 83) | [DllImport("libIGraph")]
    method Pen_SetCol (line 86) | [DllImport("libIGraph")]
    method Pen_SetWidth (line 89) | [DllImport("libIGraph")]
    method CreateBrush_Solid (line 96) | [DllImport("libIGraph")]
    method CreateBrush_Hatch (line 99) | [DllImport("libIGraph")]
    method CreateBrush_LinearGradient (line 102) | [DllImport("libIGraph")]
    method DisposeBrush (line 105) | [DllImport("libIGraph")]
    method SolidBrush_SetCol (line 108) | [DllImport("libIGraph")]
    method CreateFontFamily_Name (line 115) | [DllImport("libIGraph", CharSet=CharSet.Ansi)]
    method DisposeFontFamily (line 118) | [DllImport("libIGraph")]
    method _CreateFont (line 125) | [DllImport("libIGraph")]
    method DisposeFont (line 128) | [DllImport("libIGraph")]
    method CreateStringFormat (line 135) | [DllImport("libIGraph")]
    method DisposeStringFormat (line 138) | [DllImport("libIGraph")]
    method StringFormat_SetTrimming (line 141) | [DllImport("libIGraph")]
    method StringFormat_SetAlignment (line 144) | [DllImport("libIGraph")]
    method StringFormat_SetLineAlignment (line 147) | [DllImport("libIGraph")]
    method StringFormat_SetFormatFlags (line 150) | [DllImport("libIGraph")]
    method DisposeImage (line 157) | [DllImport("libIGraph")]
    method _CreateBitmap (line 164) | [DllImport("libIGraph")]
    method BitmapFromFile (line 167) | [DllImport("libIGraph", CharSet = CharSet.Ansi)]
    method CreateRegion_Infinite (line 174) | [DllImport("libIGraph")]
    method CreateRegion_Rect (line 177) | [DllImport("libIGraph")]
    method DisposeRegion (line 180) | [DllImport("libIGraph")]

FILE: System.Drawing/System.Drawing/Pen.cs
  class Pen (line 26) | public sealed class Pen : MarshalByRefObject, IDisposable, ICloneable {
    method Pen (line 37) | public Pen(Color color) : this(color, 1.0f) { }
    method Pen (line 39) | public Pen(Color color, float width) {
    method Dispose (line 76) | public void Dispose() {
    method Dispose (line 81) | private void Dispose(bool disposing) {
    method Clone (line 91) | public object Clone() {

FILE: System.Drawing/System.Drawing/Pens.cs
  class Pens (line 26) | public static class Pens {

FILE: System.Drawing/System.Drawing/Point.cs
  type Point (line 26) | public struct Point {
    method Point (line 32) | public Point(int dw) {
    method Point (line 37) | public Point(int x, int y) {
    method Point (line 42) | public Point(Size sz) {
    method Offset (line 71) | public void Offset(int dx, int dy) {
    method Offset (line 76) | public void Offset(Point pt) {
    method Add (line 81) | public static Point Add(Point pt, Size sz) {
    method Subtract (line 85) | public static Point Subtract(Point pt, Size sz) {
    method Equals (line 109) | public override bool Equals(object o) {
    method GetHashCode (line 116) | public override int GetHashCode() {
    method ToString (line 120) | public override string ToString() {

FILE: System.Drawing/System.Drawing/PointF.cs
  type PointF (line 26) | public struct PointF {
    method PointF (line 32) | public PointF(float x, float y) {
    method Equals (line 69) | public override bool Equals(object obj) {
    method GetHashCode (line 73) | public override int GetHashCode() {
    method ToString (line 77) | public override string ToString() {

FILE: System.Drawing/System.Drawing/Rectangle.cs
  type Rectangle (line 26) | public struct Rectangle {
    method FromLTRB (line 30) | public static Rectangle FromLTRB(int left, int top, int right, int bot...
    method Inflate (line 34) | public static Rectangle Inflate(Rectangle rect, int x, int y) {
    method Rectangle (line 42) | public Rectangle(int x, int y, int width, int height) {
    method Rectangle (line 49) | public Rectangle(Point loc, Size sz) {
    method Inflate (line 136) | public void Inflate(int width, int height) {
    method Inflate (line 144) | public void Inflate(Size sz) {
    method Offset (line 148) | public void Offset(Point pt) {
    method Offset (line 153) | public void Offset(int dx, int dy) {
    method Contains (line 158) | public bool Contains(int x, int y) {
    method Contains (line 162) | public bool Contains(Point pt) {
    method Contains (line 166) | public bool Contains(Rectangle rect) {
    method IntersectsWith (line 170) | public bool IntersectsWith(Rectangle r) {
    method IntersectsWithInclusive (line 174) | private bool IntersectsWithInclusive(Rectangle r) {
    method Intersect (line 178) | public void Intersect(Rectangle r) {
    method Intersect (line 182) | public static Rectangle Intersect(Rectangle r1, Rectangle r2) {
    method Equals (line 204) | public override bool Equals(object o) {
    method GetHashCode (line 211) | public override int GetHashCode() {
    method ToString (line 215) | public override string ToString() {

FILE: System.Drawing/System.Drawing/RectangleF.cs
  type RectangleF (line 26) | public struct RectangleF {
    method RectangleF (line 32) | public RectangleF(PointF location, SizeF size) {
    method RectangleF (line 39) | public RectangleF(float x, float y, float width, float height) {

FILE: System.Drawing/System.Drawing/Region.cs
  class Region (line 26) | public sealed class Region : MarshalByRefObject, IDisposable {
    method Region (line 31) | public Region() {
    method Region (line 36) | public Region(Rectangle rect) {
    method Dispose (line 45) | public void Dispose() {
    method IsInfinite (line 53) | public bool IsInfinite(Graphics g) {

FILE: System.Drawing/System.Drawing/Size.cs
  type Size (line 26) | public struct Size {
    method Size (line 32) | public Size(int width, int height) {
    method Size (line 37) | public Size(Point pt) {
    method Add (line 66) | public static Size Add(Size a, Size b) {
    method Subtract (line 70) | public static Size Subtract(Size a, Size b) {
    method Equals (line 94) | public override bool Equals(object o) {
    method GetHashCode (line 101) | public override int GetHashCode() {
    method ToString (line 105) | public override string ToString() {

FILE: System.Drawing/System.Drawing/SizeF.cs
  type SizeF (line 26) | public struct SizeF {
    method SizeF (line 32) | public SizeF(PointF pt) {
    method SizeF (line 37) | public SizeF(SizeF size) {
    method SizeF (line 42) | public SizeF(float width, float height) {
    method Equals (line 79) | public override bool Equals(object obj) {
    method GetHashCode (line 83) | public override int GetHashCode() {
    method ToString (line 87) | public override string ToString() {

FILE: System.Drawing/System.Drawing/SolidBrush.cs
  class SolidBrush (line 26) | public sealed class SolidBrush : Brush {
    method SolidBrush (line 31) | public SolidBrush(Color col) {
    method Dispose (line 50) | protected override void Dispose(bool disposing) {

FILE: System.Drawing/System.Drawing/StringAlignment.cs
  type StringAlignment (line 26) | public enum StringAlignment {

FILE: System.Drawing/System.Drawing/StringFormat.cs
  class StringFormat (line 26) | public sealed class StringFormat : MarshalByRefObject, IDisposable, IClo...
    method StringFormat (line 38) | public StringFormat() : this(0) { }
    method StringFormat (line 40) | public StringFormat(StringFormatFlags options) {
    method Clone (line 113) | public object Clone() {
    method Dispose (line 117) | public void Dispose() {

FILE: System.Drawing/System.Drawing/StringFormatFlags.cs
  type StringFormatFlags (line 26) | public enum StringFormatFlags {

FILE: System.Drawing/System.Drawing/StringTrimming.cs
  type StringTrimming (line 26) | public enum StringTrimming {

FILE: System/System.Collections.Generic/Queue.cs
  class Queue (line 6) | public class Queue<T> : IEnumerable<T>, ICollection, IEnumerable {
    method Queue (line 15) | public Queue() {
    method Queue (line 18) | public Queue(int count) {
    method Queue (line 25) | public Queue(IEnumerable<T> collection) {
    method Clear (line 33) | public void Clear() {
    method Contains (line 41) | public bool Contains(T item) {
    method CopyTo (line 55) | public void CopyTo(T[] array, int idx) {
    method CopyTo (line 79) | void ICollection.CopyTo(Array array, int idx) {
    method Dequeue (line 106) | public T Dequeue() {
    method Peek (line 120) | public T Peek() {
    method Enqueue (line 127) | public void Enqueue(T item) {
    method ToArray (line 140) | public T[] ToArray() {
    method TrimExcess (line 146) | public void TrimExcess() {
    method SetCapacity (line 151) | void SetCapacity(int new_size) {
    method GetEnumerator (line 180) | public Enumerator GetEnumerator() {
    method GetEnumerator (line 184) | IEnumerator<T> IEnumerable<T>.GetEnumerator() {
    method GetEnumerator (line 188) | IEnumerator IEnumerable.GetEnumerator() {
    type Enumerator (line 192) | public struct Enumerator : IEnumerator<T>, IEnumerator, IDisposable {
      method Enumerator (line 203) | internal Enumerator(Queue<T> q) {
      method Dispose (line 209) | public void Dispose() {
      method MoveNext (line 213) | public bool MoveNext() {
      method Reset (line 232) | void IEnumerator.Reset() {

FILE: System/System.Collections.Generic/Stack.cs
  class Stack (line 39) | public class Stack <T> : IEnumerable <T>, ICollection, IEnumerable
    method Stack (line 47) | public Stack ()
    method Stack (line 51) | public Stack (int count)
    method Stack (line 59) | public Stack (IEnumerable <T> collection)
    method Clear (line 76) | public void Clear ()
    method Contains (line 85) | public bool Contains (T t)
    method CopyTo (line 90) | public void CopyTo (T [] dest, int idx)
    method Peek (line 99) | public T Peek ()
    method Pop (line 107) | public T Pop ()
    method Push (line 119) | public void Push (T t)
    method ToArray (line 129) | public T [] ToArray ()
    method TrimExcess (line 136) | public void TrimExcess ()
    method CopyTo (line 155) | void ICollection.CopyTo (Array dest, int idx)
    method GetEnumerator (line 167) | public Enumerator GetEnumerator ()
    method GetEnumerator (line 172) | IEnumerator <T> IEnumerable<T>.GetEnumerator ()
    method GetEnumerator (line 177) | IEnumerator IEnumerable.GetEnumerator ()
    type Enumerator (line 182) | public struct Enumerator : IEnumerator <T>, IEnumerator, IDisposable {
      method Enumerator (line 193) | internal Enumerator (Stack <T> t)
      method Dispose (line 200) | public void Dispose ()
      method MoveNext (line 205) | public bool MoveNext ()
      method Reset (line 225) | void IEnumerator.Reset ()

FILE: System/System.ComponentModel/Win32Exception.cs
  class Win32Exception (line 27) | public class Win32Exception : ExternalException {
    method Win32Exception (line 31) | public Win32Exception() : base("Win32 exception", 0) { }
    method Win32Exception (line 33) | public Win32Exception(int err)
    method Win32Exception (line 38) | public Win32Exception(int err, string msg)

FILE: System/System.Net.Sockets/AddressFamily.cs
  type AddressFamily (line 26) | public enum AddressFamily {

FILE: System/System.Net.Sockets/ProtocolType.cs
  type ProtocolType (line 26) | public enum ProtocolType {

FILE: System/System.Net.Sockets/Socket.cs
  class Socket (line 27) | public class Socket : IDisposable {
    method Internal_CreateSocket (line 31) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_Close (line 34) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_Bind (line 37) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_Listen (line 40) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_Accept (line 43) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_Connect (line 46) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_Receive (line 49) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_Send (line 52) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Socket (line 62) | public Socket(AddressFamily family, SocketType type, ProtocolType prot...
    method Socket (line 72) | private Socket(AddressFamily family, SocketType type, ProtocolType pro...
    method Dispose (line 83) | private void Dispose(bool disposing) {
    method Dispose (line 93) | void IDisposable.Dispose() {
    method Close (line 97) | public void Close() {
    method CheckDisposed (line 101) | private void CheckDisposed() {
    method CheckError (line 107) | private void CheckError(int error) {
    method GetIPInfo (line 114) | private void GetIPInfo(EndPoint ep, out uint addr, out int port) {
    method Bind (line 124) | public void Bind(EndPoint epLocal) {
    method Listen (line 137) | public void Listen(int backLog) {
    method Accept (line 144) | public Socket Accept() {
    method Connect (line 152) | public void Connect(EndPoint epRemote) {
    method Send (line 165) | public int Send(byte[] buffer) {
    method Send (line 169) | public int Send(byte[] buffer, SocketFlags flags) {
    method Send (line 173) | public int Send(byte[] buffer, int size, SocketFlags flags) {
    method Send (line 177) | public int Send(byte[] buffer, int offset, int size, SocketFlags flags) {
    method Receive (line 191) | public int Receive(byte[] buffer) {
    method Receive (line 195) | public int Receive(byte[] buffer, SocketFlags flags) {
    method Receive (line 199) | public int Receive(byte[] buffer, int size, SocketFlags flags) {
    method Receive (line 203) | public int Receive(byte[] buffer, int offset, int size, SocketFlags fl...

FILE: System/System.Net.Sockets/SocketException.cs
  class SocketException (line 27) | public class SocketException : Win32Exception {
    method SocketException (line 29) | public SocketException(int error) : base(error) { }

FILE: System/System.Net.Sockets/SocketFlags.cs
  type SocketFlags (line 26) | [Flags]

FILE: System/System.Net.Sockets/SocketOptionLevel.cs
  type SocketOptionLevel (line 26) | public enum SocketOptionLevel {

FILE: System/System.Net.Sockets/SocketOptionName.cs
  type SocketOptionName (line 26) | public enum SocketOptionName {

FILE: System/System.Net.Sockets/SocketType.cs
  type SocketType (line 26) | public enum SocketType {

FILE: System/System.Net/Dns.cs
  class Dns (line 27) | public static class Dns {
    method Internal_GetHostEnt (line 29) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetHostEntry (line 32) | public static IPHostEntry GetHostEntry(string hostNameOrAddress) {
    method GetHostEntry (line 51) | public static IPHostEntry GetHostEntry(IPAddress addr) {

FILE: System/System.Net/EndPoint.cs
  class EndPoint (line 27) | public abstract class EndPoint {
    method EndPoint (line 29) | protected EndPoint() { }
    method Create (line 31) | public virtual EndPoint Create(SocketAddress address) {
    method Serialize (line 41) | public virtual SocketAddress Serialize() {

FILE: System/System.Net/IPAddress.cs
  class IPAddress (line 27) | public class IPAddress {
    method Parse (line 34) | public static IPAddress Parse(string ip) {
    method TryParse (line 42) | public static bool TryParse(string ip, out IPAddress address) {
    method IPAddress (line 72) | public IPAddress(long addr) {
    method GetHashCode (line 86) | public override int GetHashCode() {
    method Equals (line 90) | public override bool Equals(object obj) {
    method ToString (line 95) | public override string ToString() {

FILE: System/System.Net/IPEndPoint.cs
  class IPEndPoint (line 27) | public class IPEndPoint : EndPoint {
    method IPEndPoint (line 35) | public IPEndPoint(IPAddress addr, int port) {
    method IPEndPoint (line 43) | public IPEndPoint(long addr, int port) : this(new IPAddress(addr), por...
    method Create (line 72) | public override EndPoint Create(SocketAddress sockaddr) {
    method Serialize (line 88) | public override SocketAddress Serialize() {
    method ToString (line 111) | public override string ToString() {
    method GetHashCode (line 115) | public override int GetHashCode() {
    method Equals (line 119) | public override bool Equals(Object obj) {

FILE: System/System.Net/IPHostEntry.cs
  class IPHostEntry (line 26) | public class IPHostEntry {
    method IPHostEntry (line 32) | public IPHostEntry() {

FILE: System/System.Net/SocketAddress.cs
  class SocketAddress (line 27) | public class SocketAddress {
    method SocketAddress (line 30) | public SocketAddress(AddressFamily family, int size) {
    method SocketAddress (line 40) | public SocketAddress(AddressFamily family) : this(family, 32) { }
    method ToString (line 64) | public override string ToString() {
    method Equals (line 82) | public override bool Equals(object obj) {
    method GetHashCode (line 96) | public override int GetHashCode() {

FILE: corlib/System.Collections.Generic/Comparer.cs
  class Comparer (line 27) | public abstract class Comparer<T> : IComparer<T>,IComparer {
    class DefaultComparer (line 29) | private sealed class DefaultComparer : Comparer<T> {
      method Compare (line 31) | public override int Compare(T x, T y) {
    class DefaultComparerValueType (line 51) | private sealed class DefaultComparerValueType : Comparer<T> {
      method Compare (line 53) | public override int Compare(T x, T y) {
    method Comparer (line 67) | static Comparer() {
    method Compare (line 77) | public abstract int Compare(T x, T y);
    method Compare (line 79) | public int Compare(object x, object y) {

FILE: corlib/System.Collections.Generic/Dictionary.cs
  class Dictionary (line 30) | public class Dictionary<TKey, TValue> : IDictionary<TKey, TValue>, IColl...
    type Enumerator (line 33) | public struct Enumerator : IEnumerator<KeyValuePair<TKey, TValue>>,
      method Enumerator (line 39) | internal Enumerator(Dictionary<TKey, TValue> dictionary) {
      method MoveNext (line 45) | public bool MoveNext() {
      method Reset (line 77) | void IEnumerator.Reset() {
      method Dispose (line 103) | public void Dispose() {
    class KeyCollection (line 108) | public sealed class KeyCollection : ICollection<TKey>, IEnumerable<TKe...
      type Enumerator (line 110) | public struct Enumerator : IEnumerator<TKey>, IDisposable, IEnumerat...
        method Enumerator (line 114) | internal Enumerator(Dictionary<TKey, TValue> host) {
        method Dispose (line 118) | public void Dispose() {
        method MoveNext (line 122) | public bool MoveNext() {
        method Reset (line 134) | void IEnumerator.Reset() {
      method KeyCollection (line 141) | public KeyCollection(Dictionary<TKey, TValue> dictionary) {
      method CopyTo (line 148) | public void CopyTo(TKey[] array, int index) {
      method GetEnumerator (line 152) | public Enumerator GetEnumerator() {
      method Add (line 156) | void ICollection<TKey>.Add(TKey item) {
      method Clear (line 160) | void ICollection<TKey>.Clear() {
      method Contains (line 164) | bool ICollection<TKey>.Contains(TKey item) {
      method Remove (line 168) | bool ICollection<TKey>.Remove(TKey item) {
      method GetEnumerator (line 172) | IEnumerator<TKey> IEnumerable<TKey>.GetEnumerator() {
      method CopyTo (line 176) | void ICollection.CopyTo(Array array, int index) {
      method GetEnumerator (line 180) | IEnumerator IEnumerable.GetEnumerator() {
    class ValueCollection (line 210) | public sealed class ValueCollection : ICollection<TValue>, IEnumerable...
      type Enumerator (line 212) | public struct Enumerator : IEnumerator<TValue>, IDisposable, IEnumer...
        method Enumerator (line 216) | internal Enumerator(Dictionary<TKey, TValue> host) {
        method Dispose (line 220) | public void Dispose() {
        method MoveNext (line 224) | public bool MoveNext() {
        method Reset (line 236) | void IEnumerator.Reset() {
      method ValueCollection (line 243) | public ValueCollection(Dictionary<TKey, TValue> dictionary) {
      method CopyTo (line 250) | public void CopyTo(TValue[] array, int index) {
      method GetEnumerator (line 254) | public Enumerator GetEnumerator() {
      method Add (line 258) | void ICollection<TValue>.Add(TValue item) {
      method Clear (line 262) | void ICollection<TValue>.Clear() {
      method Contains (line 266) | bool ICollection<TValue>.Contains(TValue item) {
      method Remove (line 270) | bool ICollection<TValue>.Remove(TValue item) {
      method GetEnumerator (line 274) | IEnumerator<TValue> IEnumerable<TValue>.GetEnumerator() {
      method CopyTo (line 278) | void ICollection.CopyTo(Array array, int index) {
      method GetEnumerator (line 282) | IEnumerator IEnumerable.GetEnumerator() {
    method Dictionary (line 321) | public Dictionary() {
    method Dictionary (line 325) | public Dictionary(IDictionary<TKey, TValue> dictionary) : this(diction...
    method Dictionary (line 327) | public Dictionary(IEqualityComparer<TKey> comparer) {
    method Dictionary (line 331) | public Dictionary(int capacity) {
    method Dictionary (line 335) | public Dictionary(IDictionary<TKey, TValue> dictionary, IEqualityCompa...
    method Dictionary (line 342) | public Dictionary(int capacity, IEqualityComparer<TKey> comparer) {
    method Init (line 346) | private void Init(int initialCapacity, IEqualityComparer<TKey> compare...
    method GetSlot (line 366) | private int GetSlot(TKey key) {
    method Add (line 371) | public void Add(TKey key, TValue value) {
    method Add (line 375) | private void Add(TKey key, TValue value, bool replace) {
    method TryGetValue (line 445) | public bool TryGetValue(TKey key, out TValue value) {
    method ContainsKey (line 464) | public bool ContainsKey(TKey key) {
    method ContainsValue (line 469) | public bool ContainsValue(TValue value) {
    method Remove (line 479) | public bool Remove(TKey key) {
    method Clear (line 526) | public void Clear() {
    method GetEnumerator (line 532) | public Enumerator GetEnumerator() {
    method Add (line 548) | void ICollection<KeyValuePair<TKey, TValue>>.Add(KeyValuePair<TKey, TV...
    method Contains (line 552) | bool ICollection<KeyValuePair<TKey, TValue>>.Contains(KeyValuePair<TKe...
    method CopyTo (line 556) | void ICollection<KeyValuePair<TKey, TValue>>.CopyTo(KeyValuePair<TKey,...
    method Remove (line 560) | bool ICollection<KeyValuePair<TKey, TValue>>.Remove(KeyValuePair<TKey,...
    method GetEnumerator (line 564) | IEnumerator<KeyValuePair<TKey, TValue>> IEnumerable<KeyValuePair<TKey,...
    method GetEnumerator (line 568) | IEnumerator IEnumerable.GetEnumerator() {
    method Add (line 599) | void IDictionary.Add(object key, object value) {
    method Contains (line 603) | bool IDictionary.Contains(object key) {
    method GetEnumerator (line 607) | IDictionaryEnumerator IDictionary.GetEnumerator() {
    method Remove (line 611) | void IDictionary.Remove(object key) {
    method CopyTo (line 627) | public void CopyTo(Array array, int index) {

FILE: corlib/System.Collections.Generic/EqualityComparer.cs
  class EqualityComparer (line 29) | public abstract class EqualityComparer<T> : IEqualityComparer, IEquality...
    class DefaultComparer (line 31) | private class DefaultComparer : EqualityComparer<T> {
      method Equals (line 33) | public override bool Equals(T x, T y) {
      method GetHashCode (line 40) | public override int GetHashCode(T obj) {
    method EqualityComparer (line 49) | static EqualityComparer() {
    method Equals (line 57) | public abstract bool Equals(T x, T y);
    method GetHashCode (line 59) | public abstract int GetHashCode(T obj);
    method Equals (line 61) | bool IEqualityComparer.Equals(object x, object y) {
    method GetHashCode (line 65) | int IEqualityComparer.GetHashCode(object obj) {

FILE: corlib/System.Collections.Generic/GenericEqualityComparer.cs
  class GenericEqualityComparer (line 26) | class GenericEqualityComparer<T> : EqualityComparer<T> where T : IEquata...
    method Equals (line 28) | public override bool Equals(T x, T y) {
    method GetHashCode (line 35) | public override int GetHashCode(T obj) {

FILE: corlib/System.Collections.Generic/ICollection.cs
  type ICollection (line 27) | public interface ICollection<T> : IEnumerable<T> {
    method Add (line 40) | void Add(T item);
    method Clear (line 42) | void Clear();
    method Contains (line 44) | bool Contains(T item);
    method CopyTo (line 46) | void CopyTo(T[] array, int arrayIndex);
    method Remove (line 48) | bool Remove(T item);

FILE: corlib/System.Collections.Generic/IComparer.cs
  type IComparer (line 25) | public interface IComparer<T> {
    method Compare (line 27) | int Compare(T x, T y);

FILE: corlib/System.Collections.Generic/IDictionary.cs
  type IDictionary (line 26) | public interface IDictionary<TKey, TValue> : ICollection<KeyValuePair<TK...
    method Add (line 28) | void Add(TKey key, TValue value);
    method ContainsKey (line 29) | bool ContainsKey(TKey key);
    method Remove (line 30) | bool Remove(TKey key);
    method TryGetValue (line 31) | bool TryGetValue(TKey key, out TValue value);

FILE: corlib/System.Collections.Generic/IEnumerable.cs
  type IEnumerable (line 28) | public interface IEnumerable<T> : IEnumerable {
    method GetEnumerator (line 30) | new IEnumerator<T> GetEnumerator();

FILE: corlib/System.Collections.Generic/IEnumerator.cs
  type IEnumerator (line 27) | public interface IEnumerator<T> : IDisposable, IEnumerator {

FILE: corlib/System.Collections.Generic/IEqualityComparer.cs
  type IEqualityComparer (line 29) | public interface IEqualityComparer<T> {
    method Equals (line 31) | bool Equals(T x, T y);
    method GetHashCode (line 32) | int GetHashCode(T obj);

FILE: corlib/System.Collections.Generic/IList.cs
  type IList (line 27) | public interface IList<T> : ICollection<T> {
    method IndexOf (line 32) | int IndexOf(T item);
    method Insert (line 34) | void Insert(int index, T item);
    method RemoveAt (line 36) | void RemoveAt(int index);

FILE: corlib/System.Collections.Generic/KeyNotFoundException.cs
  class KeyNotFoundException (line 26) | public class KeyNotFoundException : SystemException {
    method KeyNotFoundException (line 28) | public KeyNotFoundException() : base("The given key was not present in...
    method KeyNotFoundException (line 30) | public KeyNotFoundException(string message) : base(message) { }
    method KeyNotFoundException (line 32) | public KeyNotFoundException(string message, Exception inner) : base(me...

FILE: corlib/System.Collections.Generic/KeyValuePair.cs
  type KeyValuePair (line 26) | public struct KeyValuePair<TKey, TValue> {
    method KeyValuePair (line 31) | public KeyValuePair(TKey Key, TValue Value) {
    method ToString (line 48) | public override string ToString() {

FILE: corlib/System.Collections.Generic/List.cs
  class List (line 30) | public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ...
    type Enumerator (line 32) | public struct Enumerator : IEnumerator<T>, IDisposable {
      method Enumerator (line 37) | internal Enumerator(List<T> list) {
      method Dispose (line 48) | public void Dispose() {
      method MoveNext (line 57) | public bool MoveNext() {
      method Reset (line 62) | public void Reset() {
    method List (line 73) | public List() : this(defaultCapacity) { }
    method List (line 75) | public List(int capacity) {
    method List (line 83) | public List(IEnumerable<T> collection) {
    method EnsureSpace (line 98) | private void EnsureSpace(int space) {
    method Shift (line 104) | private void Shift(int index, int count) {
    method Add (line 118) | public void Add(T item) {
    method GetEnumerator (line 153) | public Enumerator GetEnumerator() {
    method IndexOf (line 157) | public int IndexOf(T item, int start, int count) {
    method IndexOf (line 161) | public int IndexOf(T item, int start) {
    method InsertRange (line 165) | public void InsertRange(int index, IEnumerable<T> collection) {
    method ToArray (line 179) | public T[] ToArray() {
    method IndexOf (line 187) | public int IndexOf(T item) {
    method Insert (line 191) | public void Insert(int index, T item) {
    method RemoveAt (line 199) | public void RemoveAt(int index) {
    method Clear (line 209) | public void Clear() {
    method Contains (line 214) | public bool Contains(T item) {
    method CopyTo (line 218) | public void CopyTo(T[] array, int arrayIndex) {
    method Remove (line 222) | public bool Remove(T item) {
    method GetEnumerator (line 231) | IEnumerator<T> IEnumerable<T>.GetEnumerator() {
    method GetEnumerator (line 235) | IEnumerator IEnumerable.GetEnumerator() {
    method Add (line 254) | public int Add(object value) {
    method Contains (line 259) | public bool Contains(object value) {
    method IndexOf (line 263) | public int IndexOf(object value) {
    method Insert (line 267) | public void Insert(int index, object value) {
    method Remove (line 271) | public void Remove(object value) {
    method CopyTo (line 287) | public void CopyTo(Array array, int index) {

FILE: corlib/System.Collections/ArrayList.cs
  class ArrayList (line 30) | public class ArrayList : IList, ICollection, IEnumerable, ICloneable {
    method ArrayList (line 34) | public ArrayList() {
    method ArrayList (line 38) | public ArrayList(ICollection c) {
    method ArrayList (line 48) | public ArrayList(int capacity) {
    method Add (line 52) | public virtual int Add(object value) {
    method AddRange (line 56) | public virtual void AddRange(ICollection c) {
    method Clear (line 65) | public virtual void Clear() {
    method Clone (line 69) | public virtual object Clone() {
    method Contains (line 73) | public virtual bool Contains(object item) {
    method CopyTo (line 77) | public virtual void CopyTo(Array array) {
    method CopyTo (line 81) | public virtual void CopyTo(Array array, int arrayIndex) {
    method CopyTo (line 85) | public virtual void CopyTo(int index, Array array, int arrayIndex, int...
    method GetEnumerator (line 89) | public virtual IEnumerator GetEnumerator() {
    method GetEnumerator (line 93) | public virtual IEnumerable GetEnumerator(int index, int count) {
    method GetRange (line 97) | public virtual ArrayList GetRange(int index, int count) {
    method IndexOf (line 101) | public virtual int IndexOf(object value) {
    method IndexOf (line 105) | public virtual int IndexOf(object value, int startIndex) {
    method IndexOf (line 109) | public virtual int IndexOf(object value, int startIndex, int count) {
    method Insert (line 113) | public virtual void Insert(int index, object value) {
    method InsertRange (line 117) | public virtual void InsertRange(int index, ICollection c) {
    method LastIndexOf (line 125) | public virtual int LastIndexOf(object value) {
    method LastIndexOf (line 129) | public virtual int LastIndexOf(object value, int startIndex) {
    method LastIndexOf (line 133) | public virtual int LastIndexOf(object value, int startIndex, int count) {
    method Remove (line 137) | public virtual void Remove(object obj) {
    method RemoveAt (line 141) | public virtual void RemoveAt(int index) {
    method RemoveRange (line 145) | public virtual void RemoveRange(int index, int count) {
    method Reverse (line 149) | public virtual void Reverse() {
    method Reverse (line 153) | public virtual void Reverse(int index, int count) {
    method SetRange (line 157) | public virtual void SetRange(int index, ICollection c) {
    method Sort (line 161) | public virtual void Sort() {
    method Sort (line 165) | public virtual void Sort(IComparer comparer) {
    method Sort (line 169) | public virtual void Sort(int index, int count, IComparer comparer) {
    method ToArray (line 173) | public virtual object[] ToArray() {
    method ToArray (line 177) | public virtual Array ToArray(Type type) {
    method TromToSize (line 181) | public virtual void TromToSize() {

FILE: corlib/System.Collections/DictionaryEntry.cs
  type DictionaryEntry (line 25) | public struct DictionaryEntry {
    method DictionaryEntry (line 30) | public DictionaryEntry(object key, object value) {

FILE: corlib/System.Collections/ICollection.cs
  type ICollection (line 26) | public interface ICollection : IEnumerable {
    method CopyTo (line 34) | void CopyTo(Array array, int index);

FILE: corlib/System.Collections/IComparer.cs
  type IComparer (line 24) | public interface IComparer {
    method Compare (line 26) | int Compare(object x, object y);

FILE: corlib/System.Collections/IDictionary.cs
  type IDictionary (line 26) | public interface IDictionary : ICollection {
    method Add (line 33) | void Add(object key, object value);
    method Clear (line 34) | void Clear();
    method Contains (line 35) | bool Contains(object key);
    method GetEnumerator (line 36) | new IDictionaryEnumerator GetEnumerator();
    method Remove (line 37) | void Remove(object key);

FILE: corlib/System.Collections/IDictionaryEnumerator.cs
  type IDictionaryEnumerator (line 26) | public interface IDictionaryEnumerator : IEnumerator {

FILE: corlib/System.Collections/IEnumerable.cs
  type IEnumerable (line 24) | public interface IEnumerable {
    method GetEnumerator (line 26) | IEnumerator GetEnumerator();

FILE: corlib/System.Collections/IEnumerator.cs
  type IEnumerator (line 24) | public interface IEnumerator {
    method MoveNext (line 26) | bool MoveNext();
    method Reset (line 27) | void Reset();

FILE: corlib/System.Collections/IEqualityComparer.cs
  type IEqualityComparer (line 29) | public interface IEqualityComparer {
    method Equals (line 31) | bool Equals(object x, object y);
    method GetHashCode (line 32) | int GetHashCode(object obj);

FILE: corlib/System.Collections/IList.cs
  type IList (line 26) | public interface IList : ICollection, IEnumerable {
    method Add (line 34) | int Add(object value);
    method Clear (line 36) | void Clear();
    method Contains (line 38) | bool Contains(object value);
    method IndexOf (line 40) | int IndexOf(object value);
    method Insert (line 42) | void Insert(int index, object value);
    method Remove (line 44) | void Remove(object value);
    method RemoveAt (line 46) | void RemoveAt(int index);

FILE: corlib/System.Diagnostics/Debugger.cs
  class Debugger (line 25) | public sealed class Debugger {
    method Break (line 27) | [MethodImpl(MethodImplOptions.InternalCall)]

FILE: corlib/System.Globalization/Calendar.cs
  class Calendar (line 8) | public abstract class Calendar {
    method CreateByName (line 10) | internal static Calendar CreateByName(string name) {
    method GetEra (line 24) | public abstract int GetEra(DateTime dt);
    method GetDayOfMonth (line 25) | public abstract int GetDayOfMonth(DateTime time);
    method GetDayOfWeek (line 26) | public abstract DayOfWeek GetDayOfWeek(DateTime time);
    method GetMonth (line 27) | public abstract int GetMonth(DateTime time);
    method GetYear (line 28) | public abstract int GetYear(DateTime time);

FILE: corlib/System.Globalization/CalendarWeekRule.cs
  type CalendarWeekRule (line 8) | public enum CalendarWeekRule {

FILE: corlib/System.Globalization/CalendricalCalculations.cs
  class CCFixed (line 202) | internal class CCFixed {
    method ToDateTime (line 212) | public static System.DateTime ToDateTime(int date) {
    method ToDateTime (line 236) | public static System.DateTime ToDateTime(int date,
    method FromDateTime (line 255) | public static int FromDateTime(System.DateTime time) {
    method day_of_week (line 265) | public static DayOfWeek day_of_week(int date) {
    method kday_on_or_before (line 282) | public static int kday_on_or_before(int date, int k) {
    method kday_on_or_after (line 299) | public static int kday_on_or_after(int date, int k) {
    method kd_nearest (line 316) | public static int kd_nearest(int date, int k) {
    method kday_after (line 333) | public static int kday_after(int date, int k) {
    method kday_before (line 350) | public static int kday_before(int date, int k) {
  class CCGregorianCalendar (line 372) | internal class CCGregorianCalendar {
    type Month (line 381) | public enum Month {
    method is_leap_year (line 441) | public static bool is_leap_year(int year) {
    method fixed_from_dmy (line 470) | public static int fixed_from_dmy(int day, int month, int year) {
    method year_from_fixed (line 497) | public static int year_from_fixed(int date) {
    method my_from_fixed (line 525) | public static void my_from_fixed(out int month, out int year,
    method dmy_from_fixed (line 560) | public static void dmy_from_fixed(out int day, out int month,
    method month_from_fixed (line 575) | public static int month_from_fixed(int date) {
    method day_from_fixed (line 589) | public static int day_from_fixed(int date) {
    method date_difference (line 620) | public static int date_difference(int dayA, int monthA, int yearA,
    method day_number (line 643) | public static int day_number(int day, int month, int year) {
    method days_remaining (line 664) | public static int days_remaining(int day, int month, int year) {
    method AddMonths (line 682) | public static System.DateTime AddMonths(System.DateTime time,
    method AddYears (line 708) | public static System.DateTime AddYears(System.DateTime time,
    method GetDayOfMonth (line 732) | public static int GetDayOfMonth(System.DateTime time) {
    method GetDayOfYear (line 745) | public static int GetDayOfYear(System.DateTime time) {
    method GetDaysInMonth (line 762) | public static int GetDaysInMonth(int year, int month) {
    method GetDaysInYear (line 775) | public static int GetDaysInYear(int year) {
    method GetMonth (line 791) | public static int GetMonth(System.DateTime time) {
    method GetYear (line 805) | public static int GetYear(System.DateTime time) {
    method IsLeapDay (line 822) | public static bool IsLeapDay(int year, int month, int day) {
    method ToDateTime (line 848) | public static System.DateTime ToDateTime(int year, int month, int day,

FILE: corlib/System.Globalization/CultureInfo.cs
  class CultureInfo (line 8) | public class CultureInfo {
    method GetCultureInfo (line 16) | public static CultureInfo GetCultureInfo(string name) {
    method GetCultures (line 43) | public static CultureInfo[] GetCultures(CultureTypes types) {
    method CultureInfo (line 74) | public CultureInfo(string name) {
    method ConstructInvariant (line 96) | private void ConstructInvariant() {
    method ConstructFromFile (line 106) | private void ConstructFromFile(string name) {
    method CopyFrom (line 141) | private void CopyFrom(CultureInfo ci) {
    method ToString (line 266) | public override string ToString() {

FILE: corlib/System.Globalization/CultureTypes.cs
  type CultureTypes (line 4) | [Flags]

FILE: corlib/System.Globalization/DateTimeFormatInfo.cs
  class DateTimeFormatInfo (line 6) | public sealed class DateTimeFormatInfo {
    method GetInstance (line 22) | public static DateTimeFormatInfo GetInstance(IFormatProvider fp) {
    method DateTimeFormatInfo (line 60) | internal DateTimeFormatInfo(StreamReader s, string calendarName) {
    method DateTimeFormatInfo (line 90) | public DateTimeFormatInfo() {
    method GetAbbreviatedDayName (line 148) | public string GetAbbreviatedDayName(DayOfWeek dow) {
    method GetAbbreviatedMonthName (line 152) | public string GetAbbreviatedMonthName(int m) {
    method GetDayName (line 156) | public string GetDayName(DayOfWeek dow) {
    method GetEraName (line 160) | public string GetEraName(int era) {
    method GetMonthName (line 164) | public string GetMonthName(int m) {

FILE: corlib/System.Globalization/DigitShapes.cs
  type DigitShapes (line 4) | public enum DigitShapes {

FILE: corlib/System.Globalization/GregorianCalendar.cs
  class GregorianCalendar (line 8) | public class GregorianCalendar : Calendar {
    method GregorianCalendar (line 14) | public GregorianCalendar() : this(GregorianCalendarTypes.Localized) { }
    method GregorianCalendar (line 16) | public GregorianCalendar(GregorianCalendarTypes type) {
    method GetEra (line 28) | public override int GetEra(DateTime dt) {
    method GetDayOfWeek (line 32) | public override DayOfWeek GetDayOfWeek(DateTime time) {
    method GetDayOfMonth (line 37) | public override int GetDayOfMonth(DateTime time) {
    method GetMonth (line 41) | public override int GetMonth(DateTime time) {
    method GetYear (line 45) | public override int GetYear(DateTime time) {

FILE: corlib/System.Globalization/GregorianCalendarTypes.cs
  type GregorianCalendarTypes (line 8) | public enum GregorianCalendarTypes {

FILE: corlib/System.Globalization/NumberFormatInfo.cs
  class NumberFormatInfo (line 6) | public class NumberFormatInfo : IFormatProvider {
    method GetInstance (line 27) | public static NumberFormatInfo GetInstance(IFormatProvider provider) {
    method ConvertToIntArray (line 70) | private static int[] ConvertToIntArray(string s) {
    method NumberFormatInfo (line 80) | internal NumberFormatInfo(StreamReader s) {
    method NumberFormatInfo (line 112) | public NumberFormatInfo() {
    method GetFormat (line 175) | public object GetFormat(Type formatType) {

FILE: corlib/System.Globalization/NumberStyles.cs
  type NumberStyles (line 4) | public enum NumberStyles {

FILE: corlib/System.Globalization/TextInfo.cs
  class TextInfo (line 6) | public class TextInfo {
    method TextInfo (line 16) | internal TextInfo(CultureInfo ci, StreamReader s) {
    method ToLower (line 80) | public char ToLower(char c) {
    method ToLower (line 85) | public string ToLower(string s) {
    method ToUpper (line 90) | public char ToUpper(char c) {
    method ToUpper (line 95) | public string ToUpper(string s) {
    method ToTitleCase (line 100) | public string ToTitleCase(string str) {

FILE: corlib/System.Globalization/UnicodeCategory.cs
  type UnicodeCategory (line 4) | public enum UnicodeCategory {

FILE: corlib/System.IO/CheckArgument.cs
  class CheckArgument (line 4) | internal static class CheckArgument {
    method WhitespaceOnly (line 8) | public static void WhitespaceOnly(string arg, string desc) {
    method WhitespaceOnly (line 20) | public static void WhitespaceOnly(string arg) {
    method Empty (line 27) | public static void Empty(string arg, string desc) {
    method Empty (line 36) | public static void Empty(string arg) {
    method Null (line 43) | public static void Null(Object arg, string desc) {
    method Null (line 52) | public static void Null(Object arg) {
    method PathChars (line 61) | public static void PathChars(string path, string desc) {
    method PathChars (line 72) | public static void PathChars(string path) {
    method PathLength (line 79) | public static void PathLength(string path, string desc) {
    method PathLength (line 86) | public static void PathLength(string path) {
    method Path (line 93) | public static void Path(string path, bool bAllowNull, bool bLength) {
    method Path (line 110) | public static void Path(string path, bool bAllowNull) {
    method Path (line 117) | public static void Path(string path) {

FILE: corlib/System.IO/Directory.cs
  class Directory (line 4) | public static class Directory {
    method GetCurrentDirectory (line 6) | public static string GetCurrentDirectory() {
    method GetFiles (line 15) | public static string[] GetFiles(string path) {
    method GetFiles (line 19) | public static string[] GetFiles(string path, string pattern) {
    method GetFileSystemEntries (line 23) | private static string[] GetFileSystemEntries(string path, string patte...

FILE: corlib/System.IO/DirectoryInfo.cs
  class DirectoryInfo (line 4) | public class DirectoryInfo : FileSystemInfo {
    method DirectoryInfo (line 9) | public DirectoryInfo(string path) {
    method GetFiles (line 49) | public FileInfo[] GetFiles() {
    method GetFiles (line 53) | public FileInfo[] GetFiles(string pattern) {

FILE: corlib/System.IO/DirectoryNotFoundException.cs
  class DirectoryNotFoundException (line 4) | public class DirectoryNotFoundException : SystemException {
    method DirectoryNotFoundException (line 6) | public DirectoryNotFoundException() : base("Directory not found.") { }
    method DirectoryNotFoundException (line 7) | public DirectoryNotFoundException(string msg) : base(msg) { }

FILE: corlib/System.IO/File.cs
  class File (line 4) | public static class File {
    method OpenRead (line 6) | public static FileStream OpenRead(string path) {
    method OpenText (line 10) | public static StreamReader OpenText(string path) {
    method Exists (line 14) | public static bool Exists(string path) {

FILE: corlib/System.IO/FileAccess.cs
  type FileAccess (line 4) | public enum FileAccess : int {

FILE: corlib/System.IO/FileAttributes.cs
  type FileAttributes (line 4) | public enum FileAttributes {

FILE: corlib/System.IO/FileInfo.cs
  class FileInfo (line 4) | public sealed class FileInfo : FileSystemInfo {
    method FileInfo (line 10) | public FileInfo(string path) {

FILE: corlib/System.IO/FileInternal.cs
  class FileInternal (line 5) | internal static class FileInternal {
    method Open (line 7) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Read (line 10) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Close (line 13) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetCurrentDirectory (line 16) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetFileAttributes (line 19) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetFileSystemEntries (line 22) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetException (line 30) | public static Exception GetException(int error, string path) {
    method ExistsFile (line 43) | public static bool ExistsFile(string path, out int error) {
    method ExistsDirectory (line 54) | public static bool ExistsDirectory(string path, out int error) {

FILE: corlib/System.IO/FileMode.cs
  type FileMode (line 4) | public enum FileMode : int {

FILE: corlib/System.IO/FileNotFoundException.cs
  class FileNotFoundException (line 4) | public class FileNotFoundException : IOException {
    method FileNotFoundException (line 6) | public FileNotFoundException(string msg) : base(msg) { }

FILE: corlib/System.IO/FileShare.cs
  type FileShare (line 4) | public enum FileShare : int {

FILE: corlib/System.IO/FileStream.cs
  class FileStream (line 4) | public class FileStream : Stream {
    method FileStream (line 10) | public FileStream(string filename, FileMode mode, FileAccess access, F...
    method Dispose (line 28) | protected override void Dispose(bool disposing) {
    method Flush (line 41) | public override void Flush() {
    method Read (line 45) | public override int Read(byte[] buffer, int offset, int count) {
    method Seek (line 61) | public override long Seek(long offset, SeekOrigin origin) {
    method SetLength (line 65) | public override void SetLength(long value) {
    method Write (line 69) | public override void Write(byte[] buffer, int offset, int count) {

FILE: corlib/System.IO/FileSystemInfo.cs
  class FileSystemInfo (line 4) | public abstract class FileSystemInfo : MarshalByRefObject {
    method CheckPath (line 9) | internal void CheckPath(string path) {

FILE: corlib/System.IO/IOException.cs
  class IOException (line 4) | public class IOException : SystemException {
    method IOException (line 6) | public IOException() : base("I/O Error") { }
    method IOException (line 7) | public IOException(string message) : base(message) { }

FILE: corlib/System.IO/Path.cs
  class Path (line 4) | public static class Path {
    method ChangeExtension (line 216) | public static string ChangeExtension(string path, string extension) {
    method Combine (line 246) | public static string Combine(string path1, string path2) {
    method GetDirectoryName (line 278) | public static string GetDirectoryName(string path) {
    method GetExtension (line 307) | public static string GetExtension(string path) {
    method GetFileName (line 324) | public static string GetFileName(string path) {
    method GetFileNameWithoutExtension (line 338) | public static string GetFileNameWithoutExtension(string path) {
    method GetFullPath (line 342) | public static string GetFullPath(string path) {
    method WindowsDriveAdjustment (line 347) | internal static string WindowsDriveAdjustment(string path) {
    method InsecureGetFullPath (line 379) | internal static string InsecureGetFullPath(string path) {
    method IsDsc (line 429) | static bool IsDsc(char c) {
    method GetPathRoot (line 433) | public static string GetPathRoot(string path) {
    method GetTempFileName (line 481) | public static string GetTempFileName() {
    method HasExtension (line 496) | public static bool HasExtension(string path) {
    method IsPathRooted (line 504) | public static bool IsPathRooted(string path) {
    method GetInvalidFileNameChars (line 517) | public static char[] GetInvalidFileNameChars ()
    method GetInvalidPathChars (line 530) | public static char[] GetInvalidPathChars ()
    method GetRandomFileName (line 543) | public static string GetRandomFileName ()
    method findExtension (line 549) | private static int findExtension(string path) {
    method Path (line 562) | static Path() {
    method SameRoot (line 589) | static bool SameRoot(string root, string path) {
    method CanonicalizePath (line 606) | static string CanonicalizePath(string path) {
    method IsPathSubsetOf (line 669) | static internal bool IsPathSubsetOf(string subset, string path) {

FILE: corlib/System.IO/SearchPattern.cs
  class SearchPattern (line 4) | internal class SearchPattern {

FILE: corlib/System.IO/SeekOrigin.cs
  type SeekOrigin (line 4) | public enum SeekOrigin : int {

FILE: corlib/System.IO/Stream.cs
  class Stream (line 5) | public abstract class Stream : MarshalByRefObject, IDisposable {
    class NullStream (line 9) | private class NullStream : Stream {
      method Flush (line 15) | public override void Flush() { }
      method Read (line 16) | public override int Read(byte[] buffer, int offset, int count) { ret...
      method ReadByte (line 17) | public override int ReadByte() { return -1; }
      method Seek (line 18) | public override long Seek(long offset, SeekOrigin origin) { return 0; }
      method Write (line 19) | public override void Write(byte[] buffer, int offset, int count) { }
      method WriteByte (line 20) | public override void WriteByte(byte value) { }
      method SetLength (line 21) | public override void SetLength(long value) { }
    method Stream (line 24) | protected Stream() {
    method Dispose (line 39) | public void Dispose() {
    method Dispose (line 43) | void IDisposable.Dispose() {
    method Close (line 47) | public virtual void Close() {
    method Dispose (line 51) | protected virtual void Dispose(bool disposing) {
    method Flush (line 55) | public abstract void Flush();
    method Read (line 57) | public abstract int Read([In, Out] byte[] buffer, int offset, int count);
    method ReadByte (line 59) | public virtual int ReadByte() {
    method Seek (line 68) | public abstract long Seek(long offset, SeekOrigin origin);
    method SetLength (line 70) | public abstract void SetLength(long value);
    method Write (line 72) | public abstract void Write(byte[] buffer, int offset, int count);
    method WriteByte (line 74) | public virtual void WriteByte(byte value) {

FILE: corlib/System.IO/StreamReader.cs
  class StreamReader (line 8) | public class StreamReader : TextReader {
    class NullStreamReader (line 48) | private class NullStreamReader : StreamReader {
      method Peek (line 49) | public override int Peek() {
      method Read (line 53) | public override int Read() {
      method Read (line 57) | public override int Read([In, Out] char[] buffer, int index, int cou...
      method ReadLine (line 61) | public override string ReadLine() {
      method ReadToEnd (line 65) | public override string ReadToEnd() {
    method StreamReader (line 80) | internal StreamReader() { }
    method StreamReader (line 82) | public StreamReader(Stream stream)
    method StreamReader (line 85) | public StreamReader(Stream stream, bool detect_encoding_from_bytemarks)
    method StreamReader (line 88) | public StreamReader(Stream stream, Encoding encoding)
    method StreamReader (line 91) | public StreamReader(Stream stream, Encoding encoding, bool detect_enco...
    method StreamReader (line 94) | public StreamReader(Stream stream, Encoding encoding, bool detect_enco...
    method StreamReader (line 98) | public StreamReader(string path)
    method StreamReader (line 101) | public StreamReader(string path, bool detect_encoding_from_bytemarks)
    method StreamReader (line 104) | public StreamReader(string path, Encoding encoding)
    method StreamReader (line 107) | public StreamReader(string path, Encoding encoding, bool detect_encodi...
    method StreamReader (line 110) | public StreamReader(string path, Encoding encoding, bool detect_encodi...
    method Initialize (line 131) | internal void Initialize(Stream stream, Encoding encoding, bool detect...
    method Close (line 184) | public override void Close() {
    method Dispose (line 188) | protected override void Dispose(bool disposing) {
    method DoChecks (line 204) | int DoChecks(int count) {
    method DiscardBufferedData (line 270) | public void DiscardBufferedData() {
    method ReadBuffer (line 278) | private int ReadBuffer() {
    method Peek (line 310) | public override int Peek() {
    method Read (line 321) | public override int Read() {
    method Read (line 332) | public override int Read([In, Out] char[] dest_buffer, int index, int ...
    method FindNextEOL (line 370) | int FindNextEOL() {
    method ReadLine (line 394) | public override string ReadLine() {
    method ReadToEnd (line 444) | public override string ReadToEnd() {

FILE: corlib/System.IO/TextReader.cs
  class TextReader (line 8) | public abstract class TextReader : MarshalByRefObject, IDisposable {
    method TextReader (line 10) | protected TextReader() { }
    method Close (line 14) | public virtual void Close() {
    method Dispose (line 18) | public void Dispose ()
    method Dispose (line 23) | protected virtual void Dispose(bool disposing) {
    method Peek (line 27) | public virtual int Peek() {
    method Read (line 31) | public virtual int Read() {
    method Read (line 36) | public virtual int Read([In, Out] char[] buffer, int index, int count) {
    method ReadBlock (line 48) | public virtual int ReadBlock([In, Out] char[] buffer, int index, int c...
    method ReadLine (line 62) | public virtual string ReadLine() {
    method ReadToEnd (line 66) | public virtual string ReadToEnd() {
    method Synchronized (line 70) | public static TextReader Synchronized(TextReader reader) {
  class SynchronizedReader (line 83) | internal class SynchronizedReader : TextReader {
    method SynchronizedReader (line 86) | public SynchronizedReader(TextReader reader) {
    method Close (line 90) | public override void Close() {
    method Peek (line 96) | public override int Peek() {
    method ReadBlock (line 102) | public override int ReadBlock(char[] buffer, int index, int count) {
    method ReadLine (line 108) | public override string ReadLine() {
    method ReadToEnd (line 114) | public override string ReadToEnd() {
    method Read (line 120) | public override int Read() {
    method Read (line 126) | public override int Read(char[] buffer, int index, int count) {

FILE: corlib/System.Reflection/DefaultMemberAttribute.cs
  class DefaultMemberAttribute (line 27) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | Attri...
    method DefaultMemberAttribute (line 32) | public DefaultMemberAttribute(string memberName) {

FILE: corlib/System.Reflection/MemberInfo.cs
  class MemberInfo (line 28) | public abstract class MemberInfo {
    method MemberInfo (line 30) | protected MemberInfo() {

FILE: corlib/System.Runtime.CompilerServices/IndexerNameAttribute.cs
  class IndexerNameAttribute (line 27) | [AttributeUsage(AttributeTargets.Property, Inherited = true)]
    method IndexerNameAttribute (line 30) | public IndexerNameAttribute(string indexName) {

FILE: corlib/System.Runtime.CompilerServices/MethodImplAttribute.cs
  class MethodImplAttribute (line 27) | [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor, ...
    method MethodImplAttribute (line 32) | public MethodImplAttribute() {
    method MethodImplAttribute (line 35) | public MethodImplAttribute(MethodImplOptions options) {

FILE: corlib/System.Runtime.CompilerServices/MethodImplOptions.cs
  type MethodImplOptions (line 26) | [Flags]

FILE: corlib/System.Runtime.CompilerServices/RuntimeHelpers.cs
  class RuntimeHelpers (line 26) | public static class RuntimeHelpers {
    method InitializeArray (line 28) | [MethodImplAttribute(MethodImplOptions.InternalCall)]

FILE: corlib/System.Runtime.InteropServices/CallingConvention.cs
  type CallingConvention (line 24) | public enum CallingConvention {

FILE: corlib/System.Runtime.InteropServices/CharSet.cs
  type CharSet (line 24) | public enum CharSet {

FILE: corlib/System.Runtime.InteropServices/DllImportAttribute.cs
  class DllImportAttribute (line 25) | [AttributeUsage(AttributeTargets.Method)]
    method DllImportAttribute (line 39) | public DllImportAttribute(string dllName) {

FILE: corlib/System.Runtime.InteropServices/ExternalException.cs
  class ExternalException (line 24) | public class ExternalException : SystemException {
    method ExternalException (line 26) | public ExternalException() : base("External exception") { }
    method ExternalException (line 28) | public ExternalException(string msg) : base(msg) { }
    method ExternalException (line 30) | public ExternalException(string msg, Exception inner) : base(msg, inne...
    method ExternalException (line 32) | public ExternalException(string msg, int err)

FILE: corlib/System.Runtime.InteropServices/InAttribute.cs
  class InAttribute (line 25) | [AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
    method InAttribute (line 27) | public InAttribute() { }

FILE: corlib/System.Runtime.InteropServices/OutAttribute.cs
  class OutAttribute (line 27) | [AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
    method OutAttribute (line 29) | public OutAttribute() { }

FILE: corlib/System.Text/Decoder.cs
  class Decoder (line 24) | public abstract class Decoder {
    method GetChars (line 25) | public virtual int GetChars(byte[] bytes, int byteIndex, int byteCount...
    method GetChars (line 29) | public virtual int GetChars(byte[] bytes, int byteIndex, int byteCount...
    method GetCharsSafe (line 40) | protected abstract int GetCharsSafe(byte[] bytes, int byteIndex, int b...

FILE: corlib/System.Text/Encoding.cs
  class Encoding (line 25) | public abstract class Encoding : ICloneable {
    method GetPreamble (line 76) | public virtual byte[] GetPreamble() {
    method GetMaxCharCount (line 80) | public abstract int GetMaxCharCount(int byteCount);
    method GetDecoder (line 82) | public abstract Decoder GetDecoder();
    method Clone (line 87) | public object Clone() {

FILE: corlib/System.Text/StringBuilder.cs
  class StringBuilder (line 29) | public sealed class StringBuilder {
    method StringBuilder (line 40) | public StringBuilder() : this(defaultInitialCapacity, defaultMaxCapaci...
    method StringBuilder (line 42) | public StringBuilder(int initialCapacity) : this(initialCapacity, defa...
    method StringBuilder (line 44) | public StringBuilder(int initialCapacity, int maxCapacity) {
    method StringBuilder (line 50) | public StringBuilder(string value)
    method StringBuilder (line 57) | public StringBuilder(string value, int initialCapacity)
    method StringBuilder (line 64) | public StringBuilder(string value, int startIndex, int length, int ini...
    method ToString (line 77) | public override string ToString() {
    method ToString (line 81) | public string ToString(int startIndex, int length) {
    method EnsureSpace (line 88) | private void EnsureSpace(int space) {
    method CopyTo (line 139) | public void CopyTo(int srcIndex, char[] dst, int dstIndex, int count) {
    method EnsureCapacity (line 150) | public void EnsureCapacity(int capacity) {
    method Remove (line 157) | public StringBuilder Remove(int startIndex, int length) {
    method Append (line 168) | public StringBuilder Append(string value) {
    method Append (line 177) | public StringBuilder Append(string value, int startIndex, int count) {
    method Append (line 191) | public StringBuilder Append(char value) {
    method Append (line 197) | public StringBuilder Append(char value, int repeatCount) {
    method Append (line 208) | public StringBuilder Append(char[] value) {
    method Append (line 219) | public StringBuilder Append(char[] value, int startIndex, int charCoun...
    method Append (line 232) | public StringBuilder Append(object value) {
    method Append (line 239) | public StringBuilder Append(bool value) {
    method Append (line 243) | public StringBuilder Append(byte value) {
    method Append (line 247) | public StringBuilder Append(decimal value) {
    method Append (line 251) | public StringBuilder Append(double value) {
    method Append (line 255) | public StringBuilder Append(short value) {
    method Append (line 259) | public StringBuilder Append(int value) {
    method Append (line 263) | public StringBuilder Append(long value) {
    method Append (line 267) | public StringBuilder Append(sbyte value) {
    method Append (line 271) | public StringBuilder Append(float value) {
    method Append (line 275) | public StringBuilder Append(ushort value) {
    method Append (line 279) | public StringBuilder Append(uint value) {
    method Append (line 283) | public StringBuilder Append(ulong value) {
    method AppendFormat (line 291) | public StringBuilder AppendFormat(string format, object obj0) {
    method AppendFormat (line 296) | public StringBuilder AppendFormat(string format, object obj0, object o...
    method AppendFormat (line 301) | public StringBuilder AppendFormat(string format, object obj0, object o...
    method AppendFormat (line 306) | public StringBuilder AppendFormat(string format, params object[] objs) {
    method AppendFormat (line 311) | public StringBuilder AppendFormat(IFormatProvider provider, string for...
    method AppendLine (line 320) | public StringBuilder AppendLine() {
    method AppendLine (line 324) | public StringBuilder AppendLine(string value) {
    method Insert (line 332) | public StringBuilder Insert(int index, string value) {
    method Insert (line 349) | public StringBuilder Insert(int index, bool value) {
    method Insert (line 353) | public StringBuilder Insert(int index, byte value) {
    method Insert (line 357) | public StringBuilder Insert(int index, char value) {
    method Insert (line 361) | public StringBuilder Insert(int index, char[] value) {
    method Insert (line 365) | public StringBuilder Insert(int index, decimal value) {
    method Insert (line 369) | public StringBuilder Insert(int index, double value) {
    method Insert (line 373) | public StringBuilder Insert(int index, short value) {
    method Insert (line 377) | public StringBuilder Insert(int index, int value) {
    method Insert (line 381) | public StringBuilder Insert(int index, long value) {
    method Insert (line 385) | public StringBuilder Insert(int index, object value) {
    method Insert (line 389) | public StringBuilder Insert(int index, sbyte value) {
    method Insert (line 393) | public StringBuilder Insert(int index, float value) {
    method Insert (line 397) | public StringBuilder Insert(int index, ushort value) {
    method Insert (line 401) | public StringBuilder Insert(int index, uint value) {
    method Insert (line 405) | public StringBuilder Insert(int index, ulong value) {
    method Insert (line 409) | public StringBuilder Insert(int index, string value, int count) {
    method Insert (line 423) | public StringBuilder Insert(int index, char[] value, int startIndex, i...
    method Replace (line 437) | public StringBuilder Replace(char oldChar, char newChar) {
    method Replace (line 441) | public StringBuilder Replace(string oldValue, string newValue) {
    method Replace (line 445) | public StringBuilder Replace(char oldChar, char newChar, int startInde...
    method Replace (line 457) | public StringBuilder Replace(string oldValue, string newValue, int sta...

FILE: corlib/System.Text/UTF8Encoding.cs
  class UTF8Encoding (line 4) | public class UTF8Encoding : Encoding {
    class UTF8Decoder (line 6) | private class UTF8Decoder : Decoder {
      method GetCharsSafe (line 11) | protected override int GetCharsSafe(byte[] bytes, int byteIndex, int...
    method UTF8Encoding (line 78) | public UTF8Encoding() : this(false, false) { }
    method UTF8Encoding (line 80) | public UTF8Encoding(bool encoderShouldEmitUTF8Identifier) : this(encod...
    method UTF8Encoding (line 82) | public UTF8Encoding(bool encoderShouldEmitUTF8Identifier, bool throwOn...
    method GetPreamble (line 87) | public override byte[] GetPreamble() {
    method GetMaxCharCount (line 95) | public override int GetMaxCharCount(int byteCount) {
    method GetDecoder (line 102) | public override Decoder GetDecoder() {

FILE: corlib/System.Text/UnicodeEncoding.cs
  class UnicodeEncoding (line 4) | public class UnicodeEncoding : Encoding {
    class UnicodeDecoder (line 6) | private class UnicodeDecoder : Decoder {
      method UnicodeDecoder (line 10) | public UnicodeDecoder(bool bigEndian) {
      method GetCharsSafe (line 14) | protected override int GetCharsSafe(byte[] bytes, int byteIndex, int...
    method UnicodeEncoding (line 23) | public UnicodeEncoding() : this(false, true, false) { }
    method UnicodeEncoding (line 25) | public UnicodeEncoding(bool bigEndian, bool byteOrderMark) : this(bigE...
    method UnicodeEncoding (line 27) | public UnicodeEncoding(bool bigEndian, bool byteOrderMark, bool throwO...
    method GetPreamble (line 33) | public override byte[] GetPreamble() {
    method GetMaxCharCount (line 45) | public override int GetMaxCharCount(int byteCount) {
    method GetDecoder (line 52) | public override Decoder GetDecoder() {

FILE: corlib/System.Threading/Interlocked.cs
  class Interlocked (line 25) | public static class Interlocked {
    method CompareExchange (line 27) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Increment (line 30) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Decrement (line 33) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Add (line 36) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Exchange (line 39) | [MethodImpl(MethodImplOptions.InternalCall)]

FILE: corlib/System.Threading/Monitor.cs
  class Monitor (line 26) | public static class Monitor {
    method Internal_TryEnter (line 28) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Enter (line 31) | public static void Enter(object obj) {
    method Internal_Exit (line 38) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Exit (line 41) | public static void Exit(object obj) {

FILE: corlib/System.Threading/Thread.cs
  class Thread (line 27) | public sealed class Thread {
    method Sleep (line 39) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Thread (line 47) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Thread (line 50) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Start (line 78) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Start (line 81) | public void Start(object param) {

FILE: corlib/System.Threading/ThreadState.cs
  type ThreadState (line 25) | [Flags]

FILE: corlib/System.Threading/WaitHandle.cs
  class WaitHandle (line 26) | public abstract class WaitHandle : MarshalByRefObject, IDisposable {
    method Dispose (line 28) | public void Dispose() {

FILE: corlib/System/Activator.cs
  class Activator (line 27) | public static class Activator {

FILE: corlib/System/ArgumentException.cs
  class ArgumentException (line 24) | public class ArgumentException : SystemException {
    method ArgumentException (line 28) | public ArgumentException() : base("An invalid argument was specified."...
    method ArgumentException (line 30) | public ArgumentException(string message) : base(message) { }
    method ArgumentException (line 32) | public ArgumentException(string message, Exception innerException) : b...
    method ArgumentException (line 34) | public ArgumentException(string message, string paramName)

FILE: corlib/System/ArgumentNullException.cs
  class ArgumentNullException (line 24) | public class ArgumentNullException : ArgumentException {
    method ArgumentNullException (line 26) | public ArgumentNullException() : base("Argument cannot be null.") { }
    method ArgumentNullException (line 28) | public ArgumentNullException(string paramName) : base("Argument cannot...
    method ArgumentNullException (line 30) | public ArgumentNullException(string paramName, string message) : base(...
    method ArgumentNullException (line 32) | public ArgumentNullException(string message, Exception innerException)

FILE: corlib/System/ArgumentOutOfRangeException.cs
  class ArgumentOutOfRangeException (line 24) | public class ArgumentOutOfRangeException : ArgumentException {
    method ArgumentOutOfRangeException (line 26) | public ArgumentOutOfRangeException() : base("Argument is out of range....
    method ArgumentOutOfRangeException (line 28) | public ArgumentOutOfRangeException(string paramName) : base("Argument ...
    method ArgumentOutOfRangeException (line 30) | public ArgumentOutOfRangeException(string paramName, string msg) : bas...

FILE: corlib/System/ArithmeticException.cs
  class ArithmeticException (line 24) | public class ArithmeticException : SystemException {
    method ArithmeticException (line 26) | public ArithmeticException() : base("Overflow or underflow in the arit...
    method ArithmeticException (line 27) | public ArithmeticException(string msg) : base(msg) { }

FILE: corlib/System/Array.cs
  class Array (line 29) | public abstract class Array : ICloneable, IList, ICollection, IEnumerable {
    class NonGenericEnumerator (line 31) | private class NonGenericEnumerator : IEnumerator {
      method NonGenericEnumerator (line 36) | public NonGenericEnumerator(Array array) {
      method MoveNext (line 54) | public bool MoveNext() {
      method Reset (line 59) | public void Reset() {
    type GenericEnumerator (line 65) | private struct GenericEnumerator<T> : IEnumerator<T> {
      method GenericEnumerator (line 70) | public GenericEnumerator(Array array) {
      method Dispose (line 88) | public void Dispose() {
      method MoveNext (line 97) | public bool MoveNext() {
      method Reset (line 102) | public void Reset() {
    method Array (line 107) | private Array() {
    method Internal_GetGenericEnumerator (line 113) | private IEnumerator<T> Internal_GetGenericEnumerator<T>() {
    method Internal_GenericIsReadOnly (line 117) | private bool Internal_GenericIsReadOnly() {
    method Internal_GenericAdd (line 121) | private void Internal_GenericAdd<T>(T item) {
    method Internal_GenericClear (line 125) | private void Internal_GenericClear() {
    method Internal_GenericContains (line 129) | private bool Internal_GenericContains<T>(T item) {
    method Internal_GenericCopyTo (line 133) | private void Internal_GenericCopyTo<T>(T[] array, int arrayIndex) {
    method Internal_GenericRemove (line 137) | private bool Internal_GenericRemove<T>(T item) {
    method Internal_GenericIndexOf (line 141) | private int Internal_GenericIndexOf<T>(T item) {
    method Internal_GenericInsert (line 145) | private void Internal_GenericInsert<T>(int index, T item) {
    method Internal_GenericRemoveAt (line 149) | private void Internal_GenericRemoveAt(int index) {
    method Internal_GenericGetItem (line 153) | private T Internal_GenericGetItem<T>(int index) {
    method Internal_GenericSetItem (line 157) | private void Internal_GenericSetItem<T>(int index, T value) {
    method Internal_GetValue (line 174) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_SetValue (line 180) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Clear (line 183) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_Copy (line 186) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Resize (line 189) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Reverse (line 192) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Reverse (line 195) | public static void Reverse(Array array) {
    method IndexOf (line 199) | public static int IndexOf(Array array, object value) {
    method IndexOf (line 203) | public static int IndexOf(Array array, object value, int startIndex) {
    method IndexOf (line 207) | public static int IndexOf(Array array, object value, int startIndex, i...
    method Copy (line 223) | public static void Copy(Array srcArray, int srcIndex, Array dstArray, ...
    method Copy (line 255) | public static void Copy(Array srcArray, Array dstArray, int length) {
    method IndexOf (line 259) | public static int IndexOf<T>(T[] array, T value) {
    method IndexOf (line 263) | public static int IndexOf<T>(T[] array, T value, int startIndex) {
    method IndexOf (line 267) | public static int IndexOf<T>(T[] array, T value, int startIndex, int c...
    method GetValue (line 271) | public object GetValue(int index) {
    method SetValue (line 278) | public void SetValue(object value, int index) {
    method GetLength (line 293) | public int GetLength(int dimension) {
    method GetLowerBound (line 300) | public int GetLowerBound(int dimension) {
    method GetUpperBound (line 307) | public int GetUpperBound(int dimension) {
    method ConvertAll (line 314) | public static TOutput[] ConvertAll<TInput, TOutput>(TInput[] array, Co...
    method Clone (line 334) | public object Clone() {
    method Add (line 365) | int IList.Add(object value) {
    method Clear (line 369) | void IList.Clear() {
    method Contains (line 373) | bool IList.Contains(object value) {
    method IndexOf (line 377) | int IList.IndexOf(object value) {
    method Insert (line 381) | void IList.Insert(int index, object value) {
    method Remove (line 385) | void IList.Remove(object value) {
    method RemoveAt (line 389) | void IList.RemoveAt(int index) {
    method CopyTo (line 411) | public void CopyTo(Array array, int index) {
    method GetEnumerator (line 415) | public IEnumerator GetEnumerator() {
    method GetEnumerator (line 419) | IEnumerator IEnumerable.GetEnumerator() {

FILE: corlib/System/ArrayTypeMismatchException.cs
  class ArrayTypeMismatchException (line 24) | public class ArrayTypeMismatchException : SystemException {
    method ArrayTypeMismatchException (line 26) | public ArrayTypeMismatchException() : base("Source array type cannot b...
    method ArrayTypeMismatchException (line 27) | public ArrayTypeMismatchException(string msg) : base(msg) { }

FILE: corlib/System/Attribute.cs
  class Attribute (line 24) | public abstract class Attribute {

FILE: corlib/System/AttributeTargets.cs
  type AttributeTargets (line 25) | public enum AttributeTargets {

FILE: corlib/System/AttributeUsageAttribute.cs
  class AttributeUsageAttribute (line 27) | [AttributeUsage(AttributeTargets.Class)]
    method AttributeUsageAttribute (line 34) | public AttributeUsageAttribute(AttributeTargets validOn) {

FILE: corlib/System/BitConverter.cs
  class BitConverter (line 5) | public static class BitConverter {
    method AmILittleEndian (line 9) | private unsafe static bool AmILittleEndian() {
    method DoubleToInt64Bits (line 15) | public unsafe static long DoubleToInt64Bits(double value) {

FILE: corlib/System/Boolean.cs
  type Boolean (line 24) | public struct Boolean : IComparable, IComparable<bool>, IEquatable<bool> {
    method ToString (line 31) | public override string ToString() {
    method Equals (line 35) | public override bool Equals(object obj) {
    method GetHashCode (line 39) | public override int GetHashCode() {
    method Parse (line 43) | public static bool Parse(string value) {
    method CompareTo (line 59) | public int CompareTo(object obj) {
    method CompareTo (line 73) | public int CompareTo(bool x) {
    method Equals (line 81) | public bool Equals(bool x) {

FILE: corlib/System/Byte.cs
  type Byte (line 5) | public struct Byte : IFormattable, IComparable, IComparable<byte>, IEqua...
    method Equals (line 13) | public override bool Equals(object obj) {
    method GetHashCode (line 17) | public override int GetHashCode() {
    method ToString (line 23) | public override string ToString() {
    method ToString (line 27) | public string ToString(IFormatProvider formatProvider) {
    method ToString (line 31) | public string ToString(string format) {
    method ToString (line 35) | public string ToString(string format, IFormatProvider formatProvider) {
    method CompareTo (line 44) | public int CompareTo(object obj) {
    method CompareTo (line 58) | public int CompareTo(byte x) {
    method Equals (line 66) | public bool Equals(byte x) {

FILE: corlib/System/Char.cs
  type Char (line 30) | public struct Char : IComparable, IComparable<char>, IEquatable<char> {
    method ToString (line 44) | public override string ToString() {
    method Equals (line 48) | public override bool Equals(object obj) {
    method GetHashCode (line 52) | public override int GetHashCode() {
    method GetUnicodeCategory (line 56) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetUnicodeCategory (line 59) | public static UnicodeCategory GetUnicodeCategory(string str, int index) {
    method IsWhiteSpace (line 69) | public static bool IsWhiteSpace(char c) {
    method IsWhiteSpace (line 79) | public static bool IsWhiteSpace(string str, int index) {
    method IsLetter (line 89) | public static bool IsLetter(char c) {
    method IsLetter (line 93) | public static bool IsLetter(string str, int index) {
    method IsDigit (line 103) | public static bool IsDigit(char c) {
    method IsDigit (line 107) | public static bool IsDigit(string str, int index) {
    method IsLower (line 117) | public static bool IsLower(char c) {
    method IsLower (line 121) | public static bool IsLower(string str, int index) {
    method IsUpper (line 131) | public static bool IsUpper(char c) {
    method IsUpper (line 135) | public static bool IsUpper(string str, int index) {
    method ToLowerInvariant (line 145) | [MethodImpl(MethodImplOptions.InternalCall)]
    method ToLower (line 148) | public static char ToLower(char c) {
    method ToLower (line 152) | public static char ToLower(char c, CultureInfo culture) {
    method ToUpperInvariant (line 164) | [MethodImpl(MethodImplOptions.InternalCall)]
    method ToUpper (line 167) | public static char ToUpper(char c) {
    method ToUpper (line 171) | public static char ToUpper(char c, CultureInfo culture) {
    method CompareTo (line 185) | public int CompareTo(object obj) {
    method CompareTo (line 199) | public int CompareTo(char x) {
    method Equals (line 207) | public bool Equals(char x) {

FILE: corlib/System/CharEnumerator.cs
  class CharEnumerator (line 7) | public sealed class CharEnumerator : ICloneable, IEnumerator, IEnumerato...
    method CharEnumerator (line 13) | internal CharEnumerator(string s) {
    method Clone (line 21) | public object Clone() {
    method MoveNext (line 35) | public bool MoveNext() {
    method Reset (line 40) | public void Reset() {
    method Dispose (line 61) | public void Dispose() {

FILE: corlib/System/Console.cs
  class Console (line 26) | public static class Console {
    method Write (line 39) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_ReadKey (line 42) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_KeyAvailable (line 45) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Write (line 50) | public static void Write(object value) {
    method Write (line 56) | public static void Write(char value) {
    method Write (line 60) | public static void Write(string format, params object[] args) {
    method Write (line 64) | public static void Write(string format, object obj1) {
    method Write (line 68) | public static void Write(string format, object obj1, object obj2) {
    method Write (line 72) | public static void Write(string format, object obj1, object obj2, obje...
    method Write (line 76) | public static void Write(string format, object obj1, object obj2, obje...
    method WriteLine (line 84) | public static void WriteLine(string value) {
    method WriteLine (line 89) | public static void WriteLine() {
    method WriteLine (line 93) | public static void WriteLine(bool value) {
    method WriteLine (line 97) | public static void WriteLine(sbyte value) {
    method WriteLine (line 101) | public static void WriteLine(byte value) {
    method WriteLine (line 105) | public static void WriteLine(int value) {
    method WriteLine (line 109) | public static void WriteLine(uint value) {
    method WriteLine (line 113) | public static void WriteLine(long value) {
    method WriteLine (line 117) | public static void WriteLine(ulong value) {
    method WriteLine (line 121) | public static void WriteLine(char value) {
    method WriteLine (line 125) | public static void WriteLine(float value) {
    method WriteLine (line 129) | public static void WriteLine(double value) {
    method WriteLine (line 133) | public static void WriteLine(object value) {
    method WriteLine (line 141) | public static void WriteLine(string format, params object[] args) {
    method WriteLine (line 145) | public static void WriteLine(string format, object obj1) {
    method WriteLine (line 149) | public static void WriteLine(string format, object obj1, object obj2) {
    method WriteLine (line 153) | public static void WriteLine(string format, object obj1, object obj2, ...
    method WriteLine (line 157) | public static void WriteLine(string format, object obj1, object obj2, ...
    method ReadKey (line 171) | public static ConsoleKeyInfo ReadKey() {
    method ReadKey (line 175) | public static ConsoleKeyInfo ReadKey(bool intercept) {

FILE: corlib/System/ConsoleKey.cs
  type ConsoleKey (line 4) | public enum ConsoleKey {

FILE: corlib/System/ConsoleKeyInfo.cs
  type ConsoleKeyInfo (line 24) | public struct ConsoleKeyInfo {
    method ConsoleKeyInfo (line 30) | public ConsoleKeyInfo(char keyChar, ConsoleKey key, bool shift, bool a...
    method ConsoleKeyInfo (line 37) | internal ConsoleKeyInfo(ConsoleKeyInfo other) {
    method SetKey (line 43) | internal void SetKey(ConsoleKey key) {
    method SetKeyChar (line 47) | internal void SetKeyChar(char keyChar) {
    method SetModifiers (line 51) | internal void SetModifiers(bool shift, bool alt, bool control) {
    method Equals (line 69) | public override bool Equals(object o) {
    method Equals (line 75) | public bool Equals(ConsoleKeyInfo o) {
    method GetHashCode (line 79) | public override int GetHashCode() {

FILE: corlib/System/ConsoleModifiers.cs
  type ConsoleModifiers (line 4) | [Flags]

FILE: corlib/System/DateTime.cs
  type DateTime (line 7) | public struct DateTime : IFormattable, IComparable, IComparable<DateTime...
    method InternalUtcNow (line 12) | [MethodImpl(MethodImplOptions.InternalCall)]
    method AbsoluteDays (line 21) | private static int AbsoluteDays(int year, int month, int day) {
    method DateTime (line 32) | public DateTime(long ticks) {
    method DateTime (line 37) | public DateTime(long ticks, DateTimeKind kind) {
    method DateTime (line 42) | public DateTime(int year, int month, int day)
    method DateTime (line 46) | public DateTime(int year, int month, int day, int hour, int minute, in...
    method DateTime (line 50) | public DateTime(int year, int month, int day, int hour, int minute, in...
    method DateTime (line 54) | public DateTime(int year, int month, int day, int hour, int minute, in...
    method DateTime (line 58) | public DateTime(int year, int month, int day, int hour, int minute, in...
    type Which (line 147) | private enum Which {
    method Add (line 154) | public DateTime Add(TimeSpan ts) {
    method Subtract (line 158) | public TimeSpan Subtract(DateTime dt) {
    method Subtract (line 162) | public DateTime Subtract(TimeSpan ts) {
    method AddDays (line 166) | public DateTime AddDays(double days) {
    method AddHours (line 170) | public DateTime AddHours(double hours) {
    method AddMilliseconds (line 174) | public DateTime AddMilliseconds(double ms) {
    method AddMinutes (line 178) | public DateTime AddMinutes(double mins) {
    method AddSeconds (line 182) | public DateTime AddSeconds(double seconds) {
    method AddTicks (line 186) | public DateTime AddTicks(long ticks) {
    method AddMonths (line 190) | public DateTime AddMonths(int months) {
    method AddYears (line 214) | public DateTime AddYears(int years) {
    method IsLeapYear (line 258) | public static bool IsLeapYear(int year) {
    method FromTicks (line 262) | private int FromTicks(Which what) {
    method DaysInMonth (line 311) | public static int DaysInMonth(int year, int month) {
    method Equals (line 319) | public override bool Equals(object obj) {
    method GetHashCode (line 326) | public override int GetHashCode() {
    method ToString (line 332) | public override string ToString() {
    method ToString (line 336) | public string ToString(IFormatProvider fp) {
    method ToString (line 340) | public string ToString(string format) {
    method ToString (line 344) | public string ToString(string format, IFormatProvider fp) {
    method ToString2 (line 361) | private string ToString2(string format, DateTimeFormatInfo dfi) {
    method CountRepeat (line 583) | private static int CountRepeat(string fmt, int p, char c) {
    method ZeroPad (line 592) | private static void ZeroPad(StringBuilder output, int digits, int len) {
    method ParseQuotedString (line 609) | private static int ParseQuotedString(string fmt, int pos, StringBuilde...
    method GetStandardPattern (line 636) | private static string GetStandardPattern(char format, DateTimeFormatIn...
    method CompareTo (line 715) | public int CompareTo(object obj) {
    method CompareTo (line 729) | public int CompareTo(DateTime x) {
    method Equals (line 737) | public bool Equals(DateTime x) {

FILE: corlib/System/DateTimeKind.cs
  type DateTimeKind (line 24) | public enum DateTimeKind {

FILE: corlib/System/DayOfWeek.cs
  type DayOfWeek (line 4) | public enum DayOfWeek {

FILE: corlib/System/Decimal.cs
  type Decimal (line 24) | public struct Decimal {
    method GetBits (line 34) | public static int[] GetBits(Decimal d) {

FILE: corlib/System/Delegate.cs
  class Delegate (line 4) | public abstract class Delegate {
    method Equals (line 12) | public override bool Equals(object obj) {
    method GetHashCode (line 20) | public override int GetHashCode() {
    method Combine (line 28) | public static Delegate Combine(Delegate a, Delegate b) {
    method CombineImpl (line 42) | protected virtual Delegate CombineImpl(Delegate d) {
    method Remove (line 46) | public static Delegate Remove(Delegate source, Delegate value) {
    method RemoveImpl (line 53) | protected virtual Delegate RemoveImpl(Delegate d) {

FILE: corlib/System/Double.cs
  type Double (line 25) | public struct Double : IFormattable, IComparable, IComparable<double>, I...
    method IsNaN (line 36) | public static bool IsNaN(double d) {
    method IsNegativeInfinity (line 42) | public static bool IsNegativeInfinity(double d) {
    method IsPositiveInfinity (line 46) | public static bool IsPositiveInfinity(double d) {
    method IsInfinity (line 50) | public static bool IsInfinity(double d) {
    method Equals (line 54) | public override bool Equals(object o) {
    method GetHashCode (line 64) | public override unsafe int GetHashCode() {
    method ToString (line 69) | public override string ToString() {
    method ToString (line 73) | public string ToString(IFormatProvider fp) {
    method ToString (line 77) | public string ToString(string format) {
    method ToString (line 81) | public string ToString(string format, IFormatProvider fp) {
    method CompareTo (line 88) | public int CompareTo(object obj) {
    method CompareTo (line 102) | public int CompareTo(double x) {
    method Equals (line 116) | public bool Equals(double x) {

FILE: corlib/System/Enum.cs
  class Enum (line 9) | public abstract class Enum : ValueType {
    method Internal_GetInfo (line 11) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetNames (line 16) | public static string[] GetNames(Type enumType) {
    type EnumInfo (line 27) | private struct EnumInfo {
      method GetInfo (line 31) | public static EnumInfo GetInfo(Type enumType) {
      method GetName (line 43) | public string GetName(int value) {
      method GetNames (line 66) | public string[] GetNames() {
    method Enum (line 76) | protected Enum() { }
    method Internal_GetValue (line 78) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetName (line 81) | public static string GetName(Type enumType, object value) {
    method Format (line 92) | public static string Format(Type enumType, object value, string format) {
    method ToString (line 107) | public override string ToString() {

FILE: corlib/System/Environment.cs
  class Environment (line 26) | public static class Environment {
    method GetOSVersionString (line 52) | [MethodImplAttribute(MethodImplOptions.InternalCall)]

FILE: corlib/System/Exception.cs
  class Exception (line 4) | public class Exception {
    method Exception (line 10) | public Exception() { }
    method Exception (line 12) | public Exception(string message) {
    method Exception (line 16) | public Exception(string message, Exception innerException) {
    method ToString (line 38) | public override string ToString() {

FILE: corlib/System/FlagsAttribute.cs
  class FlagsAttribute (line 25) | [AttributeUsage(AttributeTargets.Enum, Inherited=false)]

FILE: corlib/System/FormatException.cs
  class FormatException (line 4) | public class FormatException : SystemException {
    method FormatException (line 5) | public FormatException() : base("Invalid Format.") { }
    method FormatException (line 6) | public FormatException(string msg) : base(msg) { }

FILE: corlib/System/GC.cs
  class GC (line 25) | public static class GC {
    method Internal_CollectionCount (line 33) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Collect (line 36) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Collect (line 39) | public static void Collect(int generation) {
    method CollectionCount (line 46) | public static int CollectionCount(int generation) {
    method GetGeneration (line 56) | public static int GetGeneration(object obj) {
    method GetGeneration (line 63) | public static int GetGeneration(WeakReference wr) {
    method GetTotalMemory (line 70) | [MethodImpl(MethodImplOptions.InternalCall)]
    method SuppressFinalize (line 73) | [MethodImpl(MethodImplOptions.InternalCall)]

FILE: corlib/System/IAsyncResult.cs
  type IAsyncResult (line 6) | public interface IAsyncResult {

FILE: corlib/System/ICloneable.cs
  type ICloneable (line 24) | public interface ICloneable {
    method Clone (line 26) | object Clone();

FILE: corlib/System/IComparable.cs
  type IComparable (line 5) | public interface IComparable {
    method CompareTo (line 6) | int CompareTo(object obj);
    method CompareTo (line 10) | int CompareTo(T x);
  type IComparable (line 9) | public interface IComparable<T> {
    method CompareTo (line 6) | int CompareTo(object obj);
    method CompareTo (line 10) | int CompareTo(T x);

FILE: corlib/System/ICustomFormatter.cs
  type ICustomFormatter (line 24) | public interface ICustomFormatter {
    method Format (line 26) | string Format(string format, object arg, IFormatProvider formatProvider);

FILE: corlib/System/IDisposable.cs
  type IDisposable (line 4) | public interface IDisposable {
    method Dispose (line 5) | void Dispose();

FILE: corlib/System/IEquatable.cs
  type IEquatable (line 25) | public interface IEquatable<T> {
    method Equals (line 26) | bool Equals(T x);

FILE: corlib/System/IFormatProvider.cs
  type IFormatProvider (line 8) | public interface IFormatProvider {
    method GetFormat (line 9) | object GetFormat(Type formatType);

FILE: corlib/System/IFormattable.cs
  type IFormattable (line 24) | public interface IFormattable {
    method ToString (line 26) | string ToString(string format, IFormatProvider formatProvider);

FILE: corlib/System/IndexOutOfRangeException.cs
  class IndexOutOfRangeException (line 4) | public class IndexOutOfRangeException : SystemException {
    method IndexOutOfRangeException (line 6) | public IndexOutOfRangeException() : base("Array index is out of range....
    method IndexOutOfRangeException (line 8) | public IndexOutOfRangeException(string message) : base(message) { }
    method IndexOutOfRangeException (line 10) | public IndexOutOfRangeException(string message, Exception innerException)

FILE: corlib/System/Int16.cs
  type Int16 (line 25) | public struct Int16 : IFormattable, IComparable, IComparable<short>, IEq...
    method Equals (line 33) | public override bool Equals(object obj) {
    method GetHashCode (line 37) | public override int GetHashCode() {
    method ToString (line 41) | public override string ToString() {
    method ToString (line 45) | public string ToString(IFormatProvider formatProvider) {
    method ToString (line 49) | public string ToString(string format) {
    method ToString (line 53) | public string ToString(string format, IFormatProvider formatProvider) {
    method CompareTo (line 60) | public int CompareTo(object obj) {
    method CompareTo (line 74) | public int CompareTo(short x) {
    method Equals (line 82) | public bool Equals(short x) {

FILE: corlib/System/Int32.cs
  type Int32 (line 8) | public struct Int32 : IFormattable, IComparable, IComparable<int>,IEquat...
    method Equals (line 14) | public override bool Equals(object obj) {
    method GetHashCode (line 18) | public override int GetHashCode() {
    method Parse (line 24) | public static int Parse(string s) {
    method Parse (line 28) | public static int Parse(string s, NumberStyles style) {
    method Parse (line 32) | public static int Parse(string s, IFormatProvider formatProvider) {
    method Parse (line 36) | public static int Parse(string s, NumberStyles style, IFormatProvider ...
    method TryParse (line 45) | public static bool TryParse(string s, out int result) {
    method TryParse (line 49) | public static bool TryParse(string s, NumberStyles style,IFormatProvid...
    method ToString (line 58) | public override string ToString() {
    method ToString (line 62) | public string ToString(IFormatProvider formatProvider) {
    method ToString (line 66) | public string ToString(string format) {
    method ToString (line 70) | public string ToString(string format, IFormatProvider formatProvider) {
    method CompareTo (line 79) | public int CompareTo(object obj) {
    method CompareTo (line 93) | public int CompareTo(int x) {
    method Equals (line 101) | public bool Equals(int x) {

FILE: corlib/System/Int64.cs
  type Int64 (line 26) | public struct Int64 : IFormattable, IComparable, IComparable<long>, IEqu...
    method Equals (line 32) | public override bool Equals(object o) {
    method GetHashCode (line 36) | public override int GetHashCode() {
    method ToString (line 40) | public override string ToString() {
    method ToString (line 44) | public string ToString(IFormatProvider formatProvider) {
    method ToString (line 48) | public string ToString(string format) {
    method ToString (line 52) | public string ToString(string format, IFormatProvider formatProvider) {
    method CompareTo (line 59) | public int CompareTo(object obj) {
    method CompareTo (line 73) | public int CompareTo(long x) {
    method Equals (line 81) | public bool Equals(long x) {

FILE: corlib/System/IntPtr.cs
  type IntPtr (line 4) | public unsafe struct IntPtr {
    method IntPtr (line 10) | public IntPtr(int value) {
    method IntPtr (line 14) | public IntPtr(long value) {
    method IntPtr (line 18) | public IntPtr(void* value) {
    method ToInt32 (line 28) | public int ToInt32() {
    method ToInt64 (line 32) | public long ToInt64() {
    method Equals (line 36) | public override bool Equals(object obj) {
    method GetHashCode (line 40) | public override int GetHashCode() {
    method ToString (line 52) | public override string ToString() {

FILE: corlib/System/InvalidCastException.cs
  class InvalidCastException (line 22) | public class InvalidCastException : SystemException {
    method InvalidCastException (line 24) | public InvalidCastException() : base("An invalid cast has occured") { }

FILE: corlib/System/InvalidOperationException.cs
  class InvalidOperationException (line 2) | public class InvalidOperationException : SystemException {
    method InvalidOperationException (line 4) | public InvalidOperationException()
    method InvalidOperationException (line 7) | public InvalidOperationException(string message) : base(message) { }
    method InvalidOperationException (line 9) | public InvalidOperationException(string message, Exception innerExcept...

FILE: corlib/System/MarshalByRefObject.cs
  class MarshalByRefObject (line 24) | public abstract class MarshalByRefObject {

FILE: corlib/System/Math.cs
  class Math (line 29) | public static class Math {
    method Abs (line 36) | public static sbyte Abs(sbyte v) {
    method Abs (line 43) | public static short Abs(short v) {
    method Abs (line 50) | public static int Abs(int v) {
    method Abs (line 57) | public static long Abs(long v) {
    method Abs (line 64) | public static float Abs(float v) {
    method Abs (line 68) | public static double Abs(double v) {
    method Min (line 76) | public static sbyte Min(sbyte v1, sbyte v2) {
    method Min (line 80) | public static short Min(short v1, short v2) {
    method Min (line 84) | public static int Min(int v1, int v2) {
    method Min (line 88) | public static long Min(long v1, long v2) {
    method Min (line 92) | public static byte Min(byte v1, byte v2) {
    method Min (line 96) | public static ushort Min(ushort v1, ushort v2) {
    method Min (line 100) | public static uint Min(uint v1, uint v2) {
    method Min (line 104) | public static ulong Min(ulong v1, ulong v2) {
    method Min (line 108) | public static float Min(float v1, float v2) {
    method Min (line 115) | public static double Min(double v1, double v2) {
    method Max (line 126) | public static sbyte Max(sbyte v1, sbyte v2) {
    method Max (line 130) | public static short Max(short v1, short v2) {
    method Max (line 134) | public static int Max(int v1, int v2) {
    method Max (line 138) | public static long Max(long v1, long v2) {
    method Max (line 142) | public static byte Max(byte v1, byte v2) {
    method Max (line 146) | public static ushort Max(ushort v1, ushort v2) {
    method Max (line 150) | public static uint Max(uint v1, uint v2) {
    method Max (line 154) | public static ulong Max(ulong v1, ulong v2) {
    method Max (line 158) | public static float Max(float v1, float v2) {
    method Max (line 165) | public static double Max(double v1, double v2) {
    method Sign (line 176) | public static int Sign(sbyte v) {
    method Sign (line 180) | public static int Sign(short v) {
    method Sign (line 184) | public static int Sign(int v) {
    method Sign (line 188) | public static int Sign(long v) {
    method Sign (line 192) | public static int Sign(float v) {
    method Sign (line 199) | public static int Sign(double v) {
    method Sin (line 208) | [MethodImplAttribute(MethodImplOptions.InternalCall)]
    method Cos (line 211) | [MethodImplAttribute(MethodImplOptions.InternalCall)]
    method Tan (line 214) | [MethodImplAttribute(MethodImplOptions.InternalCall)]
    method Pow (line 217) | [MethodImplAttribute(MethodImplOptions.InternalCall)]
    method Sqrt (line 220) | [MethodImplAttribute(MethodImplOptions.InternalCall)]

FILE: corlib/System/MulticastDelegate.cs
  class MulticastDelegate (line 24) | public abstract class MulticastDelegate : Delegate {
    method CombineImpl (line 26) | protected override Delegate CombineImpl(Delegate follow) {
    method RemoveImpl (line 49) | protected override Delegate RemoveImpl(Delegate d) {

FILE: corlib/System/MulticastNotSupportedException.cs
  class MulticastNotSupportedException (line 26) | public class MulticastNotSupportedException : SystemException {
    method MulticastNotSupportedException (line 27) | public MulticastNotSupportedException()
    method MulticastNotSupportedException (line 31) | public MulticastNotSupportedException(string msg) : base(msg) { }

FILE: corlib/System/NotImplementedException.cs
  class NotImplementedException (line 24) | public class NotImplementedException : SystemException {
    method NotImplementedException (line 25) | public NotImplementedException() : base("The requested feature is not ...
    method NotImplementedException (line 27) | public NotImplementedException(string message) : base(message) { }
    method NotImplementedException (line 29) | public NotImplementedException(string message, Exception inner) : base...

FILE: corlib/System/NotSupportedException.cs
  class NotSupportedException (line 24) | public class NotSupportedException : SystemException {
    method NotSupportedException (line 26) | public NotSupportedException() : base("Operation is not supported.") { }
    method NotSupportedException (line 28) | public NotSupportedException(string message) : base(message) { }
    method NotSupportedException (line 30) | public NotSupportedException(string message, Exception innerException)...

FILE: corlib/System/NullReferenceException.cs
  class NullReferenceException (line 24) | public class NullReferenceException : SystemException {
    method NullReferenceException (line 26) | public NullReferenceException(string msg) : base(msg) { }
    method NullReferenceException (line 28) | public NullReferenceException()

FILE: corlib/System/Nullable.cs
  class Nullable (line 25) | public static class Nullable {
    method Compare (line 26) | public static int Compare<T>(Nullable<T> left, Nullable<T> right) wher...
    method Equals (line 43) | public static bool Equals<T>(Nullable<T> value1, Nullable<T> value2) w...
    method GetUnderlyingType (line 47) | public static Type GetUnderlyingType(Type nullableType) {
    method Nullable (line 65) | public Nullable(T value) {
    method GetValueOrDefault (line 85) | public T GetValueOrDefault() {
    method GetValueOrDefault (line 89) | public T GetValueOrDefault(T def) {
    method Equals (line 93) | public override bool Equals(object obj) {
    method GetHashCode (line 109) | public override int GetHashCode() {
    method ToString (line 117) | public override string ToString() {
  type Nullable (line 59) | public struct Nullable<T> where T : struct {
    method Compare (line 26) | public static int Compare<T>(Nullable<T> left, Nullable<T> right) wher...
    method Equals (line 43) | public static bool Equals<T>(Nullable<T> value1, Nullable<T> value2) w...
    method GetUnderlyingType (line 47) | public static Type GetUnderlyingType(Type nullableType) {
    method Nullable (line 65) | public Nullable(T value) {
    method GetValueOrDefault (line 85) | public T GetValueOrDefault() {
    method GetValueOrDefault (line 89) | public T GetValueOrDefault(T def) {
    method Equals (line 93) | public override bool Equals(object obj) {
    method GetHashCode (line 109) | public override int GetHashCode() {
    method ToString (line 117) | public override string ToString() {

FILE: corlib/System/NumberFormatter.cs
  class NumberFormatter (line 8) | class NumberFormatter {
    method NumberToString (line 13) | public static string NumberToString(string format, sbyte value, Number...
    method NumberToString (line 22) | public static string NumberToString(string format, byte value, NumberF...
    method NumberToString (line 31) | public static string NumberToString(string format, ushort value, Numbe...
    method NumberToString (line 40) | public static string NumberToString(string format, short value, Number...
    method NumberToString (line 49) | public static string NumberToString(string format, uint value, NumberF...
    method NumberToString (line 58) | public static string NumberToString(string format, int value, NumberFo...
    method NumberToString (line 67) | public static string NumberToString(string format, ulong value, Number...
    method NumberToString (line 76) | public static string NumberToString(string format, long value, NumberF...
    method NumberToString (line 85) | public static string NumberToString(string format, float value, Number...
    method NumberToString (line 93) | public static string NumberToString(string format, double value, Numbe...
    method NumberToString (line 101) | public static string NumberToString(string format, decimal value, Numb...
    method NumberToString (line 109) | public static string NumberToString(string format, NumberStore ns, Num...
    method ParseBasicFormat (line 199) | private static void ParseBasicFormat(string format, out char specifier...
    method ZeroTrimEnd (line 241) | private static void ZeroTrimEnd(StringBuilder sb) {
    method ZeroTrimEnd (line 244) | private static void ZeroTrimEnd(StringBuilder sb, bool canEmpty) {
    method FormatCurrency (line 258) | internal static string FormatCurrency(NumberStore ns, int precision, N...
    method FormatDecimal (line 395) | internal static string FormatDecimal(NumberStore ns, int precision, Nu...
    method FormatFixedPoint (line 412) | internal static string FormatFixedPoint(NumberStore ns, int precision,...
    method FormatGeneral (line 431) | internal static string FormatGeneral(NumberStore ns) {
    method FormatGeneral (line 434) | internal static string FormatGeneral(NumberStore ns, IFormatProvider p...
    method FormatGeneral (line 437) | private static string FormatGeneral(NumberStore ns, int precision, Num...
    method FormatNumber (line 512) | internal static string FormatNumber(NumberStore ns, int precision, Num...
    method FormatPercent (line 558) | internal static string FormatPercent(NumberStore ns, int precision, Nu...
    method FormatHexadecimal (line 616) | static string FormatHexadecimal(ulong value, bool positive, int byteSi...
    method FormatExponential (line 662) | internal static string FormatExponential(NumberStore ns, int precision...
    method FormatCustom (line 753) | internal static string FormatCustom(string format, NumberStore ns, Num...
    class CustomInfo (line 869) | private class CustomInfo {
      method GetActiveSection (line 885) | public static void GetActiveSection(string format, ref bool positive...
      method Parse (line 979) | public static CustomInfo Parse(string format, int offset, int length...
      method Format (line 1107) | public string Format(string format, int offset, int length, NumberFo...
    type NumberStore (line 1268) | internal struct NumberStore {
      method NumberStore (line 1316) | public NumberStore(long value) {
      method NumberStore (line 1380) | public NumberStore(int value) {
      method NumberStore (line 1426) | public NumberStore(short value)
      method NumberStore (line 1431) | public NumberStore(sbyte value)
      method NumberStore (line 1437) | public NumberStore(ulong value) {
      method NumberStore (line 1501) | public NumberStore(uint value) {
      method NumberStore (line 1545) | public NumberStore(ushort value)
      method NumberStore (line 1550) | public NumberStore(byte value)
      method NumberStore (line 1556) | public NumberStore(double value) {
      method NumberStore (line 1644) | public NumberStore(float value) {
      method MultiplyBy (line 1732) | internal bool MultiplyBy(ref byte[] buffer, ref int length, int amou...
      method NumberStore (line 1761) | public NumberStore(decimal value) {
      method DivideDecimal (line 1791) | static int DivideDecimal(ref ulong lo, ref ulong hi, uint factor, re...
      method RoundPos (line 1880) | public bool RoundPos(int pos) {
      method RoundPos (line 1883) | public bool RoundPos(int pos, bool carryFive) {
      method RoundDecimal (line 1921) | public bool RoundDecimal(int decimals) {
      method RoundDecimal (line 1924) | public bool RoundDecimal(int decimals, bool carryFive, bool countZer...
      method RoundHelper (line 1962) | void RoundHelper(int index, bool carryFive, ref bool carry) {
      method RoundEffectiveDigits (line 1975) | public bool RoundEffectiveDigits(int digits) {
      method RoundEffectiveDigits (line 1978) | public bool RoundEffectiveDigits(int digits, bool carryFive, bool ca...
      method CarryPropagation (line 2012) | private void CarryPropagation(ref int digits, bool carryFive, ref bo...
      method TrimDecimalEndZeros (line 2032) | public void TrimDecimalEndZeros() {
      method TrimIntegerStartZeros (line 2046) | public void TrimIntegerStartZeros() {
      method AppendIntegerString (line 2076) | public void AppendIntegerString(int minLength, StringBuilder cb) {
      method AppendIntegerStringWithGroupSeparator (line 2096) | public void AppendIntegerStringWithGroupSeparator(StringBuilder sb, ...
      method GetDecimalString (line 2159) | public string GetDecimalString(int precision) {
      method AppendDecimalString (line 2177) | public void AppendDecimalString(int precision, StringBuilder cb) {
      method CheckZeroOnlyInteger (line 2198) | public bool CheckZeroOnlyInteger() {
      method Multiply10 (line 2205) | public void Multiply10(int count) {
      method Divide10 (line 2213) | public void Divide10(int count) {
      method ToString (line 2219) | public override string ToString() {
      method GetChar (line 2228) | public char GetChar(int pos) {
      method GetDigitByte (line 2237) | public byte GetDigitByte(int pos) {
      method GetClone (line 2246) | public NumberStore GetClone() {
      method GetDecimalPointPos (line 2259) | public int GetDecimalPointPos() {
      method SetDecimalPointPos (line 2262) | public void SetDecimalPointPos(int dp) {
      method IsZeroOnly (line 2270) | public static bool IsZeroOnly(StringBuilder sb) {
      method AppendIntegerStringFromUInt32 (line 2276) | public static void AppendIntegerStringFromUInt32(StringBuilder sb, u...

FILE: corlib/System/Object.cs
  class Object (line 26) | public class Object {
    method Object (line 28) | public Object() {
    method GetType (line 34) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Equals (line 37) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetHashCode (line 40) | [MethodImpl(MethodImplOptions.InternalCall)]
    method ToString (line 43) | public virtual string ToString() {
    method Equals (line 47) | public static bool Equals(object a, object b) {
    method ReferenceEquals (line 57) | public static bool ReferenceEquals(object a, object b) {
    method Clone (line 61) | [MethodImpl(MethodImplOptions.InternalCall)]

FILE: corlib/System/ObjectDisposedException.cs
  class ObjectDisposedException (line 24) | public class ObjectDisposedException : InvalidOperationException {
    method ObjectDisposedException (line 28) | public ObjectDisposedException(string objectName)
    method ObjectDisposedException (line 33) | public ObjectDisposedException(string objectName, string msg)

FILE: corlib/System/OperatingSystem.cs
  class OperatingSystem (line 24) | public sealed class OperatingSystem : ICloneable {
    method OperatingSystem (line 29) | public OperatingSystem(PlatformID platformID, Version version) {
    method ToString (line 61) | public override string ToString() {
    method Clone (line 90) | public object Clone() {

FILE: corlib/System/OverflowException.cs
  class OverflowException (line 24) | public class OverflowException : ArithmeticException {
    method OverflowException (line 26) | public OverflowException() : base("Number overflow.") { }
    method OverflowException (line 27) | public OverflowException(string msg) : base(msg) { }

FILE: corlib/System/ParamArrayAttribute.cs
  class ParamArrayAttribute (line 26) | public sealed class ParamArrayAttribute : Attribute {
    method ParamArrayAttribute (line 28) | public ParamArrayAttribute() {

FILE: corlib/System/ParseHelper.cs
  class ParseHelper (line 6) | internal static class ParseHelper {
    method CheckStyle (line 8) | private static bool CheckStyle(NumberStyles style, bool tryParse, ref ...
    method JumpOverWhite (line 31) | private static bool JumpOverWhite(ref int pos, string s, bool reportEr...
    method FindSign (line 45) | private static void FindSign(ref int pos, string s, NumberFormatInfo nfi,
    method FindCurrency (line 60) | private static void FindCurrency(ref int pos, string s, NumberFormatIn...
    method FindExponent (line 68) | private static bool FindExponent(ref int pos, string s) {
    method FindOther (line 93) | private static bool FindOther(ref int pos, string s, string other) {
    method ValidDigit (line 101) | private static bool ValidDigit(char e, bool allowHex) {
    method GetFormatException (line 108) | private static Exception GetFormatException() {
    method Parse (line 112) | internal static bool Parse(string s, NumberStyles style, IFormatProvid...

FILE: corlib/System/PlatformID.cs
  type PlatformID (line 24) | public enum PlatformID {

FILE: corlib/System/Random.cs
  class Random (line 27) | public class Random {
    method Random (line 36) | public Random() : this(Environment.TickCount) { }
    method Random (line 38) | public Random(int seed) {
    method Next (line 65) | public int Next() {
    method Next (line 69) | public int Next(int maxValue) {
    method Next (line 76) | public int Next(int minValue, int maxValue) {

FILE: corlib/System/RuntimeFieldHandle.cs
  type RuntimeFieldHandle (line 24) | public struct RuntimeFieldHandle {
    method RuntimeFieldHandle (line 28) | internal RuntimeFieldHandle(IntPtr v) {

FILE: corlib/System/RuntimeMethodHandle.cs
  type RuntimeMethodHandle (line 24) | public struct RuntimeMethodHandle {
    method RuntimeMethodHandle (line 28) | internal RuntimeMethodHandle(IntPtr v) {

FILE: corlib/System/RuntimeType.cs
  class RuntimeType (line 29) | class RuntimeType : Type {
    method GetNestingParentType (line 31) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Internal_GetGenericTypeDefinition (line 34) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetGenericTypeDefinition (line 86) | public override Type GetGenericTypeDefinition() {
    method GetGenericArguments (line 93) | [MethodImpl(MethodImplOptions.InternalCall)]

FILE: corlib/System/RuntimeTypeHandle.cs
  type RuntimeTypeHandle (line 24) | public struct RuntimeTypeHandle {
    method RuntimeTypeHandle (line 28) | internal RuntimeTypeHandle(IntPtr v) {

FILE: corlib/System/SByte.cs
  type SByte (line 25) | public struct SByte : IFormattable, IComparable, IComparable<sbyte>, IEq...
    method Equals (line 33) | public override bool Equals(object obj) {
    method GetHashCode (line 37) | public override int GetHashCode() {
    method ToString (line 43) | public override string ToString() {
    method ToString (line 47) | public string ToString(IFormatProvider formatProvider) {
    method ToString (line 51) | public string ToString(string format) {
    method ToString (line 55) | public string ToString(string format, IFormatProvider formatProvider) {
    method CompareTo (line 64) | public int CompareTo(object obj) {
    method CompareTo (line 78) | public int CompareTo(sbyte x) {
    method Equals (line 86) | public bool Equals(sbyte x) {

FILE: corlib/System/Single.cs
  type Single (line 25) | public struct Single : IFormattable, IComparable, IComparable<float>, IE...
    method IsNaN (line 36) | public static bool IsNaN(float f) {
    method IsNegativeInfinity (line 42) | public static bool IsNegativeInfinity(float f) {
    method IsPositiveInfinity (line 46) | public static bool IsPositiveInfinity(float f) {
    method IsInfinity (line 50) | public static bool IsInfinity(float f) {
    method Equals (line 54) | public override bool Equals(object o) {
    method GetHashCode (line 64) | public unsafe override int GetHashCode() {
    method ToString (line 69) | public override string ToString() {
    method ToString (line 73) | public string ToString(IFormatProvider provider) {
    method ToString (line 77) | public string ToString(string format) {
    method ToString (line 81) | public string ToString(string format, IFormatProvider provider) {
    method CompareTo (line 88) | public int CompareTo(object obj) {
    method CompareTo (line 102) | public int CompareTo(float x) {
    method Equals (line 116) | public bool Equals(float x) {

FILE: corlib/System/String.cs
  class String (line 30) | public class String : ICloneable, IEnumerable, IEnumerable<char>,
    method IsNullOrEmpty (line 35) | public static bool IsNullOrEmpty(string value) {
    method String (line 42) | [MethodImpl(MethodImplOptions.InternalCall)]
    method String (line 45) | [MethodImpl(MethodImplOptions.InternalCall)]
    method String (line 48) | [MethodImpl(MethodImplOptions.InternalCall)]
    method String (line 53) | [MethodImpl(MethodImplOptions.InternalCall)]
    method InternalConcat (line 56) | [MethodImpl(MethodImplOptions.InternalCall)]
    method InternalReplace (line 59) | [MethodImpl(MethodImplOptions.InternalCall)]
    method InternalTrim (line 63) | [MethodImpl(MethodImplOptions.InternalCall)]
    method InternalIndexOf (line 66) | [MethodImpl(MethodImplOptions.InternalCall)]
    method InternalIndexOfAny (line 69) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Join (line 88) | public static string Join(string separator, string[] value) {
    method Join (line 92) | public static string Join(string separator, string[] value, int startI...
    method Split (line 101) | public string[] Split(params char[] separator) {
    method Split (line 105) | public string[] Split(char[] separator, int count) {
    method StartsWith (line 132) | public bool StartsWith(string str) {
    method EndsWith (line 136) | public bool EndsWith(string str) {
    method Concat (line 144) | public static string Concat(string str0, string str1) {
    method Concat (line 154) | public static string Concat(string str0, string str1, string str2) {
    method Concat (line 158) | public static string Concat(string str0, string str1, string str2, str...
    method Concat (line 162) | public static string Concat(params string[] values) {
    method Concat (line 173) | public static string Concat(object obj0) {
    method Concat (line 177) | public static string Concat(object obj0, object obj1) {
    method Concat (line 189) | public static string Concat(object obj0, object obj1, object obj2) {
    method Concat (line 193) | public static string Concat(object obj0, object obj1, object obj2, obj...
    method Concat (line 197) | public static string Concat(params object[] objs) {
    method Trim (line 212) | public string Trim(params char[] trimChars) {
    method Trim (line 219) | public string Trim() {
    method TrimStart (line 223) | public string TrimStart(params char[] trimChars) {
    method TrimEnd (line 230) | public string TrimEnd(params char[] trimChars) {
    method Substring (line 241) | public string Substring(int startIndex) {
    method Substring (line 249) | public string Substring(int startIndex, int length) {
    method Format (line 261) | public static string Format(string format, object obj0) {
    method Format (line 265) | public static string Format(string format, object obj0, object obj1) {
    method Format (line 269) | public static string Format(string format, object obj0, object obj1, o...
    method Format (line 273) | public static string Format(string format, params object[] args) {
    method Format (line 277) | public static string Format(IFormatProvider provider, string format, p...
    method Replace (line 287) | public string Replace(char oldChar, char newChar) {
    method Replace (line 292) | public string Replace(string oldValue, string newValue) {
    method Remove (line 308) | public string Remove(int startIndex) {
    method Remove (line 315) | public string Remove(int startIndex, int count) {
    method Compare (line 327) | public static int Compare(string strA, string strB) {
    method Compare (line 331) | public static int Compare(string strA, int indexA, string strB, int in...
    method CompareOrdinal (line 335) | public static int CompareOrdinal(string strA, string strB) {
    method IndexOf (line 358) | public int IndexOf(string value) {
    method IndexOf (line 362) | public int IndexOf(string value, int startIndex) {
    method IndexOf (line 366) | public int IndexOf(string value, int startIndex, int count) {
    method IndexOf (line 396) | public int IndexOf(char value) {
    method IndexOf (line 400) | public int IndexOf(char value, int startIndex) {
    method IndexOf (line 404) | public int IndexOf(char value, int startIndex, int count) {
    method LastIndexOf (line 408) | public int LastIndexOf(char value) {
    method LastIndexOf (line 412) | public int LastIndexOf(char value, int startIndex) {
    method LastIndexOf (line 416) | public int LastIndexOf(char value, int startIndex, int count) {
    method IndexOf (line 420) | private int IndexOf(char value, int startIndex, int count, bool forwar...
    method IndexOfAny (line 427) | public int IndexOfAny(char[] anyOf) {
    method IndexOfAny (line 431) | public int IndexOfAny(char[] anyOf, int startIndex) {
    method IndexOfAny (line 435) | public int IndexOfAny(char[] anyOf, int startIndex, int count) {
    method LastIndexOfAny (line 439) | public int LastIndexOfAny(char[] anyOf) {
    method LastIndexOfAny (line 443) | public int LastIndexOfAny(char[] anyOf, int startIndex) {
    method LastIndexOfAny (line 447) | public int LastIndexOfAny(char[] anyOf, int startIndex, int count) {
    method IndexOfAny (line 451) | private int IndexOfAny(char[] anyOf, int startIndex, int count, bool f...
    method ToLower (line 474) | public string ToLower() {
    method ToLower (line 478) | public string ToLower(CultureInfo culture) {
    method ToLowerInvariant (line 488) | public string ToLowerInvariant() {
    method ToUpper (line 497) | public string ToUpper() {
    method ToUpper (line 501) | public string ToUpper(CultureInfo culture) {
    method ToUpperInvariant (line 511) | public string ToUpperInvariant() {
    method ToString (line 524) | public override string ToString() {
    method Equals (line 528) | public override bool Equals(object obj) {
    method Equals (line 540) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetHashCode (line 543) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Clone (line 550) | public object Clone() {
    method CompareTo (line 558) | public int CompareTo(object value) {
    method CompareTo (line 568) | public int CompareTo(string value) {
    method Equals (line 579) | public bool Equals(string other) {
    method GetEnumerator (line 587) | public IEnumerator GetEnumerator() {
    method GetEnumerator (line 591) | IEnumerator<char> IEnumerable<char>.GetEnumerator() {

FILE: corlib/System/StringComparison.cs
  type StringComparison (line 24) | public enum StringComparison {

FILE: corlib/System/StringHelper.cs
  class StringHelper (line 10) | internal static class StringHelper {
    method ParseDecimal (line 12) | private static int ParseDecimal(string str, ref int ptr) {
    method ParseFormatSpecifier (line 30) | private static void ParseFormatSpecifier(string str, ref int ptr, out ...
    method FormatHelper (line 85) | internal static void FormatHelper(StringBuilder result, IFormatProvide...

FILE: corlib/System/SystemException.cs
  class SystemException (line 24) | public class SystemException : Exception {
    method SystemException (line 26) | public SystemException() : base("A SystemException has occured.") { }
    method SystemException (line 28) | public SystemException(string message) : base(message) { }
    method SystemException (line 30) | public SystemException(string message, Exception innerException) : bas...

FILE: corlib/System/TimeSpan.cs
  type TimeSpan (line 25) | public struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<...
    method TimeSpan (line 39) | public TimeSpan(long ticks) {
    method TimeSpan (line 43) | public TimeSpan(int hours, int minutes, int seconds) {
    method TimeSpan (line 47) | public TimeSpan(int days, int hours, int minutes, int seconds) {
    method TimeSpan (line 51) | public TimeSpan(int days, int hours, int minutes, int seconds, int mil...
    method CalcTicks (line 55) | private static long CalcTicks(int days, int hours, int minutes, int se...
    method Add (line 129) | public TimeSpan Add(TimeSpan ts) {
    method Subtract (line 133) | public TimeSpan Subtract(TimeSpan ts) {
    method Negate (line 137) | public TimeSpan Negate(TimeSpan ts) {
    method Duration (line 141) | public TimeSpan Duration() {
    method Compare (line 145) | public static int Compare(TimeSpan t1, TimeSpan t2) {
    method CompareTo (line 157) | public int CompareTo(object obj) {
    method CompareTo (line 171) | public int CompareTo(TimeSpan x) {
    method Equals (line 179) | public bool Equals(TimeSpan x) {
    method GetHashCode (line 185) | public override int GetHashCode() {
    method Equals (line 189) | public override bool Equals(object obj) {
    method Equals (line 196) | public static bool Equals(TimeSpan t1, TimeSpan t2) {
    method ToString (line 200) | public override string ToString() {

FILE: corlib/System/Type.cs
  class Type (line 27) | public abstract class Type : MemberInfo {
    method GetTypeFromHandle (line 31) | [MethodImpl(MethodImplOptions.InternalCall)]
    method GetGenericTypeDefinition (line 54) | public abstract Type GetGenericTypeDefinition();
    method GetGenericArguments (line 56) | public abstract Type[] GetGenericArguments();
    method ToString (line 63) | public override string ToString() {

FILE: corlib/System/UInt16.cs
  type UInt16 (line 25) | public struct UInt16:IFormattable,IComparable,IComparable<ushort>,IEquat...
    method Equals (line 33) | public override bool Equals(object obj) {
    method GetHashCode (line 37) | public override int GetHashCode() {
    method ToString (line 43) | public override string ToString() {
    method ToString (line 47) | public string ToString(IFormatProvider formatProvider) {
    method ToString (line 51) | public string ToString(string format) {
    method ToString (line 55) | public string ToString(string format, IFormatProvider formatProvider) {
    method CompareTo (line 64) | public int CompareTo(object obj) {
    method CompareTo (line 78) | public int CompareTo(ushort x) {
    method Equals (line 86) | public bool Equals(ushort x) {

FILE: corlib/System/UInt32.cs
  type UInt32 (line 26) | public struct UInt32 : IFormattable, IComparable, IComparable<uint>, IEq...
    method Equals (line 34) | public override bool Equals(object obj) {
    method GetHashCode (line 38) | public override int GetHashCode() {
    method ToString (line 44) | public override string ToString() {
    method ToString (line 48) | public string ToString(IFormatProvider formatProvider) {
    method ToString (line 52) | public string ToString(string format) {
    method ToString (line 56) | public string ToString(string format, IFormatProvider formatProvider) {
    method CompareTo (line 65) | public int CompareTo(object obj) {
    method CompareTo (line 79) | public int CompareTo(uint x) {
    method Equals (line 87) | public bool Equals(uint x) {

FILE: corlib/System/UInt64.cs
  type UInt64 (line 25) | public struct UInt64 : IFormattable, IComparable, IComparable<ulong>, IE...
    method Equals (line 34) | public override bool Equals(object obj) {
    method GetHashCode (line 38) | public override int GetHashCode() {
    method ToString (line 44) | public override string ToString() {
    method ToString (line 48) | public string ToString(IFormatProvider formatProvider) {
    method ToString (line 52) | public string ToString(string format) {
    method ToString (line 56) | public string ToString(string format, IFormatProvider formatProvider) {
    method CompareTo (line 65) | public int CompareTo(object obj) {
    method CompareTo (line 79) | public int CompareTo(ulong x) {
    method Equals (line 87) | public bool Equals(ulong x) {

FILE: corlib/System/UIntPtr.cs
  type UIntPtr (line 24) | public unsafe struct UIntPtr {
    method UIntPtr (line 28) | public UIntPtr(uint value) {
    method UIntPtr (line 32) | public UIntPtr(ulong value) {
    method UIntPtr (line 36) | public UIntPtr(void* value) {
    method ToUInt32 (line 46) | public uint ToUInt32() {
    method ToUInt64 (line 50) | public ulong ToUInt64() {
    method Equals (line 54) | public override bool Equals(object obj) {
    method GetHashCode (line 58) | public override int GetHashCode() {
    method ToString (line 70) | public override string ToString() {

FILE: corlib/System/ValueType.cs
  class ValueType (line 26) | public abstract class ValueType {
    method ValueType (line 28) | protected ValueType() {
    method GetFields (line 31) | [MethodImpl(MethodImplOptions.InternalCall)]
    method Equals (line 34) | public override bool Equals(object obj) {
    method GetHashCode (line 50) | public override int GetHashCode() {

FILE: corlib/System/Version.cs
  class Version (line 25) | public sealed class Version : ICloneable, IComparable, IComparable<Versi...
    method CheckedSet (line 30) | private void CheckedSet(int defined, int major, int minor, int build, ...
    method Version (line 65) | public Version() {
    method Version (line 69) | public Version(string version) {
    method Version (line 101) | public Version(int major, int minor) {
    method Version (line 105) | public Version(int major, int minor, int build) {
    method Version (line 109) | public Version(int major, int minor, int build, int revision) {
    method Clone (line 149) | public object Clone() {
    method CompareTo (line 159) | public int CompareTo(object version) {
    method Equals (line 169) | public override bool Equals(object obj) {
    method CompareTo (line 173) | public int CompareTo(Version v) {
    method Equals (line 200) | public bool Equals(Version x) {
    method GetHashCode (line 208) | public override int GetHashCode() {
    method ToString (line 216) | public override string ToString() {
    method ToString (line 237) | public string ToString(int fields) {
    method CreateFromString (line 290) | internal static Version CreateFromString(string info) {

FILE: corlib/System/Void.cs
  type Void (line 24) | public struct Void {

FILE: corlib/System/WeakReference.cs
  class WeakReference (line 25) | public class WeakReference {
    method WeakReference (line 34) | public WeakReference(object target) : this(target, false) { }
    method WeakReference (line 36) | public WeakReference(object target, bool trackResurrection) {

FILE: dna/CLIFile.c
  type tFilesLoaded (line 37) | typedef struct tFilesLoaded_ tFilesLoaded;
  type tFilesLoaded_ (line 38) | struct tFilesLoaded_ {
  function tMetaData (line 46) | tMetaData* CLIFile_GetMetaDataForAssembly(unsigned char *pAssemblyName) {
  function tCLIFile (line 107) | static tCLIFile* LoadPEFile(void *pData) {
  function tCLIFile (line 236) | tCLIFile* CLIFile_Load(char *pFileName) {
  function I32 (line 262) | I32 CLIFile_Execute(tCLIFile *pThis, int argc, char **argp) {
  function CLIFile_GetHeapRoots (line 285) | void CLIFile_GetHeapRoots(tHeapRoots *pHeapRoots) {

FILE: dna/CLIFile.h
  type tCLIFile (line 28) | typedef struct tCLIFile_ tCLIFile;
  type tCLIFile_ (line 29) | struct tCLIFile_ {

FILE: dna/Delegate.c
  type tDelegate (line 33) | typedef struct tDelegate_ tDelegate;
  type tDelegate_ (line 34) | struct tDelegate_ {
  function tMD_MethodDef (line 44) | tMD_MethodDef* Delegate_GetMethod(void *pThis_) {
  function tMD_MethodDef (line 50) | tMD_MethodDef* Delegate_GetMethodAndStore(void *pThis_, HEAP_PTR *pTarge...
  function tAsyncCall (line 60) | static tAsyncCall* ctor(PTR pThis_, PTR pParams, PTR pReturnValue) {
  function fnInternalCall (line 72) | fnInternalCall Map_Delegate(tMD_MethodDef *pMethod) {

FILE: dna/Finalizer.c
  function Finalizer_Init (line 29) | void Finalizer_Init() {
  function AddFinalizer (line 35) | void AddFinalizer(HEAP_PTR ptr) {
  function HEAP_PTR (line 43) | HEAP_PTR GetNextFinalizer() {

FILE: dna/Generics.c
  function Generic_GetHeapRoots (line 31) | void Generic_GetHeapRoots(tHeapRoots *pHeapRoots, tMD_TypeDef *pTypeDef) {
  function tMD_TypeDef (line 42) | tMD_TypeDef* Generics_GetGenericTypeFromSig
  function tMD_GenericParam (line 67) | static tMD_GenericParam* FindGenericParam(tMD_TypeDef *pCoreType, U32 ty...
  function tMD_TypeDef (line 81) | tMD_TypeDef* Generics_GetGenericTypeFromCoreType(tMD_TypeDef *pCoreType,...
  function tMD_MethodDef (line 162) | tMD_MethodDef* Generics_GetMethodDefFromSpec
  function tMD_MethodDef (line 191) | tMD_MethodDef* Generics_GetMethodDefFromCoreMethod

FILE: dna/Generics.h
  type tGenericInstance (line 24) | typedef struct tGenericInstance_ tGenericInstance;
  type tGenericMethodInstance (line 25) | typedef struct tGenericMethodInstance_ tGenericMethodInstance;
  type tGenericInstance_ (line 31) | struct tGenericInstance_ {
  type tGenericMethodInstance_ (line 44) | struct tGenericMethodInstance_ {

FILE: dna/Heap.c
  type tSync (line 41) | typedef struct tSync_ tSync;
  type tHeapEntry (line 42) | typedef struct tHeapEntry_ tHeapEntry;
  type tSync_ (line 44) | struct tSync_ {
  type tHeapEntry_ (line 58) | struct tHeapEntry_ {
  function Heap_Init (line 111) | void Heap_Init() {
  function U32 (line 126) | static U32 GetSize(tHeapEntry *pHeapEntry) {
  function tHeapEntry (line 140) | static tHeapEntry* TreeSkew(tHeapEntry *pRoot) {
  function tHeapEntry (line 150) | static tHeapEntry* TreeSplit(tHeapEntry *pRoot) {
  function tHeapEntry (line 161) | static tHeapEntry* TreeInsert(tHeapEntry *pRoot, tHeapEntry *pEntry) {
  function tHeapEntry (line 202) | static tHeapEntry* TreeRemove(tHeapEntry *pRoot, tHeapEntry *pDelete) {
  function GarbageCollect (line 253) | static void GarbageCollect() {
  function Heap_UnmarkFinalizer (line 419) | void Heap_UnmarkFinalizer(HEAP_PTR heapPtr) {
  function Heap_GarbageCollect (line 423) | void Heap_GarbageCollect() {
  function U32 (line 427) | U32 Heap_NumCollections() {
  function U32 (line 431) | U32 Heap_GetTotalMemory() {
  function Heap_SetRoots (line 435) | void Heap_SetRoots(tHeapRoots *pHeapRoots, void *pRoots, U32 sizeInBytes) {
  function HEAP_PTR (line 448) | HEAP_PTR Heap_Alloc(tMD_TypeDef *pTypeDef, U32 size) {
  function HEAP_PTR (line 481) | HEAP_PTR Heap_AllocType(tMD_TypeDef *pTypeDef) {
  function tMD_TypeDef (line 486) | tMD_TypeDef* Heap_GetType(HEAP_PTR heapEntry) {
  function Heap_MakeUndeletable (line 491) | void Heap_MakeUndeletable(HEAP_PTR heapEntry) {
  function Heap_MakeDeletable (line 496) | void Heap_MakeDeletable(HEAP_PTR heapEntry) {
  function HEAP_PTR (line 501) | HEAP_PTR Heap_Box(tMD_TypeDef *pType, PTR pMem) {
  function HEAP_PTR (line 510) | HEAP_PTR Heap_Clone(HEAP_PTR obj) {
  function tSync (line 521) | static tSync* EnsureSync(tHeapEntry *pHeapEntry) {
  function DeleteSync (line 530) | static void DeleteSync(tHeapEntry *pHeapEntry) {
  function U32 (line 541) | U32 Heap_SyncTryEnter(HEAP_PTR obj) {
  function U32 (line 561) | U32 Heap_SyncExit(HEAP_PTR obj) {
  function RemoveWeakRefTarget (line 576) | static void RemoveWeakRefTarget(tHeapEntry *pTarget, U32 removeLongRefs) {
  function HEAP_PTR (line 581) | HEAP_PTR Heap_SetWeakRefTarget(HEAP_PTR target, HEAP_PTR weakRef) {
  function HEAP_PTR (line 592) | HEAP_PTR* Heap_GetWeakRefAddress(HEAP_PTR target) {
  function Heap_RemovedWeakRefTarget (line 597) | void Heap_RemovedWeakRefTarget(HEAP_PTR target) {

FILE: dna/Heap.h
  type tHeapRoots (line 27) | typedef struct tHeapRoots_ tHeapRoots;
  type tHeapRootEntry (line 28) | typedef struct tHeapRootEntry_ tHeapRootEntry;
  type tHeapRootEntry_ (line 34) | struct tHeapRootEntry_ {
  type tHeapRoots_ (line 39) | struct tHeapRoots_ {

FILE: dna/InternalCall.c
  type tInternalCall (line 54) | typedef struct tInternalCall_ tInternalCall;
  type tInternalCall_ (line 55) | struct tInternalCall_ {
  function fnInternalCall (line 175) | fnInternalCall InternalCall_Map(tMD_MethodDef *pMethod) {

FILE: dna/JIT.c
  type tOps (line 49) | typedef struct tOps_ tOps;
  type tOps_ (line 50) | struct tOps_ {
  type tTypeStack (line 56) | typedef struct tTypeStack_ tTypeStack;
  type tTypeStack_ (line 57) | struct tTypeStack_ {
  function U32 (line 67) | static U32 Translate(U32 op, U32 getDynamic) {
  function PushStackType_ (line 109) | static void PushStackType_(tTypeStack *pTypeStack, tMD_TypeDef *pType) {
  function PushU32_ (line 125) | static void PushU32_(tOps *pOps, U32 v) {
  function U32 (line 134) | static U32 GetUnalignedU32(U8 *pCIL, U32 *pCILOfs) {
  function tTypeStack (line 143) | static tTypeStack* DeepCopyTypeStack(tTypeStack *pToCopy) {
  function RestoreTypeStack (line 158) | static void RestoreTypeStack(tTypeStack *pMainStack, tTypeStack *pCopyFr...
  function U32 (line 172) | static U32 FindOpCode(void *pAddr) {
  function U32 (line 184) | static U32 GenCombined(tOps *pOps, tOps *pIsDynamic, U32 startOfs, U32 c...
  function U32 (line 232) | static U32* JITit(tMD_MethodDef *pMethodDef, U8 *pCIL, U32 codeSize, tPa...
  function JIT_Prepare (line 1610) | void JIT_Prepare(tMD_MethodDef *pMethodDef, U32 genCombinedOpcodes) {

FILE: dna/JIT.h
  type tJITted (line 24) | typedef struct tJITted_ tJITted;
  type tExceptionHeader (line 25) | typedef struct tExceptionHeader_ tExceptionHeader;
  type tCombinedOpcodesMem (line 30) | typedef struct tCombinedOpcodesMem_ tCombinedOpcodesMem;
  type tCombinedOpcodesMem_ (line 31) | struct tCombinedOpcodesMem_ {
  type tJITted_ (line 37) | struct tJITted_ {
  type tExceptionHeader_ (line 63) | struct tExceptionHeader_ {
  type tJITCallNative (line 79) | typedef struct tJITCallNative_ tJITCallNative;
  type tJITCallNative_ (line 80) | struct tJITCallNative_ {
  type tJITCallPInvoke (line 90) | typedef struct tJITCallPInvoke_ tJITCallPInvoke;
  type tJITCallPInvoke_ (line 91) | struct tJITCallPInvoke_ {
  type tJITCodeInfo (line 101) | typedef struct tJITCodeInfo_ {

FILE: dna/JIT_Execute.c
  function CreateParameters (line 129) | static void CreateParameters(PTR pParamsLocals, tMD_MethodDef *pCallMeth...
  function tMethodState (line 144) | static tMethodState* RunFinalizer(tThread *pThread) {
  function rdtsc (line 166) | static __inline unsigned __int64 __cdecl rdtsc() {
  function U32 (line 226) | U32 JIT_Execute(tThread *pThread, U32 numInst) {
  function JIT_Execute_Init (line 3162) | void JIT_Execute_Init() {

FILE: dna/MetaData.c
  function MetaData_DecodeSigEntry (line 30) | unsigned int MetaData_DecodeSigEntry(SIG *pSig) {
  function IDX_TABLE (line 53) | IDX_TABLE MetaData_DecodeSigEntryToken(SIG *pSig) {
  function tMetaData (line 60) | tMetaData* MetaData() {
  function MetaData_LoadStrings (line 66) | void MetaData_LoadStrings(tMetaData *pThis, void *pStream, unsigned int ...
  function MetaData_DecodeHeapEntryLength (line 72) | unsigned int MetaData_DecodeHeapEntryLength(unsigned char **ppHeapEntry) {
  function MetaData_LoadBlobs (line 76) | void MetaData_LoadBlobs(tMetaData *pThis, void *pStream, unsigned int st...
  function MetaData_LoadUserStrings (line 83) | void MetaData_LoadUserStrings(tMetaData *pThis, void *pStream, unsigned ...
  function MetaData_LoadGUIDs (line 90) | void MetaData_LoadGUIDs(tMetaData *pThis, void *pStream, unsigned int st...
  function MetaData_Init (line 276) | void MetaData_Init() {
  function GetU16 (line 283) | static unsigned int GetU16(unsigned char *pSource) {
  function GetU32 (line 291) | static unsigned int GetU32(unsigned char *pSource) {
  function MetaData_LoadTables (line 486) | void MetaData_LoadTables(tMetaData *pThis, tRVA *pRVA, void *pStream, un...
  function PTR (line 547) | PTR MetaData_GetBlob(BLOB_ blob, U32 *pBlobLength) {
  function STRING2 (line 556) | STRING2 MetaData_GetUserString(tMetaData *pThis, IDX_USERSTRINGS index, ...
  function MetaData_GetConstant (line 577) | void MetaData_GetConstant(tMetaData *pThis, IDX_TABLE idx, PTR pResultMe...
  function MetaData_GetHeapRoots (line 602) | void MetaData_GetHeapRoots(tHeapRoots *pHeapRoots, tMetaData *pMetaData) {

FILE: dna/MetaData.h
  type tMetaDataStrings_ (line 29) | struct tMetaDataStrings_ {
  type tMetaDataStrings (line 33) | typedef struct tMetaDataStrings_ tMetaDataStrings;
  type tMetaDataBlobs_ (line 35) | struct tMetaDataBlobs_ {
  type tMetaDataBlobs (line 39) | typedef struct tMetaDataBlobs_ tMetaDataBlobs;
  type tMetaDataUserStrings_ (line 41) | struct tMetaDataUserStrings_ {
  type tMetaDataUserStrings (line 45) | typedef struct tMetaDataUserStrings_ tMetaDataUserStrings;
  type tMetaDataGUIDs_ (line 47) | struct tMetaDataGUIDs_ {
  type tMetaDataGUIDs (line 53) | typedef struct tMetaDataGUIDs_ tMetaDataGUIDs;
  type tTables (line 55) | typedef struct tTables_ tTables;
  type tTables_ (line 56) | struct tTables_ {
  type tMetaData (line 67) | typedef struct tMetaData_ tMetaData;
  type tMetaData_ (line 68) | struct tMetaData_ {
  type tParameter (line 123) | typedef struct tParameter_ tParameter;
  type tInterfaceMap (line 124) | typedef struct tInterfaceMap_ tInterfaceMap;
  type tParameter_ (line 128) | struct tParameter_ {
  type tInterfaceMap_ (line 137) | struct tInterfaceMap_ {

FILE: dna/MetaDataTables.h
  type tMD_MethodDef (line 25) | typedef struct tMD_MethodDef_ tMD_MethodDef;
  type tMD_FieldDef (line 26) | typedef struct tMD_FieldDef_ tMD_FieldDef;
  type tMD_TypeDef (line 27) | typedef struct tMD_TypeDef_ tMD_TypeDef;
  type tMD_MethodSpec (line 28) | typedef struct tMD_MethodSpec_ tMD_MethodSpec;
  type tMD_ImplMap (line 29) | typedef struct tMD_ImplMap_ tMD_ImplMap;
  type tMDC_ToFieldDef (line 38) | typedef struct tMDC_ToFieldDef_ tMDC_ToFieldDef;
  type tMDC_ToFieldDef_ (line 39) | struct tMDC_ToFieldDef_ {
  type tMDC_ToMethodDef (line 43) | typedef struct tMDC_ToMethodDef_ tMDC_ToMethodDef;
  type tMDC_ToMethodDef_ (line 44) | struct tMDC_ToMethodDef_ {
  type tMDC_ToTypeDef (line 48) | typedef struct tMDC_ToTypeDef_ tMDC_ToTypeDef;
  type tMDC_ToTypeDef_ (line 49) | struct tMDC_ToTypeDef_ {
  type tMD_Module_ (line 57) | struct tMD_Module_ {
  type tMD_Module (line 63) | typedef struct tMD_Module_ tMD_Module;
  type tMD_TypeRef_ (line 66) | struct tMD_TypeRef_ {
  type tMD_TypeRef (line 77) | typedef struct tMD_TypeRef_ tMD_TypeRef;
  type tMD_TypeDef_ (line 81) | struct tMD_TypeDef_ {
  type tMD_FieldDef_ (line 168) | struct tMD_FieldDef_ {
  type tMD_MethodDef_ (line 201) | struct tMD_MethodDef_ {
  type tMD_Param (line 270) | typedef struct tMD_Param_ tMD_Param;
  type tMD_Param_ (line 271) | struct tMD_Param_ {
  type tMD_InterfaceImpl (line 282) | typedef struct tMD_InterfaceImpl_ tMD_InterfaceImpl;
  type tMD_InterfaceImpl_ (line 283) | struct tMD_InterfaceImpl_ {
  type tMD_MemberRef_ (line 291) | struct tMD_MemberRef_ {
  type tMD_MemberRef (line 305) | typedef struct tMD_MemberRef_ tMD_MemberRef;
  type tMD_Constant_ (line 309) | struct tMD_Constant_ {
  type tMD_Constant (line 319) | typedef struct tMD_Constant_ tMD_Constant;
  type tMD_CustomAttribute_ (line 323) | struct tMD_CustomAttribute_ {
  type tMD_CustomAttribute (line 331) | typedef struct tMD_CustomAttribute_ tMD_CustomAttribute;
  type tMD_DeclSecurity (line 335) | typedef struct tMD_DeclSecurity_ tMD_DeclSecurity;
  type tMD_DeclSecurity_ (line 336) | struct tMD_DeclSecurity_ {
  type tMD_ClassLayout_ (line 348) | struct tMD_ClassLayout_ {
  type tMD_ClassLayout (line 358) | typedef struct tMD_ClassLayout_ tMD_ClassLayout;
  type tMD_StandAloneSig_ (line 361) | struct tMD_StandAloneSig_ {
  type tMD_StandAloneSig (line 364) | typedef struct tMD_StandAloneSig_ tMD_StandAloneSig;
  type tMD_EventMap_ (line 367) | struct tMD_EventMap_ {
  type tMD_EventMap (line 373) | typedef struct tMD_EventMap_ tMD_EventMap;
  type tMD_Event_ (line 376) | struct tMD_Event_ {
  type tMD_Event (line 386) | typedef struct tMD_Event_ tMD_Event;
  type tMD_PropertyMap_ (line 389) | struct tMD_PropertyMap_ {
  type tMD_PropertyMap (line 395) | typedef struct tMD_PropertyMap tMD_PropertyMap;
  type tMD_Property_ (line 398) | struct tMD_Property_ {
  type tMD_Property (line 408) | typedef struct tMD_Property_ tMD_Property;
  type tMD_MethodSemantics_ (line 412) | struct tMD_MethodSemantics_ {
  type tMD_MethodSemantics (line 422) | typedef struct tMD_MethodSemantics_ tMD_MethodSemantics;
  type tMD_MethodImpl (line 427) | typedef struct tMD_MethodImpl_ tMD_MethodImpl;
  type tMD_MethodImpl_ (line 428) | struct tMD_MethodImpl_ {
  type tMD_ModuleRef (line 438) | typedef struct tMD_ModuleRef_ tMD_ModuleRef;
  type tMD_ModuleRef_ (line 439) | struct tMD_ModuleRef_ {
  type tMD_TypeSpec (line 446) | typedef struct tMD_TypeSpec_ tMD_TypeSpec;
  type tMD_TypeSpec_ (line 447) | struct tMD_TypeSpec_ {
  type tMD_ImplMap_ (line 458) | struct tMD_ImplMap_ {
  type tMD_FieldRVA_ (line 472) | struct tMD_FieldRVA_ {
  type tMD_FieldRVA (line 478) | typedef struct tMD_FieldRVA_ tMD_FieldRVA;
  type tMD_Assembly_ (line 482) | struct tMD_Assembly_ {
  type tMD_Assembly (line 496) | typedef struct tMD_Assembly_ tMD_Assembly;
  type tMD_AssemblyRef_ (line 499) | struct tMD_AssemblyRef_ {
  type tMD_AssemblyRef (line 513) | typedef struct tMD_AssemblyRef_ tMD_AssemblyRef;
  type tMD_NestedClass (line 516) | typedef struct tMD_NestedClass_ tMD_NestedClass;
  type tMD_NestedClass_ (line 517) | struct tMD_NestedClass_ {
  type tMD_GenericParam (line 527) | typedef struct tMD_GenericParam_ tMD_GenericParam;
  type tMD_GenericParam_ (line 528) | struct tMD_GenericParam_ {
  type tMD_MethodSpec_ (line 541) | struct tMD_MethodSpec_ {
  type tMD_GenericParamConstraint (line 555) | typedef struct tMD_GenericParamConstraint_ tMD_GenericParamConstraint;
  type tMD_GenericParamConstraint_ (line 556) | struct tMD_GenericParamConstraint_ {

FILE: dna/MetaData_Fill.c
  function MetaData_Fill_FieldDef (line 29) | void MetaData_Fill_FieldDef(tMD_TypeDef *pParentType, tMD_FieldDef *pFie...
  function MetaData_Fill_MethodDef (line 82) | void MetaData_Fill_MethodDef(tMD_TypeDef *pParentType, tMD_MethodDef *pM...
  function tMD_MethodDef (line 146) | static tMD_MethodDef* FindVirtualOverriddenMethod(tMD_TypeDef *pTypeDef,...
  function MetaData_Fill_TypeDef_ (line 183) | void MetaData_Fill_TypeDef_(tMD_TypeDef *pTypeDef, tMD_TypeDef **ppClass...

FILE: dna/MetaData_Search.c
  function U32 (line 29) | U32 MetaData_CompareNameAndSig(STRING name, BLOB_ sigBlob, tMetaData *pS...
  function tMD_MethodDef (line 78) | static tMD_MethodDef* FindMethodInType(tMD_TypeDef *pTypeDef, STRING nam...
  function tMD_FieldDef (line 131) | static tMD_FieldDef* FindFieldInType(tMD_TypeDef *pTypeDef, STRING name) {
  function tMetaData (line 146) | tMetaData* MetaData_GetResolutionScopeMetaData(tMetaData *pMetaData, IDX...
  function tMD_TypeDef (line 170) | tMD_TypeDef* MetaData_GetTypeDefFromName(tMetaData *pMetaData, STRING na...
  function tMD_TypeDef (line 188) | tMD_TypeDef* MetaData_GetTypeDefFromFullName(STRING assemblyName, STRING...
  function tMD_TypeDef (line 197) | tMD_TypeDef* MetaData_GetTypeDefFromDefRefOrSpec(tMetaData *pMetaData, I...
  function tMD_TypeDef (line 246) | tMD_TypeDef* MetaData_GetTypeDefFromMethodDef(tMD_MethodDef *pMethodDef) {
  function tMD_TypeDef (line 264) | tMD_TypeDef* MetaData_GetTypeDefFromFieldDef(tMD_FieldDef *pFieldDef) {
  function tMD_MethodDef (line 282) | tMD_MethodDef* MetaData_GetMethodDefFromDefRefOrSpec(tMetaData *pMetaDat...
  function tMD_FieldDef (line 336) | tMD_FieldDef* MetaData_GetFieldDefFromDefOrRef(tMetaData *pMetaData, IDX...
  function PTR (line 386) | PTR MetaData_GetTypeMethodField(tMetaData *pMetaData, IDX_TABLE token, U...
  function tMD_ImplMap (line 450) | tMD_ImplMap* MetaData_GetImplMap(tMetaData *pMetaData, IDX_TABLE memberF...
  function STRING (line 464) | STRING MetaData_GetModuleRefName(tMetaData *pMetaData, IDX_TABLE memberR...

FILE: dna/MethodState.c
  function AddCall (line 35) | static void AddCall(tMD_MethodDef *pMethod) {
  function DeleteCombinedJIT (line 86) | static void DeleteCombinedJIT(tMD_MethodDef *pMethod) {
  function RemoveCombinedJIT (line 100) | static void RemoveCombinedJIT(tMD_MethodDef *pMethod) {
  function AddCombinedJIT (line 112) | static void AddCombinedJIT(tMD_MethodDef *pMethod) {
  function tMethodState (line 120) | tMethodState* MethodState_Direct(tThread *pThread, tMD_MethodDef *pMetho...
  function tMethodState (line 198) | tMethodState* MethodState(tThread *pThread, tMetaData *pMetaData, IDX_TA...
  function MethodState_Delete (line 205) | void MethodState_Delete(tThread *pThread, tMethodState **ppMethodState) {

FILE: dna/MethodState.h
  type tMethodState (line 24) | typedef struct tMethodState_ tMethodState;
  type tMethodState_ (line 28) | struct tMethodState_ {

FILE: dna/PInvoke.c
  type tLoadedLib (line 32) | typedef struct tLoadedLib_ tLoadedLib;
  type tLoadedLib_ (line 33) | struct tLoadedLib_ {
  function tLoadedLib (line 44) | static tLoadedLib* GetLib(STRING name) {
  function fnPInvoke (line 91) | fnPInvoke PInvoke_GetFunction(tMetaData *pMetaData, tMD_ImplMap *pImplMa...
  function U32 (line 161) | U32 PInvoke_Call(tJITCallPInvoke *pCall, PTR pParams, PTR pReturnValue) {

FILE: dna/RVA.c
  function tRVA (line 26) | tRVA* RVA() {
  function tRVA_Item (line 32) | tRVA_Item* RVA_Create(tRVA *pThis, void *pFile, void *pSectionHeader) {

FILE: dna/RVA.h
  type tRVA_Item (line 24) | typedef struct tRVA_Item_ tRVA_Item;
  type tRVA_Item_ (line 25) | struct tRVA_Item_ {
  type tRVA (line 33) | typedef struct tRVA_ tRVA;
  type tRVA_ (line 34) | struct tRVA_ {

FILE: dna/Sys.c
  function Crash (line 27) | void Crash(char *pMsg, ...) {
  function log_f (line 52) | void log_f(U32 level, char *pMsg, ...) {
  function U64 (line 95) | U64 msTime() {
  function U64 (line 116) | U64 microTime() {
  function SleepMS (line 137) | void SleepMS(U32 ms) {

FILE: dna/System.Array.c
  type tSystemArray (line 31) | typedef struct tSystemArray_ tSystemArray;
  type tSystemArray_ (line 32) | struct tSystemArray_ {
  function tAsyncCall (line 40) | tAsyncCall* System_Array_Internal_GetValue(PTR pThis_, PTR pParams, PTR ...
  function tAsyncCall (line 80) | tAsyncCall* System_Array_Internal_SetValue(PTR pThis_, PTR pParams, PTR ...
  function tAsyncCall (line 135) | tAsyncCall* System_Array_Clear(PTR pThis_, PTR pParams, PTR pReturnValue) {
  function tAsyncCall (line 150) | tAsyncCall* System_Array_Internal_Copy(PTR pThis_, PTR pParams, PTR pRet...
  function tAsyncCall (line 190) | tAsyncCall* System_Array_Resize(PTR pThis_, PTR pParams, PTR pReturnValu...
  function tAsyncCall (line 217) | tAsyncCall* System_Array_Reverse(PTR pThis_, PTR pParams, PTR pReturnVal...
  function HEAP_PTR (line 246) | HEAP_PTR SystemArray_NewVector(tMD_TypeDef *pArrayTypeDef, U32 length) {
  function SystemArray_StoreElement (line 256) | void SystemArray_StoreElement(HEAP_PTR pThis_, U32 index, PTR value) {
  function SystemArray_LoadElement (line 287) | void SystemArray_LoadElement(HEAP_PTR pThis_, U32 index, PTR value) {
  function PTR (line 310) | PTR SystemArray_LoadElementAddress(HEAP_PTR pThis_, U32 index) {
  function U32 (line 325) | U32 SystemArray_GetNumBytes(HEAP_PTR pThis_, tMD_TypeDef *pElementType) {

FILE: dna/System.Char.c
  function tAsyncCall (line 34) | tAsyncCall* System_Char_GetUnicodeCategory(PTR pThis_, PTR pParams, PTR ...
  function I32 (line 70) | static I32 SearchCaseArray(unsigned short *pCaseArray, unsigned short fi...
  function tAsyncCall (line 102) | tAsyncCall* System_Char_ToLowerInvariant(PTR pThis_, PTR pParams, PTR pR...
  function tAsyncCall (line 112) | tAsyncCall* System_Char_ToUpperInvariant(PTR pThis_, PTR pParams, PTR pR...

FILE: dna/System.Console.c
  function tAsyncCall (line 30) | tAsyncCall* System_Console_Write(PTR pThis_, PTR pParams, PTR pReturnVal...
  function U32 (line 58) | static U32 Internal_ReadKey_Check(PTR pThis_, PTR pParams, PTR pReturnVa...
  function tAsyncCall (line 99) | tAsyncCall* System_Console_Internal_ReadKey(PTR pThis_, PTR pParams, PTR...
  function tAsyncCall (line 109) | tAsyncCall* System_Console_Internal_KeyAvailable(PTR pThis_, PTR pParams...

FILE: dna/System.DateTime.c
  function tAsyncCall (line 37) | tAsyncCall* System_DateTime_InternalUtcNow(PTR pThis_, PTR pParams, PTR ...

FILE: dna/System.Diagnostics.Debugger.c
  function tAsyncCall (line 30) | tAsyncCall* System_Diagnostics_Debugger_Break(PTR pThis_, PTR pParams, P...

FILE: dna/System.Enum.c
  function tAsyncCall (line 33) | tAsyncCall* System_Enum_Internal_GetValue(PTR pThis_, PTR pParams, PTR p...
  function tAsyncCall (line 39) | tAsyncCall* System_Enum_Internal_GetInfo(PTR pThis_, PTR pParams, PTR pR...

FILE: dna/System.Environment.c
  function tAsyncCall (line 32) | tAsyncCall* System_Environment_get_TickCount(PTR pThis_, PTR pParams, PT...
  function tAsyncCall (line 41) | tAsyncCall* System_Environment_GetOSVersionString(PTR pThis_, PTR pParam...
  function tAsyncCall (line 60) | tAsyncCall* System_Environment_get_Platform(PTR pThis_, PTR pParams, PTR...

FILE: dna/System.GC.c
  function tAsyncCall (line 31) | tAsyncCall* System_GC_Collect(PTR pThis_, PTR pParams, PTR pReturnValue) {
  function tAsyncCall (line 36) | tAsyncCall* System_GC_Internal_CollectionCount(PTR pThis_, PTR pParams, ...
  function tAsyncCall (line 41) | tAsyncCall* System_GC_GetTotalMemory(PTR pThis_, PTR pParams, PTR pRetur...
  function tAsyncCall (line 49) | tAsyncCall* System_GC_SuppressFinalize(PTR pThis_, PTR pParams, PTR pRet...

FILE: dna/System.IO.FileInternal.c
  function tAsyncCall (line 45) | tAsyncCall* System_IO_FileInternal_Open(PTR pThis_, PTR pParams, PTR pRe...
  function tAsyncCall (line 88) | tAsyncCall* System_IO_FileInternal_Read(PTR pThis_, PTR pParams, PTR pRe...
  function tAsyncCall (line 113) | tAsyncCall* System_IO_FileInternal_Close(PTR pThis_, PTR pParams, PTR pR...
  function tAsyncCall (line 127) | tAsyncCall* System_IO_FileInternal_GetCurrentDirectory(PTR pThis_, PTR p...
  function U32 (line 146) | static U32 Attrs(unsigned char *pPath, U32 *pError) {
  function tAsyncCall (line 165) | tAsyncCall* System_IO_FileInternal_GetFileAttributes(PTR pThis_, PTR pPa...
  function tAsyncCall (line 193) | tAsyncCall* System_IO_FileInternal_GetFileSystemEntries(PTR pThis_, PTR ...

FILE: dna/System.Math.c
  function tAsyncCall (line 28) | tAsyncCall* System_Math_Sin(PTR pThis_, PTR pParams, PTR pReturnValue) {
  function tAsyncCall (line 34) | tAsyncCall* System_Math_Cos(PTR pThis_, PTR pParams, PTR pReturnValue) {
  function tAsyncCall (line 40) | tAsyncCall* System_Math_Tan(PTR pThis_, PTR pParams, PTR pReturnValue) {
  function tAsyncCall (line 46) | tAsyncCall* System_Math_Pow(PTR pThis_, PTR pParams, PTR pReturnValue) {
  function tAsyncCall (line 52) | tAsyncCall* System_Math_Sqrt(PTR pThis_, PTR pParams, PTR pReturnValue) {

FILE: dna/System.Net.Dns.c
  function tAsyncCall (line 34) | tAsyncCall* System_Net_Dns_Internal_GetHostEnt(PTR pThis_, PTR pParams, ...

FILE: dna/System.Net.Sockets.Socket.c
  function Socket_Init (line 40) | void Socket_Init() {
  function tAsyncCall (line 47) | tAsyncCall* System_Net_Sockets_Internal_CreateSocket(PTR pThis_, PTR pPa...
  function tAsyncCall (line 83) | tAsyncCall* System_Net_Sockets_Internal_Bind(PTR pThis_, PTR pParams, PT...
  function tAsyncCall (line 107) | tAsyncCall* System_Net_Sockets_Internal_Close(PTR pThis_, PTR pParams, P...
  function tAsyncCall (line 120) | tAsyncCall* System_Net_Sockets_Internal_Listen(PTR pThis_, PTR pParams, ...
  function U32 (line 132) | static U32 Accept_Check(PTR pThis_, PTR pParams, PTR pReturnValue, tAsyn...
  function tAsyncCall (line 155) | tAsyncCall* System_Net_Sockets_Internal_Accept(PTR pThis_, PTR pParams, ...
  type sockaddr_in (line 169) | struct sockaddr_in
  type sockaddr (line 185) | struct sockaddr
  function tAsyncCall (line 216) | tAsyncCall* System_Net_Sockets_Internal_Connect(PTR pThis_, PTR pParams,...
  type tSendRecvState (line 229) | typedef struct tSendRecvState_ tSendRecvState;
  type tSendRecvState_ (line 230) | struct tSendRecvState_ {
  function tAsyncCall (line 285) | tAsyncCall* System_Net_Sockets_Internal_Receive(PTR pThis_, PTR pParams,...
  function tAsyncCall (line 348) | tAsyncCall* System_Net_Sockets_Internal_Send(PTR pThis_, PTR pParams, PT...

FILE: dna/System.Object.c
  function tAsyncCall (line 29) | tAsyncCall* System_Object_Equals(PTR pThis_, PTR pParams, PTR pReturnVal...
  function tAsyncCall (line 35) | tAsyncCall* System_Object_Clone(PTR pThis_, PTR pParams, PTR pReturnValu...
  function tAsyncCall (line 45) | tAsyncCall* System_Object_GetHashCode(PTR pThis_, PTR pParams, PTR pRetu...
  function tAsyncCall (line 51) | tAsyncCall* System_Object_GetType(PTR pThis_, PTR pParams, PTR pReturnVa...

FILE: dna/System.Runtime.CompilerServices.RuntimeHelpers.c
  function tAsyncCall (line 32) | tAsyncCall* System_Runtime_CompilerServices_InitializeArray(PTR pThis_, ...

FILE: dna/System.RuntimeType.c
  function HEAP_PTR (line 33) | HEAP_PTR RuntimeType_New(tMD_TypeDef *pTypeDef) {
  function tAsyncCall (line 43) | tAsyncCall* System_RuntimeType_get_Name(PTR pThis_, PTR pParams, PTR pRe...
  function tAsyncCall (line 53) | tAsyncCall* System_RuntimeType_get_Namespace(PTR pThis_, PTR pParams, PT...
  function tAsyncCall (line 63) | tAsyncCall* System_RuntimeType_GetNestingParentType(PTR pThis_, PTR pPar...
  function tAsyncCall (line 77) | tAsyncCall* System_RuntimeType_get_BaseType(PTR pThis_, PTR pParams, PTR...
  function tAsyncCall (line 90) | tAsyncCall* System_RuntimeType_get_IsEnum(PTR pThis_, PTR pParams, PTR p...
  function tAsyncCall (line 99) | tAsyncCall* System_RuntimeType_get_IsGenericType(PTR pThis_, PTR pParams...
  function tAsyncCall (line 106) | tAsyncCall* System_RuntimeType_Internal_GetGenericTypeDefinition(PTR pTh...
  function tAsyncCall (line 118) | tAsyncCall* System_RuntimeType_GetGenericArguments(PTR pThis_, PTR pPara...
  function tMD_TypeDef (line 149) | tMD_TypeDef* RuntimeType_DeRef(PTR type) {

FILE: dna/System.RuntimeType.h
  type tRuntimeType (line 27) | typedef struct tRuntimeType_ tRuntimeType;
  type tRuntimeType_ (line 28) | struct tRuntimeType_ {

FILE: dna/System.String.c
  type tSystemString (line 32) | typedef struct tSystemString_ tSystemString;
  type tSystemString_ (line 34) | struct tSystemString_ {
  function tSystemString (line 42) | static tSystemString* CreateStringHeapObj(U32 len) {
  function tAsyncCall (line 52) | tAsyncCall* System_String_ctor_CharInt32(PTR pThis_, PTR pParams, PTR pR...
  function tAsyncCall (line 68) | tAsyncCall* System_String_ctor_CharAIntInt(PTR pThis_, PTR pParams, PTR ...
  function tAsyncCall (line 86) | tAsyncCall* System_String_ctor_StringIntInt(PTR pThis_, PTR pParams, PTR...
  function tAsyncCall (line 101) | tAsyncCall* System_String_get_Chars(PTR pThis_, PTR pParams, PTR pReturn...
  function tAsyncCall (line 111) | tAsyncCall* System_String_InternalConcat(PTR pThis_, PTR pParams, PTR pR...
  function tAsyncCall (line 124) | tAsyncCall* System_String_InternalTrim(PTR pThis_, PTR pParams, PTR pRet...
  function tAsyncCall (line 185) | tAsyncCall* System_String_Equals(PTR pThis_, PTR pParams, PTR pReturnVal...
  function tAsyncCall (line 204) | tAsyncCall* System_String_GetHashCode(PTR pThis_, PTR pParams, PTR pRetu...
  function tAsyncCall (line 224) | tAsyncCall* System_String_InternalReplace(PTR pThis_, PTR pParams, PTR p...
  function tAsyncCall (line 286) | tAsyncCall* System_String_InternalIndexOf(PTR pThis_, PTR pParams, PTR p...
  function tAsyncCall (line 316) | tAsyncCall* System_String_InternalIndexOfAny(PTR pThis_, PTR pParams, PT...
  function HEAP_PTR (line 352) | HEAP_PTR SystemString_FromUserStrings(tMetaData *pMetaData, IDX_USERSTRI...
  function HEAP_PTR (line 364) | HEAP_PTR SystemString_FromCharPtrASCII(U8 *pStr) {
  function HEAP_PTR (line 376) | HEAP_PTR SystemString_FromCharPtrUTF16(U16 *pStr) {
  function STRING2 (line 388) | STRING2 SystemString_GetString(HEAP_PTR pThis_, U32 *pLength) {
  function U32 (line 397) | U32 SystemString_GetNumBytes(HEAP_PTR pThis_) {

FILE: dna/System.Threading.Interlocked.c
  function tAsyncCall (line 26) | tAsyncCall* System_Threading_Interlocked_CompareExchange_Int32(PTR pThis...
  function tAsyncCall (line 39) | tAsyncCall* System_Threading_Interlocked_Increment_Int32(PTR pThis_, PTR...
  function tAsyncCall (line 48) | tAsyncCall* System_Threading_Interlocked_Decrement_Int32(PTR pThis_, PTR...
  function tAsyncCall (line 57) | tAsyncCall* System_Threading_Interlocked_Add_Int32(PTR pThis_, PTR pPara...
  function tAsyncCall (line 67) | tAsyncCall* System_Threading_Interlocked_Exchange_Int32(PTR pThis_, PTR ...

FILE: dna/System.Threading.Monitor.c
  function U32 (line 29) | static U32 Internal_TryEntry_Check(PTR pThis_, PTR pParams, PTR pReturnV...
  function tAsyncCall (line 63) | tAsyncCall* System_Threading_Monitor_Internal_TryEnter(PTR pThis_, PTR p...
  function tAsyncCall (line 77) | tAsyncCall* System_Threading_Monitor_Internal_Exit(PTR pThis_, PTR pPara...

FILE: dna/System.Threading.Thread.c
  function tAsyncCall (line 31) | tAsyncCall* System_Threading_Thread_ctor(PTR pThis_, PTR pParams, PTR pR...
  function tAsyncCall (line 38) | tAsyncCall* System_Threading_Thread_ctorParam(PTR pThis_, PTR pParams, P...
  function tAsyncCall (line 46) | tAsyncCall* System_Threading_Thread_Start(PTR pThis_, PTR pParams, PTR p...
  function tAsyncCall (line 74) | tAsyncCall* System_Threading_Thread_Sleep(PTR pThis_, PTR pParams, PTR p...
  function tAsyncCall (line 82) | tAsyncCall* System_Threading_Thread_get_CurrentThread(PTR pThis_, PTR pP...

FILE: dna/System.Type.c
  function tAsyncCall (line 30) | tAsyncCall* System_Type_GetTypeFromHandle(PTR pThis_, PTR pParams, PTR p...
  function tAsyncCall (line 38) | tAsyncCall* System_Type_get_IsValueType(PTR pThis_, PTR pParams, PTR pRe...

FILE: dna/System.ValueType.c
  function tAsyncCall (line 35) | tAsyncCall* System_ValueType_GetFields(PTR pThis_, PTR pParams, PTR pRet...

FILE: dna/System.WeakReference.c
  type tWeakRef (line 31) | typedef struct tWeakRef_ tWeakRef;
  type tWeakRef_ (line 32) | struct tWeakRef_ {
  function tAsyncCall (line 41) | tAsyncCall* System_WeakReference_get_Target(PTR pThis_, PTR pParams, PTR...
  function tAsyncCall (line 47) | tAsyncCall* System_WeakReference_set_Target(PTR pThis_, PTR pParams, PTR...
  function SystemWeakReference_TargetGone (line 73) | void SystemWeakReference_TargetGone(HEAP_PTR *ppWeakRef_, U32 removeLong...

FILE: dna/Thread.c
  function tThread (line 33) | tThread* Thread() {
  function Thread_StackFree (line 84) | void Thread_StackFree(tThread *pThread, void *pAddr) {
  function Thread_SetEntryPoint (line 93) | void Thread_SetEntryPoint(tThread *pThis, tMetaData *pMetaData, IDX_TABL...
  function Thread_Delete (line 102) | static void Thread_Delete(tThread *pThis) {
  function I32 (line 112) | I32 Thread_Execute() {
  function tThread (line 238) | tThread* Thread_GetCurrent() {
  function Thread_GetHeapRoots (line 242) | void Thread_GetHeapRoots(tHeapRoots *pHeapRoots) {

FILE: dna/Thread.h
  type tThread (line 24) | typedef struct tThread_ tThread;
  type tThreadStack (line 25) | typedef struct tThreadStack_ tThreadStack;
  type tThreadStack_ (line 34) | struct tThreadStack_ {
  type tThread_ (line 43) | struct tThread_ {

FILE: dna/Type.c
  type tArrayTypeDefs (line 33) | typedef struct tArrayTypeDefs_ tArrayTypeDefs;
  type tArrayTypeDefs_ (line 34) | struct tArrayTypeDefs_ {
  function GetMethodDefs (line 76) | static void GetMethodDefs() {
  function CreateNewArrayType (line 101) | static void CreateNewArrayType(tMD_TypeDef *pNewArrayType, tMD_TypeDef *...
  function tMD_TypeDef (line 165) | tMD_TypeDef* Type_GetArrayTypeDef(tMD_TypeDef *pElementType, tMD_TypeDef...
  function U3
Condensed preview — 705 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,522K chars).
[
  {
    "path": ".gitignore",
    "chars": 134,
    "preview": "bin\nobj\nDebug\nRelease\nBuilds\n.vs\n*.ncb\n*.suo\n*.user\n*.pidb\n*.userprefs\n*.xml\n*.nupkg\n*.svn\n*.opensdf\n*.sdf\n*.vcxproj\n*.v"
  },
  {
    "path": "ChangeLog.txt",
    "chars": 7217,
    "preview": "Major changes from v0.2.5 to v0.2.6\n\ndna:\n\n* Command line parameters are now passed to the .NET executable, in the args["
  },
  {
    "path": "CustomDevice/CustomDevice.csproj",
    "chars": 4510,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
  },
  {
    "path": "CustomDevice/DeviceGraphics.cs",
    "chars": 2458,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "CustomDevice/KeyPad.cs",
    "chars": 3007,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "CustomDevice/KeyPadKey.cs",
    "chars": 1358,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "CustomDevice/Properties/AssemblyInfo.cs",
    "chars": 1373,
    "preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
  },
  {
    "path": "CustomDevice/Utils.cs",
    "chars": 1470,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "CustomDevice/WindowsScreen.cs",
    "chars": 4729,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "License.txt",
    "chars": 1059,
    "preview": "Copyright (c) 2012 DotNetAnywhere\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this "
  },
  {
    "path": "Managed.sln",
    "chars": 4344,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 11\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04"
  },
  {
    "path": "Snake/ASnake.cs",
    "chars": 3209,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "Snake/CrashType.cs",
    "chars": 1261,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "Snake/Program.cs",
    "chars": 2833,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "Snake/Properties/AssemblyInfo.cs",
    "chars": 1234,
    "preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
  },
  {
    "path": "Snake/Snake.csproj",
    "chars": 4611,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
  },
  {
    "path": "Snake/SnakePit.cs",
    "chars": 8596,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/Properties/AssemblyInfo.cs",
    "chars": 1361,
    "preview": "/*using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Inf"
  },
  {
    "path": "System/System.Collections.Generic/Queue.cs",
    "chars": 4845,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace System.Collections.Generic {\n\tpublic class"
  },
  {
    "path": "System/System.Collections.Generic/Stack.cs",
    "chars": 5159,
    "preview": "//\n// System.Collections.Generic.Stack\n//\n// Authors:\n//\tMartin Baulig (martin@ximian.com)\n//\tBen Maurer (bmaurer@ximian"
  },
  {
    "path": "System/System.ComponentModel/Win32Exception.cs",
    "chars": 1681,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net/Dns.cs",
    "chars": 2206,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net/EndPoint.cs",
    "chars": 1592,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net/IPAddress.cs",
    "chars": 3094,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net/IPEndPoint.cs",
    "chars": 3714,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net/IPHostEntry.cs",
    "chars": 1639,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net/SocketAddress.cs",
    "chars": 2731,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net.Sockets/AddressFamily.cs",
    "chars": 1715,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net.Sockets/ProtocolType.cs",
    "chars": 1692,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net.Sockets/Socket.cs",
    "chars": 6782,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net.Sockets/SocketException.cs",
    "chars": 1432,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net.Sockets/SocketFlags.cs",
    "chars": 1520,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net.Sockets/SocketOptionLevel.cs",
    "chars": 1314,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net.Sockets/SocketOptionName.cs",
    "chars": 2195,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.Net.Sockets/SocketType.cs",
    "chars": 1325,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System/System.csproj",
    "chars": 5442,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
  },
  {
    "path": "System.Core/Properties/AssemblyInfo.cs",
    "chars": 1459,
    "preview": "//using System.Reflection;\n//using System.Runtime.CompilerServices;\n//using System.Runtime.InteropServices;\n\n//// Gener"
  },
  {
    "path": "System.Core/System/Action.cs",
    "chars": 1384,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "System.Core/System/Func.cs",
    "chars": 1466,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "System.Core/System.Collections.Generic/HashSet.cs",
    "chars": 3576,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "System.Core/System.Core.csproj",
    "chars": 3080,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "System.Core/System.Linq/Enumerable.cs",
    "chars": 42482,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "System.Core/System.Linq/Grouping.cs",
    "chars": 1763,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "System.Core/System.Linq/IGrouping.cs",
    "chars": 1361,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "System.Core/System.Linq/ILookup.cs",
    "chars": 1452,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "System.Core/System.Linq/IOrderedEnumerable.cs",
    "chars": 1419,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "System.Core/System.Linq/Lookup.cs",
    "chars": 2108,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "System.Core/System.Linq/OrderedEnumerable.cs",
    "chars": 5358,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "System.Core/System.Runtime.CompilerServices/ExtensionAttribute.cs",
    "chars": 1402,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "System.Drawing/Properties/AssemblyInfo.cs",
    "chars": 1377,
    "preview": "/*using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Inf"
  },
  {
    "path": "System.Drawing/System.Drawing/Bitmap.cs",
    "chars": 1971,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Brush.cs",
    "chars": 1616,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Brushes.cs",
    "chars": 28495,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Color.cs",
    "chars": 15894,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Font.cs",
    "chars": 2006,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/FontFamily.cs",
    "chars": 1754,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/FontStyle.cs",
    "chars": 1244,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Graphics.cs",
    "chars": 8096,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Image.cs",
    "chars": 2282,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/KnownColor.cs",
    "chars": 4507,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/KnownColors.cs",
    "chars": 7996,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/LibIGraph.cs",
    "chars": 6425,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Pen.cs",
    "chars": 2691,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Pens.cs",
    "chars": 31751,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Point.cs",
    "chars": 2958,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/PointF.cs",
    "chars": 2114,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Rectangle.cs",
    "chars": 4926,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/RectangleF.cs",
    "chars": 2416,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Region.cs",
    "chars": 1883,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/Size.cs",
    "chars": 2863,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/SizeF.cs",
    "chars": 2400,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/SolidBrush.cs",
    "chars": 1968,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/StringAlignment.cs",
    "chars": 1280,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/StringFormat.cs",
    "chars": 3614,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/StringFormatFlags.cs",
    "chars": 1486,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing/StringTrimming.cs",
    "chars": 1348,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing.Drawing2D/HatchBrush.cs",
    "chars": 1944,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing.Drawing2D/HatchStyle.cs",
    "chars": 2401,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing.Drawing2D/LinearGradientBrush.cs",
    "chars": 1733,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing.Drawing2D/WrapMode.cs",
    "chars": 1323,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing.Imaging/PixelFormat.cs",
    "chars": 1757,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing.Text/TextRenderingHint.cs",
    "chars": 1393,
    "preview": "// Copyright (c) 2009 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "System.Drawing/System.Drawing.csproj",
    "chars": 6155,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
  },
  {
    "path": "corlib/Properties/AssemblyInfo.cs",
    "chars": 1349,
    "preview": "/*using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Inf"
  },
  {
    "path": "corlib/System/Action.cs",
    "chars": 1199,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Activator.cs",
    "chars": 1251,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "corlib/System/ArgumentException.cs",
    "chars": 2008,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/ArgumentNullException.cs",
    "chars": 1605,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/ArgumentOutOfRangeException.cs",
    "chars": 1507,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/ArithmeticException.cs",
    "chars": 1370,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Array.cs",
    "chars": 10635,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/ArrayTypeMismatchException.cs",
    "chars": 1404,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/AsyncCallback.cs",
    "chars": 1214,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Attribute.cs",
    "chars": 1196,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/AttributeTargets.cs",
    "chars": 1739,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/AttributeUsageAttribute.cs",
    "chars": 1754,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/BitConverter.cs",
    "chars": 400,
    "preview": "#if !LOCALTEST\n\nusing System.Runtime.CompilerServices;\nnamespace System {\n\tpublic static class BitConverter {\n\n\t\tpublic "
  },
  {
    "path": "corlib/System/Boolean.cs",
    "chars": 2469,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Byte.cs",
    "chars": 1674,
    "preview": "#if !LOCALTEST\n\nusing System.Globalization;\nnamespace System {\n\tpublic struct Byte : IFormattable, IComparable, ICompara"
  },
  {
    "path": "corlib/System/Char.cs",
    "chars": 6056,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/CharEnumerator.cs",
    "chars": 1054,
    "preview": "#if !LOCALTEST\n\nusing System.Collections.Generic;\nusing System.Collections;\n\nnamespace System {\n\tpublic sealed class Cha"
  },
  {
    "path": "corlib/System/Console.cs",
    "chars": 5644,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/ConsoleKey.cs",
    "chars": 2225,
    "preview": "#if !LOCALTEST\n\nnamespace System {\n\tpublic enum ConsoleKey {\n\t\tUnknown = 0, // Non-standard\n\t\tBackspace = 8,\n\t\tTab = 9,\n"
  },
  {
    "path": "corlib/System/ConsoleKeyInfo.cs",
    "chars": 2644,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/ConsoleModifiers.cs",
    "chars": 127,
    "preview": "#if !LOCALTEST\n\nnamespace System {\n\t[Flags]\n\tpublic enum ConsoleModifiers {\n\t\tAlt = 1,\n\t\tShift = 2,\n\t\tControl = 4\n\t}\n}\n\n"
  },
  {
    "path": "corlib/System/Converter.cs",
    "chars": 1225,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/DateTime.cs",
    "chars": 17660,
    "preview": "#if !LOCALTEST\n\nusing System.Runtime.CompilerServices;\nusing System.Globalization;\nusing System.Text;\nnamespace System {"
  },
  {
    "path": "corlib/System/DateTimeKind.cs",
    "chars": 1219,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/DayOfWeek.cs",
    "chars": 150,
    "preview": "#if !LOCALTEST\n\nnamespace System {\n\tpublic enum DayOfWeek {\n\t\tSunday,\n\t\tMonday,\n\t\tTuesday,\n\t\tWednesday,\n\t\tThursday,\n\t\tFr"
  },
  {
    "path": "corlib/System/Decimal.cs",
    "chars": 1473,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Delegate.cs",
    "chars": 1374,
    "preview": "#if !LOCALTEST\n\nnamespace System {\n\tpublic abstract class Delegate {\n\n\t\t// These must be the same as defined in the inte"
  },
  {
    "path": "corlib/System/Double.cs",
    "chars": 3578,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Enum.cs",
    "chars": 2946,
    "preview": "#if !LOCALTEST\n\nusing System;\nusing System.Runtime.CompilerServices;\nusing System.Collections.Generic;\nusing System.Text"
  },
  {
    "path": "corlib/System/Environment.cs",
    "chars": 2210,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Exception.cs",
    "chars": 738,
    "preview": "#if !LOCALTEST\n\nnamespace System {\n\tpublic class Exception {\n\n\t\tprivate Exception innerException;\n\t\tprivate string messa"
  },
  {
    "path": "corlib/System/FlagsAttribute.cs",
    "chars": 1271,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/FormatException.cs",
    "chars": 208,
    "preview": "#if !LOCALTEST\n\nnamespace System {\n\tpublic class FormatException : SystemException {\n\t\tpublic FormatException() : base(\""
  },
  {
    "path": "corlib/System/GC.cs",
    "chars": 2379,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/IAsyncResult.cs",
    "chars": 244,
    "preview": "#if !LOCALTEST\n\nusing System.Threading;\n\nnamespace System {\n\tpublic interface IAsyncResult {\n\n\t\tobject AsyncState { get;"
  },
  {
    "path": "corlib/System/ICloneable.cs",
    "chars": 1212,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/IComparable.cs",
    "chars": 171,
    "preview": "#if !LOCALTEST\n\nnamespace System {\n\n\tpublic interface IComparable {\n\t\tint CompareTo(object obj);\n\t}\n\n\tpublic interface I"
  },
  {
    "path": "corlib/System/ICustomFormatter.cs",
    "chars": 1276,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/IDisposable.cs",
    "chars": 98,
    "preview": "#if !LOCALTEST\n\nnamespace System {\n\tpublic interface IDisposable {\n\t\tvoid Dispose();\n\t}\n}\n\n#endif\n"
  },
  {
    "path": "corlib/System/IEquatable.cs",
    "chars": 1217,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/IFormatProvider.cs",
    "chars": 189,
    "preview": "#if !LOCALTEST\n\nusing System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace System {\n\tpublic interface"
  },
  {
    "path": "corlib/System/IFormattable.cs",
    "chars": 1262,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/IndexOutOfRangeException.cs",
    "chars": 377,
    "preview": "#if !LOCALTEST\n\nnamespace System {\n\tpublic class IndexOutOfRangeException : SystemException {\n\n\t\tpublic IndexOutOfRangeE"
  },
  {
    "path": "corlib/System/Int16.cs",
    "chars": 2757,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Int32.cs",
    "chars": 2567,
    "preview": "#if !LOCALTEST\n\nusing System.Runtime.CompilerServices;\nusing System.Globalization;\nusing System.Threading;\n\nnamespace Sy"
  },
  {
    "path": "corlib/System/Int64.cs",
    "chars": 2768,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/IntPtr.cs",
    "chars": 1088,
    "preview": "#if !LOCALTEST\n\nnamespace System {\n\tpublic unsafe struct IntPtr {\n\n\t\tpublic static readonly IntPtr Zero = new IntPtr(0);"
  },
  {
    "path": "corlib/System/InvalidCastException.cs",
    "chars": 1268,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/InvalidOperationException.cs",
    "chars": 391,
    "preview": "namespace System {\n\tpublic class InvalidOperationException : SystemException {\n\n\t\tpublic InvalidOperationException()\n\t\t\t"
  },
  {
    "path": "corlib/System/MarshalByRefObject.cs",
    "chars": 1205,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Math.cs",
    "chars": 5415,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/MulticastDelegate.cs",
    "chars": 2598,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/MulticastNotSupportedException.cs",
    "chars": 1465,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/NotImplementedException.cs",
    "chars": 1474,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/NotSupportedException.cs",
    "chars": 1472,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/NullReferenceException.cs",
    "chars": 1395,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Nullable.cs",
    "chars": 3461,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/NumberFormatter.cs",
    "chars": 57928,
    "preview": "#if !LOCALTEST\n\nusing System.Collections;\nusing System.Globalization;\nusing System.Text;\n\nnamespace System {\n\tclass Numb"
  },
  {
    "path": "corlib/System/Object.cs",
    "chars": 1968,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/ObjectDisposedException.cs",
    "chars": 1601,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/OperatingSystem.cs",
    "chars": 2465,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/OverflowException.cs",
    "chars": 1334,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/ParamArrayAttribute.cs",
    "chars": 1270,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/ParseHelper.cs",
    "chars": 9858,
    "preview": "#if !LOCALTEST\n\nusing System.Globalization;\nusing System.Threading;\nnamespace System {\n\tinternal static class ParseHelpe"
  },
  {
    "path": "corlib/System/PlatformID.cs",
    "chars": 1260,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Predicate.cs",
    "chars": 1201,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Random.cs",
    "chars": 2759,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/RuntimeFieldHandle.cs",
    "chars": 1344,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/RuntimeMethodHandle.cs",
    "chars": 1339,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/RuntimeType.cs",
    "chars": 3111,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/RuntimeTypeHandle.cs",
    "chars": 1342,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/SByte.cs",
    "chars": 2801,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Single.cs",
    "chars": 3560,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/String.cs",
    "chars": 15822,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/StringComparison.cs",
    "chars": 1320,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/StringHelper.cs",
    "chars": 4177,
    "preview": "\n#if LOCALTEST\nusing System;\nusing System_.Text;\nnamespace System_ {\n#else\nusing System.Text;\nnamespace System {\n#endif\n"
  },
  {
    "path": "corlib/System/SystemException.cs",
    "chars": 1445,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/TimeSpan.cs",
    "chars": 6485,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Type.cs",
    "chars": 1957,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/UInt16.cs",
    "chars": 2812,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/UInt32.cs",
    "chars": 2825,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/UInt64.cs",
    "chars": 2862,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/UIntPtr.cs",
    "chars": 2164,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/ValueType.cs",
    "chars": 1996,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Version.cs",
    "chars": 8423,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/Void.cs",
    "chars": 1183,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System/WeakReference.cs",
    "chars": 2058,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections/ArrayList.cs",
    "chars": 5502,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections/DictionaryEntry.cs",
    "chars": 1687,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections/ICollection.cs",
    "chars": 1356,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections/IComparer.cs",
    "chars": 1241,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "corlib/System.Collections/IDictionary.cs",
    "chars": 1543,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections/IDictionaryEnumerator.cs",
    "chars": 1324,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections/IEnumerable.cs",
    "chars": 1238,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections/IEnumerator.cs",
    "chars": 1265,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections/IEqualityComparer.cs",
    "chars": 1350,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "corlib/System.Collections/IList.cs",
    "chars": 1543,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections.Generic/Comparer.cs",
    "chars": 2694,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "corlib/System.Collections.Generic/Dictionary.cs",
    "chars": 15778,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections.Generic/EqualityComparer.cs",
    "chars": 2204,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "corlib/System.Collections.Generic/GenericEqualityComparer.cs",
    "chars": 1544,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "corlib/System.Collections.Generic/ICollection.cs",
    "chars": 1579,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections.Generic/IComparer.cs",
    "chars": 1244,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "corlib/System.Collections.Generic/IDictionary.cs",
    "chars": 1534,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections.Generic/IEnumerable.cs",
    "chars": 1312,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections.Generic/IEnumerator.cs",
    "chars": 1291,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections.Generic/IEqualityComparer.cs",
    "chars": 1346,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "corlib/System.Collections.Generic/IList.cs",
    "chars": 1507,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections.Generic/KeyNotFoundException.cs",
    "chars": 1505,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections.Generic/KeyValuePair.cs",
    "chars": 1671,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Collections.Generic/List.cs",
    "chars": 6494,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Diagnostics/Debugger.cs",
    "chars": 1330,
    "preview": "// Copyright (c) 2012 DotNetAnywhere\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n"
  },
  {
    "path": "corlib/System.Globalization/Calendar.cs",
    "chars": 1259,
    "preview": "#if !LOCALTEST\n\nusing System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace System.Globalization {\n\tpu"
  },
  {
    "path": "corlib/System.Globalization/CalendarWeekRule.cs",
    "chars": 222,
    "preview": "#if !LOCALTEST\n\nusing System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace System.Globalization {\n\tpu"
  },
  {
    "path": "corlib/System.Globalization/CalendricalCalculations.cs",
    "chars": 68138,
    "preview": "// CalendricalCalculations.cs\n//\n// (C) Ulrich Kunitz 2002\n//\n\n//\n// Copyright (C) 2004 Novell, Inc (http://www.novell.c"
  },
  {
    "path": "corlib/System.Globalization/CultureInfo.cs",
    "chars": 6900,
    "preview": "#if !LOCALTEST\n\nusing System.Threading;\nusing System.Collections.Generic;\nusing System.IO;\n\nnamespace System.Globalizati"
  }
]

// ... and 505 more files (download for full content)

About this extraction

This page contains the full source code of the chrisdunelm/DotNetAnywhere GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 705 files (3.1 MB), approximately 843.1k tokens, and a symbol index with 2941 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!