API diff

mscorlib.dll
System.dll
System.Core.dll
System.Data.dll
System.IO.Compression.FileSystem.dll
Mono.Security.dll
Xamarin.TVOS.dll
MonoTouch.NUnitLite.dll


mscorlib.dll

Hide non-breaking changes

Namespace System

Type Changed: System.Object

Modified methods:

protected override virtual void ~Object ()

Type Changed: System.Tuple`1

Added interface:

	Runtime.CompilerServices.ITuple

Type Changed: System.Tuple`2

Added interface:

	Runtime.CompilerServices.ITuple

Type Changed: System.Tuple`3

Added interface:

	Runtime.CompilerServices.ITuple

Type Changed: System.Tuple`4

Added interface:

	Runtime.CompilerServices.ITuple

Type Changed: System.Tuple`5

Added interface:

	Runtime.CompilerServices.ITuple

Type Changed: System.Tuple`6

Added interface:

	Runtime.CompilerServices.ITuple

Type Changed: System.Tuple`7

Added interface:

	Runtime.CompilerServices.ITuple

Type Changed: System.Tuple`8

Added interface:

	Runtime.CompilerServices.ITuple

New Type System.TupleExtensions

public static class TupleExtensions {
	// methods
	public static void Deconstruct<T1> (System.Tuple<T1> value, T1 item1);
	public static void Deconstruct<T1, T2> (System.Tuple<T1,T2> value, T1 item1, T2 item2);
	public static void Deconstruct<T1, T2, T3> (System.Tuple<T1,T2,T3> value, T1 item1, T2 item2, T3 item3);
	public static void Deconstruct<T1, T2, T3, T4> (System.Tuple<T1,T2,T3,T4> value, T1 item1, T2 item2, T3 item3, T4 item4);
	public static void Deconstruct<T1, T2, T3, T4, T5> (System.Tuple<T1,T2,T3,T4,T5> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6> (System.Tuple<T1,T2,T3,T4,T5,T6> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7> (System.Tuple<T1,T2,T3,T4,T5,T6,T7> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10, T11 item11);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10, T11 item11, T12 item12);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10, T11 item11, T12 item12, T13 item13);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10, T11 item11, T12 item12, T13 item13, T14 item14);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15>>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10, T11 item11, T12 item12, T13 item13, T14 item14, T15 item15);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16>>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10, T11 item11, T12 item12, T13 item13, T14 item14, T15 item15, T16 item16);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17>>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10, T11 item11, T12 item12, T13 item13, T14 item14, T15 item15, T16 item16, T17 item17);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18>>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10, T11 item11, T12 item12, T13 item13, T14 item14, T15 item15, T16 item16, T17 item17, T18 item18);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19>>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10, T11 item11, T12 item12, T13 item13, T14 item14, T15 item15, T16 item16, T17 item17, T18 item18, T19 item19);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20>>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10, T11 item11, T12 item12, T13 item13, T14 item14, T15 item15, T16 item16, T17 item17, T18 item18, T19 item19, T20 item20);
	public static void Deconstruct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20,T21>>> value, T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8, T9 item9, T10 item10, T11 item11, T12 item12, T13 item13, T14 item14, T15 item15, T16 item16, T17 item17, T18 item18, T19 item19, T20 item20, T21 item21);
	public static System.Tuple<T1> ToTuple<T1> (System.ValueTuple<T1> value);
	public static System.Tuple<T1,T2> ToTuple<T1, T2> (System.ValueTuple<T1,T2> value);
	public static System.Tuple<T1,T2,T3> ToTuple<T1, T2, T3> (System.ValueTuple<T1,T2,T3> value);
	public static System.Tuple<T1,T2,T3,T4> ToTuple<T1, T2, T3, T4> (System.ValueTuple<T1,T2,T3,T4> value);
	public static System.Tuple<T1,T2,T3,T4,T5> ToTuple<T1, T2, T3, T4, T5> (System.ValueTuple<T1,T2,T3,T4,T5> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6> ToTuple<T1, T2, T3, T4, T5, T6> (System.ValueTuple<T1,T2,T3,T4,T5,T6> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7> ToTuple<T1, T2, T3, T4, T5, T6, T7> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15>>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15>>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16>>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16>>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17>>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16,T17>>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18>>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16,T17,T18>>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19>>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16,T17,T18,T19>>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20>>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16,T17,T18,T19,T20>>> value);
	public static System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20,T21>>> ToTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16,T17,T18,T19,T20,T21>>> value);
	public static System.ValueTuple<T1> ToValueTuple<T1> (System.Tuple<T1> value);
	public static System.ValueTuple<T1,T2> ToValueTuple<T1, T2> (System.Tuple<T1,T2> value);
	public static System.ValueTuple<T1,T2,T3> ToValueTuple<T1, T2, T3> (System.Tuple<T1,T2,T3> value);
	public static System.ValueTuple<T1,T2,T3,T4> ToValueTuple<T1, T2, T3, T4> (System.Tuple<T1,T2,T3,T4> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5> ToValueTuple<T1, T2, T3, T4, T5> (System.Tuple<T1,T2,T3,T4,T5> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6> ToValueTuple<T1, T2, T3, T4, T5, T6> (System.Tuple<T1,T2,T3,T4,T5,T6> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7> ToValueTuple<T1, T2, T3, T4, T5, T6, T7> (System.Tuple<T1,T2,T3,T4,T5,T6,T7> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15>>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15>>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16>>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16>>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16,T17>>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17>>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16,T17,T18>>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18>>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16,T17,T18,T19>>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19>>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16,T17,T18,T19,T20>>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20>>> value);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8,T9,T10,T11,T12,T13,T14,System.ValueTuple<T15,T16,T17,T18,T19,T20,T21>>> ToValueTuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> (System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20,T21>>> value);
}

New Type System.ValueTuple

public struct ValueTuple, Collections.IStructuralComparable, Collections.IStructuralEquatable, IComparable, System.IComparable<ValueTuple>, System.IEquatable<ValueTuple>, Runtime.CompilerServices.ITuple {
	// methods
	public virtual int CompareTo (ValueTuple other);
	public static ValueTuple Create ();
	public static System.ValueTuple<T1> Create<T1> (T1 item1);
	public static System.ValueTuple<T1,T2> Create<T1, T2> (T1 item1, T2 item2);
	public static System.ValueTuple<T1,T2,T3> Create<T1, T2, T3> (T1 item1, T2 item2, T3 item3);
	public static System.ValueTuple<T1,T2,T3,T4> Create<T1, T2, T3, T4> (T1 item1, T2 item2, T3 item3, T4 item4);
	public static System.ValueTuple<T1,T2,T3,T4,T5> Create<T1, T2, T3, T4, T5> (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6> Create<T1, T2, T3, T4, T5, T6> (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7> Create<T1, T2, T3, T4, T5, T6, T7> (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7);
	public static System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,System.ValueTuple<T8>> Create<T1, T2, T3, T4, T5, T6, T7, T8> (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8);
	public override bool Equals (object obj);
	public virtual bool Equals (ValueTuple other);
	public override int GetHashCode ();
	public override string ToString ();
}

New Type System.ValueTuple`1

public struct ValueTuple`1, Collections.IStructuralComparable, Collections.IStructuralEquatable, IComparable, System.IComparable<System.ValueTuple<T1>>, System.IEquatable<System.ValueTuple<T1>>, Runtime.CompilerServices.ITuple {
	// constructors
	public ValueTuple`1 (T1 item1);
	// fields
	public T1 Item1;
	// methods
	public virtual int CompareTo (System.ValueTuple<T1> other);
	public override bool Equals (object obj);
	public virtual bool Equals (System.ValueTuple<T1> other);
	public override int GetHashCode ();
	public override string ToString ();
}

New Type System.ValueTuple`2

public struct ValueTuple`2, Collections.IStructuralComparable, Collections.IStructuralEquatable, IComparable, System.IComparable<System.ValueTuple<T1,T2>>, System.IEquatable<System.ValueTuple<T1,T2>>, Runtime.CompilerServices.ITuple {
	// constructors
	public ValueTuple`2 (T1 item1, T2 item2);
	// fields
	public T1 Item1;
	public T2 Item2;
	// methods
	public virtual int CompareTo (System.ValueTuple<T1,T2> other);
	public override bool Equals (object obj);
	public virtual bool Equals (System.ValueTuple<T1,T2> other);
	public override int GetHashCode ();
	public override string ToString ();
}

New Type System.ValueTuple`3

public struct ValueTuple`3, Collections.IStructuralComparable, Collections.IStructuralEquatable, IComparable, System.IComparable<System.ValueTuple<T1,T2,T3>>, System.IEquatable<System.ValueTuple<T1,T2,T3>>, Runtime.CompilerServices.ITuple {
	// constructors
	public ValueTuple`3 (T1 item1, T2 item2, T3 item3);
	// fields
	public T1 Item1;
	public T2 Item2;
	public T3 Item3;
	// methods
	public virtual int CompareTo (System.ValueTuple<T1,T2,T3> other);
	public override bool Equals (object obj);
	public virtual bool Equals (System.ValueTuple<T1,T2,T3> other);
	public override int GetHashCode ();
	public override string ToString ();
}

New Type System.ValueTuple`4

public struct ValueTuple`4, Collections.IStructuralComparable, Collections.IStructuralEquatable, IComparable, System.IComparable<System.ValueTuple<T1,T2,T3,T4>>, System.IEquatable<System.ValueTuple<T1,T2,T3,T4>>, Runtime.CompilerServices.ITuple {
	// constructors
	public ValueTuple`4 (T1 item1, T2 item2, T3 item3, T4 item4);
	// fields
	public T1 Item1;
	public T2 Item2;
	public T3 Item3;
	public T4 Item4;
	// methods
	public virtual int CompareTo (System.ValueTuple<T1,T2,T3,T4> other);
	public override bool Equals (object obj);
	public virtual bool Equals (System.ValueTuple<T1,T2,T3,T4> other);
	public override int GetHashCode ();
	public override string ToString ();
}

New Type System.ValueTuple`5

public struct ValueTuple`5, Collections.IStructuralComparable, Collections.IStructuralEquatable, IComparable, System.IComparable<System.ValueTuple<T1,T2,T3,T4,T5>>, System.IEquatable<System.ValueTuple<T1,T2,T3,T4,T5>>, Runtime.CompilerServices.ITuple {
	// constructors
	public ValueTuple`5 (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5);
	// fields
	public T1 Item1;
	public T2 Item2;
	public T3 Item3;
	public T4 Item4;
	public T5 Item5;
	// methods
	public virtual int CompareTo (System.ValueTuple<T1,T2,T3,T4,T5> other);
	public override bool Equals (object obj);
	public virtual bool Equals (System.ValueTuple<T1,T2,T3,T4,T5> other);
	public override int GetHashCode ();
	public override string ToString ();
}

New Type System.ValueTuple`6

public struct ValueTuple`6, Collections.IStructuralComparable, Collections.IStructuralEquatable, IComparable, System.IComparable<System.ValueTuple<T1,T2,T3,T4,T5,T6>>, System.IEquatable<System.ValueTuple<T1,T2,T3,T4,T5,T6>>, Runtime.CompilerServices.ITuple {
	// constructors
	public ValueTuple`6 (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6);
	// fields
	public T1 Item1;
	public T2 Item2;
	public T3 Item3;
	public T4 Item4;
	public T5 Item5;
	public T6 Item6;
	// methods
	public virtual int CompareTo (System.ValueTuple<T1,T2,T3,T4,T5,T6> other);
	public override bool Equals (object obj);
	public virtual bool Equals (System.ValueTuple<T1,T2,T3,T4,T5,T6> other);
	public override int GetHashCode ();
	public override string ToString ();
}

New Type System.ValueTuple`7

public struct ValueTuple`7, Collections.IStructuralComparable, Collections.IStructuralEquatable, IComparable, System.IComparable<System.ValueTuple<T1,T2,T3,T4,T5,T6,T7>>, System.IEquatable<System.ValueTuple<T1,T2,T3,T4,T5,T6,T7>>, Runtime.CompilerServices.ITuple {
	// constructors
	public ValueTuple`7 (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7);
	// fields
	public T1 Item1;
	public T2 Item2;
	public T3 Item3;
	public T4 Item4;
	public T5 Item5;
	public T6 Item6;
	public T7 Item7;
	// methods
	public virtual int CompareTo (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7> other);
	public override bool Equals (object obj);
	public virtual bool Equals (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7> other);
	public override int GetHashCode ();
	public override string ToString ();
}

New Type System.ValueTuple`8

public struct ValueTuple`8, Collections.IStructuralComparable, Collections.IStructuralEquatable, IComparable, System.IComparable<System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>>, System.IEquatable<System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>>, Runtime.CompilerServices.ITuple {
	// constructors
	public ValueTuple`8 (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest rest);
	// fields
	public T1 Item1;
	public T2 Item2;
	public T3 Item3;
	public T4 Item4;
	public T5 Item5;
	public T6 Item6;
	public T7 Item7;
	public TRest Rest;
	// methods
	public virtual int CompareTo (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> other);
	public override bool Equals (object obj);
	public virtual bool Equals (System.ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> other);
	public override int GetHashCode ();
	public override string ToString ();
}

Namespace System.Runtime.CompilerServices

Type Changed: System.Runtime.CompilerServices.RuntimeHelpers

Added method:

	public static bool TryEnsureSufficientExecutionStack ();

New Type System.Runtime.CompilerServices.ITuple

public interface ITuple {
	// properties
	public virtual object Item { get; }
	public virtual int Length { get; }
}

New Type System.Runtime.CompilerServices.TupleElementNamesAttribute

public sealed class TupleElementNamesAttribute : System.Attribute {
	// constructors
	public TupleElementNamesAttribute (string[] transformNames);
	// properties
	public System.Collections.Generic.IList<string> TransformNames { get; }
}

Namespace System.Runtime.InteropServices

Type Changed: System.Runtime.InteropServices.Marshal

Added methods:

	public static string PtrToStringUTF8 (IntPtr ptr);
	public static string PtrToStringUTF8 (IntPtr ptr, int byteLen);
	public static IntPtr StringToAllocatedMemoryUTF8 (string s);
	public static void ZeroFreeCoTaskMemUTF8 (IntPtr s);

Type Changed: System.Runtime.InteropServices.UnmanagedType

Added value:

	LPUTF8Str = 48,

Namespace System.Security.Cryptography

Type Changed: System.Security.Cryptography.DSACryptoServiceProvider

Added methods:

	protected override byte[] HashData (System.IO.Stream data, HashAlgorithmName hashAlgorithm);
	protected override byte[] HashData (byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm);

Removed Type System.Security.Cryptography.IncrementalHash



System.dll

Hide non-breaking changes

Namespace System.IO

Type Changed: System.IO.FileSystemWatcher

Removed method:

	public virtual void Dispose ();

Namespace System.IO.Compression

Type Changed: System.IO.Compression.GZipStream

Modified methods:

public override System.IAsyncResult BeginRead (byte[] buffer array, int offset, int count, System.AsyncCallback cback asyncCallback, object state asyncState)
public override System.IAsyncResult BeginWrite (byte[] buffer array, int offset, int count, System.AsyncCallback cback asyncCallback, object state asyncState)
public override int EndRead (System.IAsyncResult async_result asyncResult)
public override void EndWrite (System.IAsyncResult async_result asyncResult)

Added methods:

	public override System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);
	public override System.Threading.Tasks.Task FlushAsync (System.Threading.CancellationToken cancellationToken);
	public override System.Threading.Tasks.Task<int> ReadAsync (byte[] array, int offset, int count, System.Threading.CancellationToken cancellationToken);
	public override int ReadByte ();
	public override System.Threading.Tasks.Task WriteAsync (byte[] array, int offset, int count, System.Threading.CancellationToken cancellationToken);

Namespace System.Net.Sockets

Type Changed: System.Net.Sockets.Socket

Modified methods:

public System.IAsyncResult BeginConnect (System.Net.IPAddress address, int port, System.AsyncCallback callback requestCallback, object state)
public System.IAsyncResult BeginReceive (byte[] buffer, int offset, int size, SocketFlags socket_flags socketFlags, System.AsyncCallback callback, object state)
public System.IAsyncResult BeginReceive (byte[] buffer, int offset, int size, SocketFlags flags socketFlags, out SocketError error errorCode, System.AsyncCallback callback, object state)
public System.IAsyncResult BeginSend (byte[] buffer, int offset, int size, SocketFlags socket_flags socketFlags, System.AsyncCallback callback, object state)
public int EndReceive (System.IAsyncResult result asyncResult)
public int EndSend (System.IAsyncResult result asyncResult)

Type Changed: System.Net.Sockets.TcpListener

Removed method:

	protected override void ~TcpListener ();

Type Changed: System.Net.Sockets.UdpClient

Removed method:

	protected override void ~UdpClient ();

New Type System.Net.Sockets.SocketClientAccessPolicyProtocol

[Serializable]
public enum SocketClientAccessPolicyProtocol {
	Http = 1,
	Tcp = 0,
}

Removed Namespace Mono.Security.Interface

Removed Type Mono.Security.Interface.Alert

Removed Type Mono.Security.Interface.AlertDescription

Removed Type Mono.Security.Interface.AlertLevel

Removed Type Mono.Security.Interface.CertificateValidationHelper

Removed Type Mono.Security.Interface.CipherAlgorithmType

Removed Type Mono.Security.Interface.CipherSuiteCode

Removed Type Mono.Security.Interface.ExchangeAlgorithmType

Removed Type Mono.Security.Interface.HashAlgorithmType

Removed Type Mono.Security.Interface.IBufferOffsetSize

Removed Type Mono.Security.Interface.ICertificateValidator

Removed Type Mono.Security.Interface.IMonoSslStream

Removed Type Mono.Security.Interface.IMonoTlsEventSink

Removed Type Mono.Security.Interface.MonoEncryptionPolicy

Removed Type Mono.Security.Interface.MonoLocalCertificateSelectionCallback

Removed Type Mono.Security.Interface.MonoRemoteCertificateValidationCallback

Removed Type Mono.Security.Interface.MonoSslPolicyErrors

Removed Type Mono.Security.Interface.MonoTlsConnectionInfo

Removed Type Mono.Security.Interface.MonoTlsProvider

Removed Type Mono.Security.Interface.MonoTlsProviderFactory

Removed Type Mono.Security.Interface.MonoTlsSettings

Removed Type Mono.Security.Interface.TlsException

Removed Type Mono.Security.Interface.TlsProtocolCode

Removed Type Mono.Security.Interface.TlsProtocols

Removed Type Mono.Security.Interface.ValidationResult

Removed Namespace Mono.Security.Protocol.Ntlm

Removed Type Mono.Security.Protocol.Ntlm.ChallengeResponse

Removed Type Mono.Security.Protocol.Ntlm.ChallengeResponse2

Removed Type Mono.Security.Protocol.Ntlm.MessageBase

Removed Type Mono.Security.Protocol.Ntlm.NtlmAuthLevel

Removed Type Mono.Security.Protocol.Ntlm.NtlmFlags

Removed Type Mono.Security.Protocol.Ntlm.NtlmSettings

Removed Type Mono.Security.Protocol.Ntlm.Type1Message

Removed Type Mono.Security.Protocol.Ntlm.Type2Message

Removed Type Mono.Security.Protocol.Ntlm.Type3Message



System.Core.dll

Hide non-breaking changes

Namespace System.Linq

Type Changed: System.Linq.Enumerable

Added methods:

	public static System.Collections.Generic.IEnumerable<TSource> SkipLast<TSource> (System.Collections.Generic.IEnumerable<TSource> source, int count);
	public static System.Collections.Generic.IEnumerable<TSource> TakeLast<TSource> (System.Collections.Generic.IEnumerable<TSource> source, int count);
	public static System.Collections.Generic.HashSet<TSource> ToHashSet<TSource> (System.Collections.Generic.IEnumerable<TSource> source);
	public static System.Collections.Generic.HashSet<TSource> ToHashSet<TSource> (System.Collections.Generic.IEnumerable<TSource> source, System.Collections.Generic.IEqualityComparer<TSource> comparer);

Type Changed: System.Linq.Queryable

Added methods:

	public static System.Linq.IQueryable<TSource> SkipLast<TSource> (System.Linq.IQueryable<TSource> source, int count);
	public static System.Linq.IQueryable<TSource> TakeLast<TSource> (System.Linq.IQueryable<TSource> source, int count);

Namespace System.Linq.Expressions

Type Changed: System.Linq.Expressions.DynamicExpression

Added property:

	public override bool CanReduce { get; }

Added method:

	public override Expression Reduce ();

Type Changed: System.Linq.Expressions.DynamicExpressionVisitor

Modified constructors:

protected public DynamicExpressionVisitor ()

Type Changed: System.Linq.Expressions.ElementInit

Added property:

	public virtual int ArgumentCount { get; }

Added method:

	public virtual Expression GetArgument (int index);

Type Changed: System.Linq.Expressions.IndexExpression

Added property:

	public virtual int ArgumentCount { get; }

Added method:

	public virtual Expression GetArgument (int index);

Type Changed: System.Linq.Expressions.InvocationExpression

Added property:

	public virtual int ArgumentCount { get; }

Added method:

	public virtual Expression GetArgument (int index);

Type Changed: System.Linq.Expressions.MethodCallExpression

Added property:

	public virtual int ArgumentCount { get; }

Added method:

	public virtual Expression GetArgument (int index);

Type Changed: System.Linq.Expressions.NewExpression

Added property:

	public virtual int ArgumentCount { get; }

Added method:

	public virtual Expression GetArgument (int index);

Namespace System.Runtime.CompilerServices

Type Changed: System.Runtime.CompilerServices.RuntimeOps

Added methods:

	[Obsolete ("do not use this method")]
	public static IRuntimeVariables CreateRuntimeVariables ();

	[Obsolete ("do not use this method")]
	public static IRuntimeVariables CreateRuntimeVariables (object[] data, long[] indexes);

	[Obsolete ("do not use this method")]
	public static IRuntimeVariables MergeRuntimeVariables (IRuntimeVariables first, IRuntimeVariables second, int[] indexes);

	[Obsolete ("do not use this method")]
	public static System.Linq.Expressions.Expression Quote (System.Linq.Expressions.Expression expression, object hoistedLocals, object[] locals);

New Type System.Runtime.CompilerServices.Closure

public sealed class Closure {
	// constructors
	public Closure (object[] constants, object[] locals);
	// fields
	public object[] Constants;
	public object[] Locals;
}

Namespace System.Security.Cryptography

New Type System.Security.Cryptography.SHA256CryptoServiceProvider

public sealed class SHA256CryptoServiceProvider : System.Security.Cryptography.SHA256, System.IDisposable, ICryptoTransform {
	// constructors
	public SHA256CryptoServiceProvider ();
	// methods
	protected override void Dispose (bool disposing);
	protected override void HashCore (byte[] array, int ibStart, int cbSize);
	protected override byte[] HashFinal ();
	public override void Initialize ();
}

New Type System.Security.Cryptography.SHA384CryptoServiceProvider

public sealed class SHA384CryptoServiceProvider : System.Security.Cryptography.SHA384, System.IDisposable, ICryptoTransform {
	// constructors
	public SHA384CryptoServiceProvider ();
	// methods
	protected override void Dispose (bool disposing);
	protected override void HashCore (byte[] array, int ibStart, int cbSize);
	protected override byte[] HashFinal ();
	public override void Initialize ();
}

New Type System.Security.Cryptography.SHA512CryptoServiceProvider

public sealed class SHA512CryptoServiceProvider : System.Security.Cryptography.SHA512, System.IDisposable, ICryptoTransform {
	// constructors
	public SHA512CryptoServiceProvider ();
	// methods
	protected override void Dispose (bool disposing);
	protected override void HashCore (byte[] array, int ibStart, int cbSize);
	protected override byte[] HashFinal ();
	public override void Initialize ();
}


System.Data.dll

Hide non-breaking changes

Namespace System.Data.Common

New Type System.Data.Common.DbColumn

public abstract class DbColumn {
	// constructors
	protected DbColumn ();
	// properties
	protected bool? AllowDBNull { get; set; }
	protected string BaseCatalogName { get; set; }
	protected string BaseColumnName { get; set; }
	protected string BaseSchemaName { get; set; }
	protected string BaseServerName { get; set; }
	protected string BaseTableName { get; set; }
	protected string ColumnName { get; set; }
	protected int? ColumnOrdinal { get; set; }
	protected int? ColumnSize { get; set; }
	protected System.Type DataType { get; set; }
	protected string DataTypeName { get; set; }
	protected bool? IsAliased { get; set; }
	protected bool? IsAutoIncrement { get; set; }
	protected bool? IsExpression { get; set; }
	protected bool? IsHidden { get; set; }
	protected bool? IsIdentity { get; set; }
	protected bool? IsKey { get; set; }
	protected bool? IsLong { get; set; }
	protected bool? IsReadOnly { get; set; }
	protected bool? IsUnique { get; set; }
	public virtual object Item { get; }
	protected int? NumericPrecision { get; set; }
	protected int? NumericScale { get; set; }
	protected string UdtAssemblyQualifiedName { get; set; }
}

New Type System.Data.Common.IDbColumnSchemaGenerator

public interface IDbColumnSchemaGenerator {
	// methods
	public virtual System.Collections.ObjectModel.ReadOnlyCollection<DbColumn> GetColumnSchema ();
}


System.IO.Compression.FileSystem.dll

Hide non-breaking changes

Namespace System.IO.Compression

Type Changed: System.IO.Compression.ZipFile

Added methods:

	public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, bool overwrite);
	public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding, bool overwrite);

Type Changed: System.IO.Compression.ZipFileExtensions

Added method:

	public static void ExtractToDirectory (ZipArchive source, string destinationDirectoryName, bool overwrite);


Mono.Security.dll

Hide non-breaking changes

Namespace Mono.Security.Interface

New Type Mono.Security.Interface.Alert

public class Alert {
	// constructors
	public Alert (AlertDescription description);
	public Alert (AlertLevel level, AlertDescription description);
	// properties
	public AlertDescription Description { get; }
	public bool IsCloseNotify { get; }
	public bool IsWarning { get; }
	public AlertLevel Level { get; }
	public string Message { get; }
	// methods
	public static string GetAlertMessage (AlertDescription description);
	public override string ToString ();
}

New Type Mono.Security.Interface.AlertDescription

[Serializable]
public enum AlertDescription {
	AccessDenied = 49,
	BadCertificate = 42,
	BadRecordMAC = 20,
	CertificateExpired = 45,
	CertificateRevoked = 44,
	CertificateUnknown = 46,
	CloseNotify = 0,
	DecodeError = 50,
	DecompressionFailure = 30,
	DecryptError = 51,
	DecryptionFailed_RESERVED = 21,
	ExportRestriction = 60,
	HandshakeFailure = 40,
	IlegalParameter = 47,
	InsuficientSecurity = 71,
	InternalError = 80,
	NoCertificate_RESERVED = 41,
	NoRenegotiation = 100,
	ProtocolVersion = 70,
	RecordOverflow = 22,
	UnexpectedMessage = 10,
	UnknownCA = 48,
	UnsupportedCertificate = 43,
	UnsupportedExtension = 110,
	UserCancelled = 90,
}

New Type Mono.Security.Interface.AlertLevel

[Serializable]
public enum AlertLevel {
	Fatal = 2,
	Warning = 1,
}

New Type Mono.Security.Interface.CertificateValidationHelper

public static class CertificateValidationHelper {
	// properties
	public static bool SupportsTrustAnchors { get; }
	public static bool SupportsX509Chain { get; }
	// methods
	public static ICertificateValidator GetValidator (MonoTlsSettings settings);
}

New Type Mono.Security.Interface.CipherAlgorithmType

[Serializable]
public enum CipherAlgorithmType {
	Aes128 = 1,
	Aes256 = 2,
	AesGcm128 = 3,
	AesGcm256 = 4,
	None = 0,
}

New Type Mono.Security.Interface.CipherSuiteCode

[Serializable]
public enum CipherSuiteCode {
	TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = 17,
	TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = 19,
	TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 50,
	TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = 64,
	TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = 162,
	TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 56,
	TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = 106,
	TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = 163,
	TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA = 68,
	TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 = 189,
	TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 = 49280,
	TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA = 135,
	TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 = 195,
	TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 = 49281,
	TLS_DHE_DSS_WITH_DES_CBC_SHA = 18,
	TLS_DHE_DSS_WITH_SEED_CBC_SHA = 153,
	TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = 143,
	TLS_DHE_PSK_WITH_AES_128_CBC_SHA = 144,
	TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 = 178,
	TLS_DHE_PSK_WITH_AES_128_CCM = 49318,
	TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 = 170,
	TLS_DHE_PSK_WITH_AES_256_CBC_SHA = 145,
	TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 = 179,
	TLS_DHE_PSK_WITH_AES_256_CCM = 49319,
	TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 = 171,
	TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49302,
	TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 49296,
	TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49303,
	TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 49297,
	TLS_DHE_PSK_WITH_ESTREAM_SALSA20_SHA1 = 58396,
	TLS_DHE_PSK_WITH_NULL_SHA = 45,
	TLS_DHE_PSK_WITH_NULL_SHA256 = 180,
	TLS_DHE_PSK_WITH_NULL_SHA384 = 181,
	TLS_DHE_PSK_WITH_RC4_128_SHA = 142,
	TLS_DHE_PSK_WITH_SALSA20_SHA1 = 58397,
	TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = 20,
	TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = 22,
	TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 51,
	TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 103,
	TLS_DHE_RSA_WITH_AES_128_CCM = 49310,
	TLS_DHE_RSA_WITH_AES_128_CCM_8 = 49314,
	TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = 158,
	TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 57,
	TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 107,
	TLS_DHE_RSA_WITH_AES_256_CCM = 49311,
	TLS_DHE_RSA_WITH_AES_256_CCM_8 = 49315,
	TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = 159,
	TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA = 69,
	TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 190,
	TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49276,
	TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA = 136,
	TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 196,
	TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49277,
	TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 52245,
	TLS_DHE_RSA_WITH_DES_CBC_SHA = 21,
	TLS_DHE_RSA_WITH_ESTREAM_SALSA20_SHA1 = 58398,
	TLS_DHE_RSA_WITH_SALSA20_SHA1 = 58399,
	TLS_DHE_RSA_WITH_SEED_CBC_SHA = 154,
	TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = 11,
	TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = 13,
	TLS_DH_DSS_WITH_AES_128_CBC_SHA = 48,
	TLS_DH_DSS_WITH_AES_128_CBC_SHA256 = 62,
	TLS_DH_DSS_WITH_AES_128_GCM_SHA256 = 164,
	TLS_DH_DSS_WITH_AES_256_CBC_SHA = 54,
	TLS_DH_DSS_WITH_AES_256_CBC_SHA256 = 104,
	TLS_DH_DSS_WITH_AES_256_GCM_SHA384 = 165,
	TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA = 66,
	TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 = 187,
	TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 = 49282,
	TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA = 133,
	TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 = 193,
	TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 = 49283,
	TLS_DH_DSS_WITH_DES_CBC_SHA = 12,
	TLS_DH_DSS_WITH_SEED_CBC_SHA = 151,
	TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = 14,
	TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = 16,
	TLS_DH_RSA_WITH_AES_128_CBC_SHA = 49,
	TLS_DH_RSA_WITH_AES_128_CBC_SHA256 = 63,
	TLS_DH_RSA_WITH_AES_128_GCM_SHA256 = 160,
	TLS_DH_RSA_WITH_AES_256_CBC_SHA = 55,
	TLS_DH_RSA_WITH_AES_256_CBC_SHA256 = 105,
	TLS_DH_RSA_WITH_AES_256_GCM_SHA384 = 161,
	TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA = 67,
	TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 188,
	TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49278,
	TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA = 134,
	TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 194,
	TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49279,
	TLS_DH_RSA_WITH_DES_CBC_SHA = 15,
	TLS_DH_RSA_WITH_SEED_CBC_SHA = 152,
	TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA = 25,
	TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 = 23,
	TLS_DH_anon_WITH_3DES_EDE_CBC_SHA = 27,
	TLS_DH_anon_WITH_AES_128_CBC_SHA = 52,
	TLS_DH_anon_WITH_AES_128_CBC_SHA256 = 108,
	TLS_DH_anon_WITH_AES_128_GCM_SHA256 = 166,
	TLS_DH_anon_WITH_AES_256_CBC_SHA = 58,
	TLS_DH_anon_WITH_AES_256_CBC_SHA256 = 109,
	TLS_DH_anon_WITH_AES_256_GCM_SHA384 = 167,
	TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA = 70,
	TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 = 191,
	TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 = 49284,
	TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA = 137,
	TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 = 197,
	TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 = 49285,
	TLS_DH_anon_WITH_DES_CBC_SHA = 26,
	TLS_DH_anon_WITH_RC4_128_MD5 = 24,
	TLS_DH_anon_WITH_SEED_CBC_SHA = 155,
	TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA = 49160,
	TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 49161,
	TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = 49187,
	TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 49195,
	TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 49162,
	TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = 49188,
	TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 49196,
	TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = 49266,
	TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = 49286,
	TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = 49267,
	TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = 49287,
	TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 52244,
	TLS_ECDHE_ECDSA_WITH_ESTREAM_SALSA20_SHA1 = 58388,
	TLS_ECDHE_ECDSA_WITH_NULL_SHA = 49158,
	TLS_ECDHE_ECDSA_WITH_RC4_128_SHA = 49159,
	TLS_ECDHE_ECDSA_WITH_SALSA20_SHA1 = 58389,
	TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA = 49204,
	TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA = 49205,
	TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 = 49207,
	TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA = 49206,
	TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 = 49208,
	TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49306,
	TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49307,
	TLS_ECDHE_PSK_WITH_ESTREAM_SALSA20_SHA1 = 58392,
	TLS_ECDHE_PSK_WITH_NULL_SHA = 49209,
	TLS_ECDHE_PSK_WITH_NULL_SHA256 = 49210,
	TLS_ECDHE_PSK_WITH_NULL_SHA384 = 49211,
	TLS_ECDHE_PSK_WITH_RC4_128_SHA = 49203,
	TLS_ECDHE_PSK_WITH_SALSA20_SHA1 = 58393,
	TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA = 49170,
	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 49171,
	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = 49191,
	TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 49199,
	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 49172,
	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = 49192,
	TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 49200,
	TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 49270,
	TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49290,
	TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 = 49271,
	TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49291,
	TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 52243,
	TLS_ECDHE_RSA_WITH_ESTREAM_SALSA20_SHA1 = 58386,
	TLS_ECDHE_RSA_WITH_NULL_SHA = 49168,
	TLS_ECDHE_RSA_WITH_RC4_128_SHA = 49169,
	TLS_ECDHE_RSA_WITH_SALSA20_SHA1 = 58387,
	TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA = 49155,
	TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA = 49156,
	TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 = 49189,
	TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 = 49197,
	TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA = 49157,
	TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 = 49190,
	TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 = 49198,
	TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = 49268,
	TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = 49288,
	TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = 49269,
	TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = 49289,
	TLS_ECDH_ECDSA_WITH_NULL_SHA = 49153,
	TLS_ECDH_ECDSA_WITH_RC4_128_SHA = 49154,
	TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA = 49165,
	TLS_ECDH_RSA_WITH_AES_128_CBC_SHA = 49166,
	TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 = 49193,
	TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 = 49201,
	TLS_ECDH_RSA_WITH_AES_256_CBC_SHA = 49167,
	TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 = 49194,
	TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 = 49202,
	TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 49272,
	TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49292,
	TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 = 49273,
	TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49293,
	TLS_ECDH_RSA_WITH_NULL_SHA = 49163,
	TLS_ECDH_RSA_WITH_RC4_128_SHA = 49164,
	TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA = 49175,
	TLS_ECDH_anon_WITH_AES_128_CBC_SHA = 49176,
	TLS_ECDH_anon_WITH_AES_256_CBC_SHA = 49177,
	TLS_ECDH_anon_WITH_NULL_SHA = 49173,
	TLS_ECDH_anon_WITH_RC4_128_SHA = 49174,
	TLS_EMPTY_RENEGOTIATION_INFO_SCSV = 255,
	TLS_FALLBACK_SCSV = 22016,
	TLS_NULL_WITH_NULL_NULL = 0,
	TLS_PSK_DHE_WITH_AES_128_CCM_8 = 49322,
	TLS_PSK_DHE_WITH_AES_256_CCM_8 = 49323,
	TLS_PSK_WITH_3DES_EDE_CBC_SHA = 139,
	TLS_PSK_WITH_AES_128_CBC_SHA = 140,
	TLS_PSK_WITH_AES_128_CBC_SHA256 = 174,
	TLS_PSK_WITH_AES_128_CCM = 49316,
	TLS_PSK_WITH_AES_128_CCM_8 = 49320,
	TLS_PSK_WITH_AES_128_GCM_SHA256 = 168,
	TLS_PSK_WITH_AES_256_CBC_SHA = 141,
	TLS_PSK_WITH_AES_256_CBC_SHA384 = 175,
	TLS_PSK_WITH_AES_256_CCM = 49317,
	TLS_PSK_WITH_AES_256_CCM_8 = 49321,
	TLS_PSK_WITH_AES_256_GCM_SHA384 = 169,
	TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49300,
	TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 49294,
	TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49301,
	TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 49295,
	TLS_PSK_WITH_ESTREAM_SALSA20_SHA1 = 58390,
	TLS_PSK_WITH_NULL_SHA = 44,
	TLS_PSK_WITH_NULL_SHA256 = 176,
	TLS_PSK_WITH_NULL_SHA384 = 177,
	TLS_PSK_WITH_RC4_128_SHA = 138,
	TLS_PSK_WITH_SALSA20_SHA1 = 58391,
	TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = 8,
	TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = 6,
	TLS_RSA_EXPORT_WITH_RC4_40_MD5 = 3,
	TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = 147,
	TLS_RSA_PSK_WITH_AES_128_CBC_SHA = 148,
	TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 = 182,
	TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 = 172,
	TLS_RSA_PSK_WITH_AES_256_CBC_SHA = 149,
	TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 = 183,
	TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 = 173,
	TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 49304,
	TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 49298,
	TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 49305,
	TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 49299,
	TLS_RSA_PSK_WITH_ESTREAM_SALSA20_SHA1 = 58394,
	TLS_RSA_PSK_WITH_NULL_SHA = 46,
	TLS_RSA_PSK_WITH_NULL_SHA256 = 184,
	TLS_RSA_PSK_WITH_NULL_SHA384 = 185,
	TLS_RSA_PSK_WITH_RC4_128_SHA = 146,
	TLS_RSA_PSK_WITH_SALSA20_SHA1 = 58395,
	TLS_RSA_WITH_3DES_EDE_CBC_SHA = 10,
	TLS_RSA_WITH_AES_128_CBC_SHA = 47,
	TLS_RSA_WITH_AES_128_CBC_SHA256 = 60,
	TLS_RSA_WITH_AES_128_CCM = 49308,
	TLS_RSA_WITH_AES_128_CCM_8 = 49312,
	TLS_RSA_WITH_AES_128_GCM_SHA256 = 156,
	TLS_RSA_WITH_AES_256_CBC_SHA = 53,
	TLS_RSA_WITH_AES_256_CBC_SHA256 = 61,
	TLS_RSA_WITH_AES_256_CCM = 49309,
	TLS_RSA_WITH_AES_256_CCM_8 = 49313,
	TLS_RSA_WITH_AES_256_GCM_SHA384 = 157,
	TLS_RSA_WITH_CAMELLIA_128_CBC_SHA = 65,
	TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 186,
	TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 49274,
	TLS_RSA_WITH_CAMELLIA_256_CBC_SHA = 132,
	TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 192,
	TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 49275,
	TLS_RSA_WITH_DES_CBC_SHA = 9,
	TLS_RSA_WITH_ESTREAM_SALSA20_SHA1 = 58384,
	TLS_RSA_WITH_IDEA_CBC_SHA = 7,
	TLS_RSA_WITH_NULL_MD5 = 1,
	TLS_RSA_WITH_NULL_SHA = 2,
	TLS_RSA_WITH_NULL_SHA256 = 59,
	TLS_RSA_WITH_RC4_128_MD5 = 4,
	TLS_RSA_WITH_RC4_128_SHA = 5,
	TLS_RSA_WITH_SALSA20_SHA1 = 58385,
	TLS_RSA_WITH_SEED_CBC_SHA = 150,
	TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA = 49180,
	TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA = 49183,
	TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA = 49186,
	TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA = 49179,
	TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA = 49182,
	TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA = 49185,
	TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA = 49178,
	TLS_SRP_SHA_WITH_AES_128_CBC_SHA = 49181,
	TLS_SRP_SHA_WITH_AES_256_CBC_SHA = 49184,
}

New Type Mono.Security.Interface.ExchangeAlgorithmType

[Serializable]
public enum ExchangeAlgorithmType {
	Dhe = 1,
	EcDhe = 3,
	None = 0,
	Rsa = 2,
}

New Type Mono.Security.Interface.HashAlgorithmType

[Serializable]
public enum HashAlgorithmType {
	Md5 = 1,
	Md5Sha1 = 254,
	None = 0,
	Sha1 = 2,
	Sha224 = 3,
	Sha256 = 4,
	Sha384 = 5,
	Sha512 = 6,
	Unknown = 255,
}

New Type Mono.Security.Interface.IBufferOffsetSize

public interface IBufferOffsetSize {
	// properties
	public virtual byte[] Buffer { get; }
	public virtual int Offset { get; }
	public virtual int Size { get; }
}

New Type Mono.Security.Interface.ICertificateValidator

public interface ICertificateValidator {
	// properties
	public virtual MonoTlsSettings Settings { get; }
	// methods
	public virtual bool SelectClientCertificate (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection localCertificates, System.Security.Cryptography.X509Certificates.X509Certificate remoteCertificate, string[] acceptableIssuers, System.Security.Cryptography.X509Certificates.X509Certificate clientCertificate);
	public virtual ValidationResult ValidateCertificate (string targetHost, bool serverMode, System.Security.Cryptography.X509Certificates.X509CertificateCollection certificates);
}

New Type Mono.Security.Interface.IMonoSslStream

public interface IMonoSslStream : System.IDisposable {
	// properties
	public virtual System.Net.Security.AuthenticatedStream AuthenticatedStream { get; }
	public virtual bool CanRead { get; }
	public virtual bool CanTimeout { get; }
	public virtual bool CanWrite { get; }
	public virtual bool CheckCertRevocationStatus { get; }
	public virtual System.Security.Authentication.CipherAlgorithmType CipherAlgorithm { get; }
	public virtual int CipherStrength { get; }
	public virtual System.Security.Authentication.HashAlgorithmType HashAlgorithm { get; }
	public virtual int HashStrength { get; }
	public virtual System.Security.Cryptography.X509Certificates.X509Certificate InternalLocalCertificate { get; }
	public virtual bool IsAuthenticated { get; }
	public virtual bool IsEncrypted { get; }
	public virtual bool IsMutuallyAuthenticated { get; }
	public virtual bool IsServer { get; }
	public virtual bool IsSigned { get; }
	public virtual System.Security.Authentication.ExchangeAlgorithmType KeyExchangeAlgorithm { get; }
	public virtual int KeyExchangeStrength { get; }
	public virtual long Length { get; }
	public virtual System.Security.Cryptography.X509Certificates.X509Certificate LocalCertificate { get; }
	public virtual long Position { get; }
	public virtual MonoTlsProvider Provider { get; }
	public virtual int ReadTimeout { get; set; }
	public virtual System.Security.Cryptography.X509Certificates.X509Certificate RemoteCertificate { get; }
	public virtual System.Security.Authentication.SslProtocols SslProtocol { get; }
	public virtual System.Net.TransportContext TransportContext { get; }
	public virtual int WriteTimeout { get; set; }
	// methods
	public virtual void AuthenticateAsClient (string targetHost);
	public virtual void AuthenticateAsClient (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation);
	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (string targetHost);
	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation);
	public virtual void AuthenticateAsServer (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate);
	public virtual void AuthenticateAsServer (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation);
	public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate);
	public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation);
	public virtual System.IAsyncResult BeginAuthenticateAsClient (string targetHost, System.AsyncCallback asyncCallback, object asyncState);
	public virtual System.IAsyncResult BeginAuthenticateAsClient (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState);
	public virtual System.IAsyncResult BeginAuthenticateAsServer (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, System.AsyncCallback asyncCallback, object asyncState);
	public virtual System.IAsyncResult BeginAuthenticateAsServer (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState);
	public virtual System.IAsyncResult BeginRead (byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState);
	public virtual System.IAsyncResult BeginWrite (byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState);
	public virtual void EndAuthenticateAsClient (System.IAsyncResult asyncResult);
	public virtual void EndAuthenticateAsServer (System.IAsyncResult asyncResult);
	public virtual int EndRead (System.IAsyncResult asyncResult);
	public virtual void EndWrite (System.IAsyncResult asyncResult);
	public virtual void Flush ();
	public virtual MonoTlsConnectionInfo GetConnectionInfo ();
	public virtual int Read (byte[] buffer, int offset, int count);
	public virtual void SetLength (long value);
	public virtual void Write (byte[] buffer);
	public virtual void Write (byte[] buffer, int offset, int count);
}

New Type Mono.Security.Interface.IMonoTlsEventSink

public interface IMonoTlsEventSink {
	// methods
	public virtual void Error (System.Exception exception);
	public virtual void ReceivedCloseNotify ();
}

New Type Mono.Security.Interface.MonoEncryptionPolicy

[Serializable]
public enum MonoEncryptionPolicy {
	AllowNoEncryption = 1,
	NoEncryption = 2,
	RequireEncryption = 0,
}

New Type Mono.Security.Interface.MonoLocalCertificateSelectionCallback

public sealed delegate MonoLocalCertificateSelectionCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public MonoLocalCertificateSelectionCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection localCertificates, System.Security.Cryptography.X509Certificates.X509Certificate remoteCertificate, string[] acceptableIssuers, System.AsyncCallback callback, object object);
	public virtual System.Security.Cryptography.X509Certificates.X509Certificate EndInvoke (System.IAsyncResult result);
	public virtual System.Security.Cryptography.X509Certificates.X509Certificate Invoke (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection localCertificates, System.Security.Cryptography.X509Certificates.X509Certificate remoteCertificate, string[] acceptableIssuers);
}

New Type Mono.Security.Interface.MonoRemoteCertificateValidationCallback

public sealed delegate MonoRemoteCertificateValidationCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public MonoRemoteCertificateValidationCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (string targetHost, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, MonoSslPolicyErrors sslPolicyErrors, System.AsyncCallback callback, object object);
	public virtual bool EndInvoke (System.IAsyncResult result);
	public virtual bool Invoke (string targetHost, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, MonoSslPolicyErrors sslPolicyErrors);
}

New Type Mono.Security.Interface.MonoSslPolicyErrors

[Serializable]
[Flags]
public enum MonoSslPolicyErrors {
	None = 0,
	RemoteCertificateChainErrors = 4,
	RemoteCertificateNameMismatch = 2,
	RemoteCertificateNotAvailable = 1,
}

New Type Mono.Security.Interface.MonoTlsConnectionInfo

public class MonoTlsConnectionInfo {
	// constructors
	public MonoTlsConnectionInfo ();
	// properties
	public CipherAlgorithmType CipherAlgorithmType { get; set; }
	public CipherSuiteCode CipherSuiteCode { get; set; }
	public ExchangeAlgorithmType ExchangeAlgorithmType { get; set; }
	public HashAlgorithmType HashAlgorithmType { get; set; }
	public string PeerDomainName { get; set; }
	public TlsProtocols ProtocolVersion { get; set; }
	// methods
	public override string ToString ();
}

New Type Mono.Security.Interface.MonoTlsProvider

public abstract class MonoTlsProvider {
	// properties
	public virtual System.Guid ID { get; }
	public virtual string Name { get; }
	public virtual System.Security.Authentication.SslProtocols SupportedProtocols { get; }
	public virtual bool SupportsConnectionInfo { get; }
	public virtual bool SupportsMonoExtensions { get; }
	public virtual bool SupportsSslStream { get; }
	// methods
	public virtual IMonoSslStream CreateSslStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen, MonoTlsSettings settings);
}

New Type Mono.Security.Interface.MonoTlsProviderFactory

public static class MonoTlsProviderFactory {
	// properties
	public static bool IsInitialized { get; }
	// methods
	public static System.Net.HttpListener CreateHttpListener (System.Security.Cryptography.X509Certificates.X509Certificate certificate, MonoTlsProvider provider, MonoTlsSettings settings);
	public static System.Net.HttpWebRequest CreateHttpsRequest (System.Uri requestUri, MonoTlsProvider provider, MonoTlsSettings settings);

	[Obsolete ("Use GetProvider() instead.")]
	public static MonoTlsProvider GetDefaultProvider ();
	public static IMonoSslStream GetMonoSslStream (System.Net.Security.SslStream stream);
	public static MonoTlsProvider GetProvider ();
	public static MonoTlsProvider GetProvider (string provider);
	public static void Initialize ();
	public static void Initialize (string provider);
	public static bool IsProviderSupported (string provider);

	[Obsolete ("Use Initialize(string provider) instead.")]
	public static void SetDefaultProvider (string name);
}

New Type Mono.Security.Interface.MonoTlsSettings

public sealed class MonoTlsSettings {
	// constructors
	public MonoTlsSettings ();
	// properties
	public bool CallbackNeedsCertificateChain { get; set; }

	[Obsolete ("Do not use outside System.dll!")]
	public ICertificateValidator CertificateValidator { get; }
	public bool CheckCertificateName { get; set; }
	public bool CheckCertificateRevocationStatus { get; set; }
	public MonoLocalCertificateSelectionCallback ClientCertificateSelectionCallback { get; set; }
	public static MonoTlsSettings DefaultSettings { get; set; }
	public CipherSuiteCode[] EnabledCiphers { get; set; }
	public TlsProtocols? EnabledProtocols { get; set; }
	public MonoRemoteCertificateValidationCallback RemoteCertificateValidationCallback { get; set; }
	public bool SkipSystemValidators { get; set; }
	public System.Security.Cryptography.X509Certificates.X509CertificateCollection TrustAnchors { get; set; }
	public bool? UseServicePointManagerCallback { get; set; }
	public object UserSettings { get; set; }
	// methods
	public MonoTlsSettings Clone ();

	[Obsolete ("Do not use outside System.dll!")]
	public MonoTlsSettings CloneWithValidator (ICertificateValidator validator);
	public static MonoTlsSettings CopyDefaultSettings ();
}

New Type Mono.Security.Interface.TlsException

public sealed class TlsException : System.Exception, System.Runtime.Serialization.ISerializable {
	// constructors
	public TlsException (Alert alert);
	public TlsException (AlertDescription description);
	public TlsException (Alert alert, string message);
	public TlsException (AlertDescription description, string message);
	public TlsException (AlertLevel level, AlertDescription description);
	public TlsException (AlertDescription description, string format, object[] args);
	// properties
	public Alert Alert { get; }
}

New Type Mono.Security.Interface.TlsProtocolCode

[Serializable]
public enum TlsProtocolCode {
	Tls10 = 769,
	Tls11 = 770,
	Tls12 = 771,
}

New Type Mono.Security.Interface.TlsProtocols

[Serializable]
[Flags]
public enum TlsProtocols {
	ClientMask = 2688,
	ServerMask = 1344,
	Tls10 = 192,
	Tls10Client = 128,
	Tls10Server = 64,
	Tls11 = 768,
	Tls11Client = 512,
	Tls11Server = 256,
	Tls12 = 3072,
	Tls12Client = 2048,
	Tls12Server = 1024,
	Zero = 0,
}

New Type Mono.Security.Interface.ValidationResult

public class ValidationResult {
	// constructors
	public ValidationResult (bool trusted, bool user_denied, int error_code, MonoSslPolicyErrors? policy_errors);
	// properties
	public int ErrorCode { get; }
	public MonoSslPolicyErrors? PolicyErrors { get; }
	public bool Trusted { get; }
	public bool UserDenied { get; }
}

New Namespace Mono.Security.Protocol.Ntlm

New Type Mono.Security.Protocol.Ntlm.ChallengeResponse

public class ChallengeResponse : System.IDisposable {
	// constructors
	public ChallengeResponse ();
	public ChallengeResponse (string password, byte[] challenge);
	// properties
	public byte[] Challenge { get; set; }
	public byte[] LM { get; }
	public byte[] NT { get; }
	public string Password { get; set; }
	// methods
	public virtual void Dispose ();
	protected override void ~ChallengeResponse ();
}

New Type Mono.Security.Protocol.Ntlm.ChallengeResponse2

public static class ChallengeResponse2 {
	// methods
	public static void Compute (Type2Message type2, NtlmAuthLevel level, string username, string password, string domain, byte[] lm, byte[] ntlm);
}

New Type Mono.Security.Protocol.Ntlm.MessageBase

public abstract class MessageBase {
	// constructors
	protected MessageBase (int messageType);
	// properties
	public NtlmFlags Flags { get; set; }
	public int Type { get; }
	// methods
	protected bool CheckHeader (byte[] message);
	protected virtual void Decode (byte[] message);
	public virtual byte[] GetBytes ();
	protected byte[] PrepareMessage (int messageSize);
}

New Type Mono.Security.Protocol.Ntlm.NtlmAuthLevel

[Serializable]
public enum NtlmAuthLevel {
	LM_and_NTLM = 0,
	LM_and_NTLM_and_try_NTLMv2_Session = 1,
	NTLM_only = 2,
	NTLMv2_only = 3,
}

New Type Mono.Security.Protocol.Ntlm.NtlmFlags

[Serializable]
[Flags]
public enum NtlmFlags {
	Negotiate128 = 536870912,
	Negotiate56 = -2147483648,
	NegotiateAlwaysSign = 32768,
	NegotiateDomainSupplied = 4096,
	NegotiateNtlm = 512,
	NegotiateNtlm2Key = 524288,
	NegotiateOem = 2,
	NegotiateUnicode = 1,
	NegotiateWorkstationSupplied = 8192,
	RequestTarget = 4,
}

New Type Mono.Security.Protocol.Ntlm.NtlmSettings

public static class NtlmSettings {
	// properties
	public static NtlmAuthLevel DefaultAuthLevel { get; set; }
}

New Type Mono.Security.Protocol.Ntlm.Type1Message

public class Type1Message : Mono.Security.Protocol.Ntlm.MessageBase {
	// constructors
	public Type1Message ();
	public Type1Message (byte[] message);
	// properties
	public string Domain { get; set; }
	public string Host { get; set; }
	// methods
	protected override void Decode (byte[] message);
	public override byte[] GetBytes ();
}

New Type Mono.Security.Protocol.Ntlm.Type2Message

public class Type2Message : Mono.Security.Protocol.Ntlm.MessageBase {
	// constructors
	public Type2Message ();
	public Type2Message (byte[] message);
	// properties
	public byte[] Nonce { get; set; }
	public byte[] TargetInfo { get; }
	public string TargetName { get; }
	// methods
	protected override void Decode (byte[] message);
	public override byte[] GetBytes ();
	protected override void ~Type2Message ();
}

New Type Mono.Security.Protocol.Ntlm.Type3Message

public class Type3Message : Mono.Security.Protocol.Ntlm.MessageBase {
	// constructors

	[Obsolete ("Use of this API is highly discouraged, it selects legacy-mode LM/NTLM authentication, which sends your password in very weak encryption over the wire even if the server supports the more secure NTLMv2 / NTLMv2 Session. You need to use the new `Type3Message (Type2Message)' constructor to use the more secure NTLMv2 / NTLMv2 Session authentication modes. These require the Type 2 message from the server to compute the response.")]
	public Type3Message ();
	public Type3Message (Type2Message type2);
	public Type3Message (byte[] message);
	// properties

	[Obsolete ("Use of this API is highly discouraged, it selects legacy-mode LM/NTLM authentication, which sends your password in very weak encryption over the wire even if the server supports the more secure NTLMv2 / NTLMv2 Session. You need to use the new `Type3Message (Type2Message)' constructor to use the more secure NTLMv2 / NTLMv2 Session authentication modes. These require the Type 2 message from the server to compute the response.")]
	public byte[] Challenge { get; set; }

	[Obsolete ("Use NtlmSettings.DefaultAuthLevel")]
	public static NtlmAuthLevel DefaultAuthLevel { get; set; }
	public string Domain { get; set; }
	public string Host { get; set; }
	public byte[] LM { get; }
	public NtlmAuthLevel Level { get; set; }
	public byte[] NT { get; set; }
	public string Password { get; set; }
	public string Username { get; set; }
	// methods
	protected override void Decode (byte[] message);
	public override byte[] GetBytes ();
	protected override void ~Type3Message ();
}


Xamarin.TVOS.dll

Hide non-breaking changes

Namespace AVFoundation

Type Changed: AVFoundation.AVAudioPlayerNode

Added methods:

	public virtual System.Threading.Tasks.Task ScheduleBufferAsync (AVAudioPcmBuffer buffer);
	public virtual System.Threading.Tasks.Task ScheduleBufferAsync (AVAudioPcmBuffer buffer, AVAudioTime when, AVAudioPlayerNodeBufferOptions options);
	public virtual System.Threading.Tasks.Task ScheduleFileAsync (AVAudioFile file, AVAudioTime when);
	public virtual System.Threading.Tasks.Task ScheduleSegmentAsync (AVAudioFile file, long startFrame, uint numberFrames, AVAudioTime when);

Type Changed: AVFoundation.AVAudioSessionInterruptionEventArgs

Added property:

	public bool? WasSuspended { get; }

Type Changed: AVFoundation.AVAudioUnit

Added method:

	public static System.Threading.Tasks.Task<AVAudioUnit> FromComponentDescriptionAsync (AudioUnit.AudioComponentDescription audioComponentDescription, AudioUnit.AudioComponentInstantiationOptions options);

Namespace AudioUnit

Type Changed: AudioUnit.AUAudioUnit

Added method:

	public static System.Threading.Tasks.Task<AUAudioUnit> FromComponentDescriptionAsync (AudioComponentDescription componentDescription, AudioComponentInstantiationOptions options);

Namespace CoreGraphics

Type Changed: CoreGraphics.CGRect

Added properties:

	public static CGRect Infinite { get; }
	public static CGRect Null { get; }

Namespace Foundation

Type Changed: Foundation.NSExtensionContext

Added method:

	public virtual System.Threading.Tasks.Task<bool> CompleteRequestAsync (NSExtensionItem[] returningItems);

Type Changed: Foundation.NSFileVersion

Added method:

	public static System.Threading.Tasks.Task<NSFileVersion[]> GetNonlocalVersionsAsync (NSUrl url);

Type Changed: Foundation.NSHttpCookieStorage

Added method:

	public virtual System.Threading.Tasks.Task<NSHttpCookie[]> GetCookiesForTaskAsync (NSUrlSessionTask task);

Type Changed: Foundation.NSItemProvider

Added methods:

	public virtual System.Threading.Tasks.Task<NSObject> LoadItemAsync (string typeIdentifier, NSDictionary options);
	public virtual System.Threading.Tasks.Task<NSObject> LoadPreviewImageAsync (NSDictionary options);

Type Changed: Foundation.NSString

Added methods:

	public virtual void GetParagraphPositions (uint paragraphStartPosition, uint paragraphEndPosition, uint contentsEndPosition, NSRange range);
	public virtual NSRange GetParagraphRange (NSRange range);

Type Changed: Foundation.NSUrlCredentialStorage

Added methods:

	public virtual System.Threading.Tasks.Task<NSDictionary> GetCredentialsAsync (NSUrlProtectionSpace protectionSpace, NSUrlSessionTask task);
	public virtual System.Threading.Tasks.Task<NSUrlCredential> GetDefaultCredentialAsync (NSUrlProtectionSpace space, NSUrlSessionTask task);

Namespace GameController

Type Changed: GameController.GCController

Added method:

	public static System.Threading.Tasks.Task StartWirelessControllerDiscoveryAsync ();

Namespace GameKit

Type Changed: GameKit.GKAchievement

Added methods:

	public virtual System.Threading.Tasks.Task<GKChallengeComposeResult> ChallengeComposeControllerAsync (string message, GKPlayer[] players);
	public virtual System.Threading.Tasks.Task<GKChallengeComposeResult> ChallengeComposeControllerAsync (string message, GKPlayer[] players, UIKit.UIViewController result);

Type Changed: GameKit.GKLocalPlayer

Added method:

	public virtual System.Threading.Tasks.Task<GKIdentityVerificationSignatureResult> GenerateIdentityVerificationSignatureAsync ();

Type Changed: GameKit.GKMatch

Added method:

	public virtual System.Threading.Tasks.Task<GKPlayer> ChooseBestHostingPlayerAsync ();

Type Changed: GameKit.GKScore

Added methods:

	public virtual System.Threading.Tasks.Task<GKChallengeComposeResult> ChallengeComposeControllerAsync (string message, GKPlayer[] players);
	public virtual System.Threading.Tasks.Task<GKChallengeComposeResult> ChallengeComposeControllerAsync (string message, GKPlayer[] players, UIKit.UIViewController result);

New Type GameKit.GKChallengeComposeResult

public class GKChallengeComposeResult {
	// constructors
	public GKChallengeComposeResult (UIKit.UIViewController composeController, bool issuedChallenge, string[] sentPlayerIDs);
	// properties
	public UIKit.UIViewController ComposeController { get; set; }
	public bool IssuedChallenge { get; set; }
	public string[] SentPlayerIDs { get; set; }
}

New Type GameKit.GKIdentityVerificationSignatureResult

public class GKIdentityVerificationSignatureResult {
	// constructors
	public GKIdentityVerificationSignatureResult (Foundation.NSUrl publicKeyUrl, Foundation.NSData signature, Foundation.NSData salt, ulong timestamp);
	// properties
	public Foundation.NSUrl PublicKeyUrl { get; set; }
	public Foundation.NSData Salt { get; set; }
	public Foundation.NSData Signature { get; set; }
	public ulong Timestamp { get; set; }
}

Namespace MapKit

Type Changed: MapKit.MKDirections

Added methods:

	public virtual System.Threading.Tasks.Task<MKDirectionsResponse> CalculateDirectionsAsync ();
	public virtual System.Threading.Tasks.Task<MKETAResponse> CalculateETAAsync ();

Type Changed: MapKit.MKLocalSearchRequest

Added constructor:

	public MKLocalSearchRequest (MKLocalSearchCompletion completion);

Type Changed: MapKit.MKMapSnapshotter

Added methods:

	public virtual System.Threading.Tasks.Task<MKMapSnapshot> StartAsync ();
	public virtual System.Threading.Tasks.Task<MKMapSnapshot> StartAsync (CoreFoundation.DispatchQueue queue);

Namespace MetalKit

Type Changed: MetalKit.MTKTextureLoader

Added methods:

	public System.Threading.Tasks.Task<Metal.IMTLTexture> FromCGImageAsync (CoreGraphics.CGImage cgImage, MTKTextureLoaderOptions options);
	public System.Threading.Tasks.Task<Metal.IMTLTexture> FromDataAsync (Foundation.NSData data, MTKTextureLoaderOptions options);
	public virtual System.Threading.Tasks.Task<Metal.IMTLTexture> FromNameAsync (string name, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary options);
	public System.Threading.Tasks.Task<Metal.IMTLTexture> FromNameAsync (string name, nfloat scaleFactor, Foundation.NSBundle bundle, MTKTextureLoaderOptions options);
	public virtual System.Threading.Tasks.Task<Metal.IMTLTexture[]> FromNamesAsync (string[] names, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary options);
	public System.Threading.Tasks.Task<Metal.IMTLTexture[]> FromNamesAsync (string[] names, nfloat scaleFactor, Foundation.NSBundle bundle, MTKTextureLoaderOptions options);
	public System.Threading.Tasks.Task<Metal.IMTLTexture> FromUrlAsync (Foundation.NSUrl url, MTKTextureLoaderOptions options);
	public virtual System.Threading.Tasks.Task<Metal.IMTLTexture[]> FromUrlsAsync (Foundation.NSUrl[] urls, Foundation.NSDictionary options);
	public System.Threading.Tasks.Task<Metal.IMTLTexture[]> FromUrlsAsync (Foundation.NSUrl[] urls, MTKTextureLoaderOptions options);

Namespace ModelIO

Type Changed: ModelIO.MDLMesh

Added method:

	public static MDLMesh CreateBox (OpenTK.Vector3 dimensions, OpenTK.Vector3i segments, MDLGeometryType geometryType, bool inwardNormals, IMDLMeshBufferAllocator allocator);

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

public const string Version = "10.8.0" "10.10.0";

Type Changed: ObjCRuntime.Dlfcn

Added method:

	public static CoreGraphics.CGRect GetCGRect (IntPtr handle, string symbol);

Type Changed: ObjCRuntime.MonoPInvokeCallbackAttribute

Added property:

	public System.Type DelegateType { get; set; }

Namespace Photos

Type Changed: Photos.PHAssetResourceManager

Added method:

	public virtual System.Threading.Tasks.Task WriteDataAsync (PHAssetResource forResource, Foundation.NSUrl fileURL, PHAssetResourceRequestOptions options);

Namespace SceneKit

Type Changed: SceneKit.SCNRenderer

Added method:

	public virtual System.Threading.Tasks.Task PresentSceneAsync (SCNScene scene, SpriteKit.SKTransition transition, SCNNode pointOfView);

Type Changed: SceneKit.SCNSceneRenderer

Obsoleted methods:

[Obsolete ("Use 'SCNSceneRenderer_Extensions.PrepareAsync' instead")] public virtual System.Threading.Tasks.Task<bool> PrepareAsync (Foundation.NSObject[] objects);

Modified methods:

public virtual System.Threading.Tasks.Task<bool> PrepareAsync (Foundation.NSObject[] objects)

Added method:

	[Obsolete ("Use 'SCNSceneRenderer_Extensions.PresentSceneAsync' instead")]
	public virtual System.Threading.Tasks.Task PresentSceneAsync (SCNScene scene, SpriteKit.SKTransition transition, SCNNode pointOfView);

Type Changed: SceneKit.SCNSceneRenderer_Extensions

Added methods:

	public static System.Threading.Tasks.Task<bool> PrepareAsync (ISCNSceneRenderer This, Foundation.NSObject[] objects);
	public static System.Threading.Tasks.Task PresentSceneAsync (ISCNSceneRenderer This, SCNScene scene, SpriteKit.SKTransition transition, SCNNode pointOfView);

Type Changed: SceneKit.SCNView

Added method:

	public virtual System.Threading.Tasks.Task PresentSceneAsync (SCNScene scene, SpriteKit.SKTransition transition, SCNNode pointOfView);

Namespace SpriteKit

Type Changed: SpriteKit.SKEffectNode

Removed property:

	public virtual Foundation.NSDictionary<Foundation.NSString,SpriteKit.SKAttributeValue> AttributeValues { get; set; }

Removed methods:

	public virtual SKAttributeValue GetValue (string key);
	public virtual void SetValue (SKAttributeValue value, string key);

Type Changed: SpriteKit.SKEmitterNode

Removed property:

	public virtual Foundation.NSDictionary<Foundation.NSString,SpriteKit.SKAttributeValue> AttributeValues { get; set; }

Removed methods:

	public virtual SKAttributeValue GetValue (string key);
	public virtual void SetValue (SKAttributeValue value, string key);

Type Changed: SpriteKit.SKNode

Added method:

	public virtual System.Threading.Tasks.Task RunActionAsync (SKAction action);

Type Changed: SpriteKit.SKSpriteNode

Removed property:

	public virtual Foundation.NSDictionary<Foundation.NSString,SpriteKit.SKAttributeValue> AttributeValues { get; set; }

Removed methods:

	public virtual SKAttributeValue GetValue (string key);
	public virtual void SetValue (SKAttributeValue value, string key);

Namespace TVMLKit

Type Changed: TVMLKit.TVApplicationController

Added method:

	public virtual System.Threading.Tasks.Task<bool> EvaluateAsync (System.Action<JavaScriptCore.JSContext> evaluation);

Type Changed: TVMLKit.TVViewElement

Added methods:

	public virtual System.Threading.Tasks.Task<TVViewElementDispatchResult> DispatchEventAsync (string eventName, bool canBubble, bool isCancellable, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> extraInfo);
	public virtual System.Threading.Tasks.Task<TVViewElementDispatchResult> DispatchEventAsync (TVElementEventType type, bool canBubble, bool isCancellable, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> extraInfo);

New Type TVMLKit.TVViewElementDispatchResult

public class TVViewElementDispatchResult {
	// constructors
	public TVViewElementDispatchResult (bool isDispatched, bool isCancelled);
	// properties
	public bool IsCancelled { get; set; }
	public bool IsDispatched { get; set; }
}

Namespace UIKit

Type Changed: UIKit.UIApplication

Added method:

	public System.Threading.Tasks.Task<bool> OpenUrlAsync (Foundation.NSUrl url, UIApplicationOpenUrlOptions options);

Type Changed: UIKit.UIEdgeInsets

Added methods:

	public static bool op_Equality (UIEdgeInsets insets1, UIEdgeInsets insets2);
	public static bool op_Inequality (UIEdgeInsets insets1, UIEdgeInsets insets2);

Type Changed: UIKit.UIFocusAnimationCoordinator

Added method:

	public virtual System.Threading.Tasks.Task AddCoordinatedAnimationsAsync (System.Action animations);


MonoTouch.NUnitLite.dll

Hide non-breaking changes

Namespace NUnitLite.Runner

Type Changed: NUnitLite.Runner.TextUI

Removed method:

	public void TopLevelHandler (object sender, System.UnhandledExceptionEventArgs e);


Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.