API diff

mscorlib.dll
System.dll
System.Core.dll
System.Data.dll
System.ServiceModel.dll
System.Transactions.dll
Xamarin.TVOS.dll
MonoTouch.Dialog-1.dll
MonoTouch.NUnitLite.dll
OpenTK-1.0.dll
System.Net.Http.dll


mscorlib.dll

Hide non-breaking changes

Namespace Microsoft.Win32

Type Changed: Microsoft.Win32.RegistryKey

Added properties:

	public SafeHandles.SafeRegistryHandle Handle { get; }
	public string Name { get; }
	public int SubKeyCount { get; }
	public int ValueCount { get; }
	public RegistryView View { get; }

Removed method:

	public static object GetValue (string keyName, string valueName, object defaultValue);

Added methods:

	public RegistryKey CreateSubKey (string subkey, bool writable);
	public RegistryKey CreateSubKey (string subkey, bool writable, RegistryOptions options);
	public void DeleteSubKey (string subkey);
	public void DeleteSubKey (string subkey, bool throwOnMissingSubKey);
	public void DeleteSubKeyTree (string subkey);
	public void DeleteSubKeyTree (string subkey, bool throwOnMissingSubKey);
	public void DeleteValue (string name);
	public void DeleteValue (string name, bool throwOnMissingValue);
	public void Flush ();
	public static RegistryKey FromHandle (SafeHandles.SafeRegistryHandle handle);
	public static RegistryKey FromHandle (SafeHandles.SafeRegistryHandle handle, RegistryView view);
	public string[] GetSubKeyNames ();
	public object GetValue (string name);
	public object GetValue (string name, object defaultValue, RegistryValueOptions options);
	public RegistryValueKind GetValueKind (string name);
	public string[] GetValueNames ();
	public static RegistryKey OpenBaseKey (RegistryHive hKey, RegistryView view);
	public RegistryKey OpenSubKey (string name);
	public RegistryKey OpenSubKey (string name, System.Security.AccessControl.RegistryRights rights);

Namespace Microsoft.Win32.SafeHandles

Type Changed: Microsoft.Win32.SafeHandles.SafeAccessTokenHandle

Removed constructor:

	public SafeAccessTokenHandle ();

Added constructor:

	public SafeAccessTokenHandle (IntPtr handle);

Added property:

	public static SafeAccessTokenHandle InvalidHandle { get; }

Namespace System

Type Changed: System.AppContext

Added properties:

	public static string BaseDirectory { get; }
	public static string TargetFrameworkName { get; }

Added methods:

	public static object GetData (string name);
	public static void SetSwitch (string switchName, bool isEnabled);
	public static bool TryGetSwitch (string switchName, out bool isEnabled);

Type Changed: System.Console

Added properties:

	public static ConsoleColor BackgroundColor { get; set; }
	public static int BufferHeight { get; set; }
	public static int BufferWidth { get; set; }
	public static bool CapsLock { get; }
	public static int CursorLeft { get; set; }
	public static int CursorSize { get; set; }
	public static int CursorTop { get; set; }
	public static bool CursorVisible { get; set; }
	public static ConsoleColor ForegroundColor { get; set; }
	public static bool IsErrorRedirected { get; }
	public static bool IsInputRedirected { get; }
	public static bool IsOutputRedirected { get; }
	public static bool KeyAvailable { get; }
	public static int LargestWindowHeight { get; set; }
	public static int LargestWindowWidth { get; set; }
	public static bool NumberLock { get; }
	public static string Title { get; set; }
	public static bool TreatControlCAsInput { get; set; }
	public static int WindowHeight { get; set; }
	public static int WindowLeft { get; set; }
	public static int WindowTop { get; set; }
	public static int WindowWidth { get; set; }

Added event:

	public event ConsoleCancelEventHandler CancelKeyPress;

Added methods:

	public static void Beep ();
	public static void Beep (int frequency, int duration);
	public static void Clear ();
	public static void MoveBufferArea (int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int targetTop);
	public static void MoveBufferArea (int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int targetTop, char sourceChar, ConsoleColor sourceForeColor, ConsoleColor sourceBackColor);
	public static ConsoleKeyInfo ReadKey ();
	public static ConsoleKeyInfo ReadKey (bool intercept);
	public static void ResetColor ();
	public static void SetBufferSize (int width, int height);
	public static void SetCursorPosition (int left, int top);
	public static void SetWindowPosition (int left, int top);
	public static void SetWindowSize (int width, int height);

Type Changed: System.Environment

Added methods:

	public static string GetEnvironmentVariable (string variable, EnvironmentVariableTarget target);
	public static Collections.IDictionary GetEnvironmentVariables (EnvironmentVariableTarget target);
	public static void SetEnvironmentVariable (string variable, string value, EnvironmentVariableTarget target);

Namespace System.Diagnostics.Tracing

Type Changed: System.Diagnostics.Tracing.EventAttribute

Added properties:

	public EventActivityOptions ActivityOptions { get; set; }
	public EventChannel Channel { get; set; }
	public string Message { get; set; }
	public EventOpcode Opcode { get; set; }
	public EventTags Tags { get; set; }
	public EventTask Task { get; set; }
	public byte Version { get; set; }

Type Changed: System.Diagnostics.Tracing.EventSource

Added event:

	public event System.EventHandler<EventCommandEventArgs> EventCommandExecuted;

Added methods:

	public static string GenerateManifest (System.Type eventSourceType, string assemblyPathToIncludeInManifest);
	public static string GenerateManifest (System.Type eventSourceType, string assemblyPathToIncludeInManifest, EventManifestOptions flags);
	public static System.Guid GetGuid (System.Type eventSourceType);
	public static string GetName (System.Type eventSourceType);
	public static System.Collections.Generic.IEnumerable<EventSource> GetSources ();
	public static void SendCommand (EventSource eventSource, EventCommand command, System.Collections.Generic.IDictionary<System.String,System.String> commandArguments);
	public static void SetCurrentThreadActivityId (System.Guid activityId);
	public static void SetCurrentThreadActivityId (System.Guid activityId, out System.Guid oldActivityThatWillContinue);
	public void Write (string eventName, EventSourceOptions options);
	protected void WriteEventCore (int eventId, int eventDataCount, EventSource.EventData* data);
	protected void WriteEventWithRelatedActivityId (int eventId, System.Guid relatedActivityId, object[] args);
	protected void WriteEventWithRelatedActivityIdCore (int eventId, System.Guid* relatedActivityId, int eventDataCount, EventSource.EventData* data);
	protected override void ~EventSource ();

Namespace System.IO

Type Changed: System.IO.DirectoryInfo

Added interface:

	System.Runtime.Serialization.ISerializable

Type Changed: System.IO.File

Added method:

	public static FileStream Create (string path, int bufferSize, FileOptions options);

Type Changed: System.IO.FileInfo

Added interface:

	System.Runtime.Serialization.ISerializable

Added methods:

	public FileInfo Replace (string destinationFileName, string destinationBackupFileName);
	public FileInfo Replace (string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors);

Type Changed: System.IO.FileSystemInfo

Added interface:

	System.Runtime.Serialization.ISerializable

Added method:

	public virtual void GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);

Namespace System.Runtime.CompilerServices

Type Changed: System.Runtime.CompilerServices.ConditionalWeakTable`2

Added method:

	protected override void ~ConditionalWeakTable ();

Namespace System.Runtime.InteropServices

Type Changed: System.Runtime.InteropServices.ExternalException

Added method:

	public override string ToString ();

Type Changed: System.Runtime.InteropServices.Marshal

Added methods:

	public static bool AreComObjectsAvailableForCleanup ();
	public static TWrapper CreateWrapperOfType<T, TWrapper> (T o);
	public static object CreateWrapperOfType (object o, System.Type t);
	public static int FinalReleaseComObject (object o);
	public static IntPtr GetComInterfaceForObject<T, TInterface> (T o);
	public static IntPtr GetComInterfaceForObject (object o, System.Type T);
	public static IntPtr GetComInterfaceForObject (object o, System.Type T, CustomQueryInterfaceMode mode);
	public static int GetExceptionCode ();
	public static int GetHRForException (System.Exception e);
	public static int GetHRForLastWin32Error ();
	public static IntPtr GetIUnknownForObject (object o);
	public static void GetNativeVariantForObject (object obj, IntPtr pDstNativeVariant);
	public static void GetNativeVariantForObject<T> (T obj, IntPtr pDstNativeVariant);
	public static object GetObjectForIUnknown (IntPtr pUnk);
	public static T GetObjectForNativeVariant<T> (IntPtr pSrcNativeVariant);
	public static object GetObjectForNativeVariant (IntPtr pSrcNativeVariant);
	public static T[] GetObjectsForNativeVariants<T> (IntPtr aSrcNativeVariant, int cVars);
	public static object[] GetObjectsForNativeVariants (IntPtr aSrcNativeVariant, int cVars);
	public static int GetStartComSlot (System.Type t);
	public static System.Type GetTypeFromCLSID (System.Guid clsid);
	public static string GetTypeInfoName (ComTypes.ITypeInfo typeInfo);
	public static object GetUniqueObjectForIUnknown (IntPtr unknown);
	public static bool IsComObject (object o);
	public static int ReleaseComObject (object o);

New Type System.Runtime.InteropServices.ComImportAttribute

public sealed class ComImportAttribute : System.Attribute {
	// constructors
	public ComImportAttribute ();
}

New Type System.Runtime.InteropServices.DispatchWrapper

[Serializable]
public sealed class DispatchWrapper {
	// constructors
	public DispatchWrapper (object obj);
	// properties
	public object WrappedObject { get; }
}

New Type System.Runtime.InteropServices.ErrorWrapper

[Serializable]
public sealed class ErrorWrapper {
	// constructors
	public ErrorWrapper (System.Exception e);
	public ErrorWrapper (int errorCode);
	public ErrorWrapper (object errorCode);
	// properties
	public int ErrorCode { get; }
}

Namespace System.Security

Type Changed: System.Security.CodeAccessPermission

Modified methods:

public virtual final void Assert ()
public virtual final void Demand ()
public virtual final void Deny ()
public virtual final void PermitOnly ()

Namespace System.Security.AccessControl

Type Changed: System.Security.AccessControl.AuthorizationRuleCollection

Added constructor:

	public AuthorizationRuleCollection ();

Added method:

	public void AddRule (AuthorizationRule rule);

Type Changed: System.Security.AccessControl.CommonSecurityDescriptor

Added methods:

	public void AddDiscretionaryAcl (byte revision, int trusted);
	public void AddSystemAcl (byte revision, int trusted);

Type Changed: System.Security.AccessControl.DiscretionaryAcl

Added methods:

	public void AddAccess (AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, ObjectAccessRule rule);
	public bool RemoveAccess (AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, ObjectAccessRule rule);
	public void RemoveAccessSpecific (AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, ObjectAccessRule rule);
	public void SetAccess (AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, ObjectAccessRule rule);

Type Changed: System.Security.AccessControl.ObjectSecurity

Added constructors:

	protected ObjectSecurity ();
	protected ObjectSecurity (CommonSecurityDescriptor securityDescriptor);

Type Changed: System.Security.AccessControl.SystemAcl

Added methods:

	public void AddAudit (System.Security.Principal.SecurityIdentifier sid, ObjectAuditRule rule);
	public bool RemoveAudit (System.Security.Principal.SecurityIdentifier sid, ObjectAuditRule rule);
	public void RemoveAuditSpecific (System.Security.Principal.SecurityIdentifier sid, ObjectAuditRule rule);
	public void SetAudit (System.Security.Principal.SecurityIdentifier sid, ObjectAuditRule rule);

Namespace System.Security.Principal

Type Changed: System.Security.Principal.WindowsIdentity

Added methods:

	public static void RunImpersonated (Microsoft.Win32.SafeHandles.SafeAccessTokenHandle safeAccessTokenHandle, System.Action action);
	public static T RunImpersonated<T> (Microsoft.Win32.SafeHandles.SafeAccessTokenHandle safeAccessTokenHandle, System.Func<T> func);

Namespace System.Threading

Type Changed: System.Threading.EventWaitHandle

Added method:

	protected override void Dispose (bool explicitDisposing);


System.dll

Hide non-breaking changes

Namespace Mono.Security.Interface

Type Changed: Mono.Security.Interface.MonoTlsProviderFactory

Removed field:

	public static MonoTlsProviderFactoryDelegate _PrivateFactoryDelegate;

Removed Type Mono.Security.Interface.MonoTlsProviderFactoryDelegate

Namespace System

Type Changed: System.Uri

Added property:

	public string IdnHost { get; }

Added methods:

	[Obsolete ("The method has been deprecated. It is not used by the system. http://go.microsoft.com/fwlink/?linkid=14202")]
	protected virtual void Canonicalize ();

	[Obsolete ("The method has been deprecated. It is not used by the system. http://go.microsoft.com/fwlink/?linkid=14202")]
	protected virtual void CheckSecurity ();

Type Changed: System.UriParser

Modified methods:

protected protected virtual string GetComponents (Uri uri, UriComponents components, UriFormat format)
protected protected virtual void InitializeAndValidate (Uri uri, out UriFormatException parsingError)
protected protected virtual bool IsBaseOf (Uri baseUri, Uri relativeUri)
protected protected virtual bool IsWellFormedOriginalString (Uri uri)
protected protected virtual UriParser OnNewUri ()
protected protected virtual string Resolve (Uri baseUri, Uri relativeUri, out UriFormatException parsingError)

New Type System.GopherStyleUriParser

public class GopherStyleUriParser : System.UriParser {
	// constructors
	public GopherStyleUriParser ();
}

New Type System.LdapStyleUriParser

public class LdapStyleUriParser : System.UriParser {
	// constructors
	public LdapStyleUriParser ();
}

Namespace System.Diagnostics

Type Changed: System.Diagnostics.Process

Added property:

	public Microsoft.Win32.SafeHandles.SafeProcessHandle SafeHandle { get; }

Removed method:

	protected override void ~Process ();

Type Changed: System.Diagnostics.ProcessModuleCollection

Added property:

	public ProcessModule Item { get; }

Added methods:

	public bool Contains (ProcessModule module);
	public void CopyTo (ProcessModule[] array, int index);
	public int IndexOf (ProcessModule module);

Type Changed: System.Diagnostics.ProcessModuleCollectionBase

Added method:

	public System.Collections.IEnumerator GetEnumerator ();

Type Changed: System.Diagnostics.ProcessStartInfo

Modified constructors:

public ProcessStartInfo (string filename fileName)
public ProcessStartInfo (string filename fileName, string arguments)

Added properties:

	public System.Collections.Generic.IDictionary<System.String,System.String> Environment { get; }
	public string PasswordInClearText { get; set; }

Type Changed: System.Diagnostics.ProcessThreadCollection

Added property:

	public ProcessThread Item { get; }

Added methods:

	public int Add (ProcessThread thread);
	public bool Contains (ProcessThread thread);
	public void CopyTo (ProcessThread[] array, int index);
	public int IndexOf (ProcessThread thread);
	public void Insert (int index, ProcessThread thread);
	public void Remove (ProcessThread thread);

Type Changed: System.Diagnostics.ProcessThreadCollectionBase

Added method:

	public System.Collections.IEnumerator GetEnumerator ();

Namespace System.IO

Type Changed: System.IO.FileSystemWatcher

Added interface:

	System.IDisposable

Added methods:

	public virtual void Dispose ();
	protected virtual void Dispose (bool disposing);

Namespace System.IO.Compression

Type Changed: System.IO.Compression.DeflateStream

Modified constructors:

public DeflateStream (System.IO.Stream compressedStream stream, CompressionMode mode)
public DeflateStream (System.IO.Stream compressedStream stream, CompressionMode mode, bool leaveOpen)

Modified methods:

public override int Read (byte[] dest array, int dest_offset offset, int count)
public override void Write (byte[] src array, int src_offset offset, int count)

Type Changed: System.IO.Compression.GZipStream

Modified methods:

public override int Read (byte[] dest array, int dest_offset offset, int count)
public override void Write (byte[] src array, int src_offset offset, int count)

Namespace System.Net

Type Changed: System.Net.FileWebResponse

Added property:

	public override bool SupportsHeaders { get; }

Removed methods:

	protected override void Dispose (bool disposing);
	protected override void ~FileWebResponse ();

Type Changed: System.Net.FtpWebResponse

Added property:

	public override bool SupportsHeaders { get; }

Type Changed: System.Net.HttpWebResponse

Added property:

	public override bool SupportsHeaders { get; }

Type Changed: System.Net.IPAddress

Added property:

	public bool IsIPv4MappedToIPv6 { get; }

Type Changed: System.Net.TransportContext

Added method:

	public virtual System.Collections.Generic.IEnumerable<System.Security.Authentication.ExtendedProtection.TokenBinding> GetTlsTokenBindings ();

Namespace System.Net.NetworkInformation

Type Changed: System.Net.NetworkInformation.GatewayIPAddressInformationCollection

Modified constructors:

protected protected GatewayIPAddressInformationCollection ()

Type Changed: System.Net.NetworkInformation.IPGlobalProperties

Added methods:

	public virtual System.IAsyncResult BeginGetUnicastAddresses (System.AsyncCallback callback, object state);
	public virtual UnicastIPAddressInformationCollection EndGetUnicastAddresses (System.IAsyncResult asyncResult);
	public virtual UnicastIPAddressInformationCollection GetUnicastAddresses ();
	public virtual System.Threading.Tasks.Task<UnicastIPAddressInformationCollection> GetUnicastAddressesAsync ();

Type Changed: System.Net.NetworkInformation.IPv6InterfaceProperties

Added method:

	public virtual long GetScopeId (ScopeLevel scopeLevel);

Type Changed: System.Net.NetworkInformation.NetworkInformationException

Modified base type: System.Exception System.ComponentModel.Win32Exception

Added constructor:

	protected NetworkInformationException (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);

Modified properties:

public override int ErrorCode { get; }

Type Changed: System.Net.NetworkInformation.NetworkInterface

Modified properties:

public abstract virtual string Description { get; }
public abstract virtual string Id { get; }
public abstract virtual bool IsReceiveOnly { get; }
public abstract virtual string Name { get; }
public abstract virtual NetworkInterfaceType NetworkInterfaceType { get; }
public abstract virtual OperationalStatus OperationalStatus { get; }
public abstract virtual long Speed { get; }
public abstract virtual bool SupportsMulticast { get; }

Added property:

	public static int IPv6LoopbackInterfaceIndex { get; }

Removed method:

	public static System.Net.IPAddress GetNetMask (System.Net.IPAddress address);

Modified methods:

public abstract virtual IPInterfaceProperties GetIPProperties ()
public abstract virtual IPv4InterfaceStatistics GetIPv4Statistics ()
public abstract virtual PhysicalAddress GetPhysicalAddress ()
public abstract virtual bool Supports (NetworkInterfaceComponent networkInterfaceComponent)

Added method:

	public virtual IPInterfaceStatistics GetIPStatistics ();

Type Changed: System.Net.NetworkInformation.NetworkInterfaceType

Added values:

	Wman = 237,
	Wwanpp = 243,
	Wwanpp2 = 244,

New Type System.Net.NetworkInformation.NetworkInformationPermission

[Serializable]
public sealed class NetworkInformationPermission : System.Security.CodeAccessPermission, System.Security.IPermission, System.Security.ISecurityEncodable, System.Security.IStackWalk, System.Security.Permissions.IUnrestrictedPermission {
	// constructors
	public NetworkInformationPermission (NetworkInformationAccess access);
	public NetworkInformationPermission (System.Security.Permissions.PermissionState state);
	// properties
	public NetworkInformationAccess Access { get; }
	// methods
	public void AddPermission (NetworkInformationAccess access);
	public override System.Security.IPermission Copy ();
	public override void FromXml (System.Security.SecurityElement securityElement);
	public override System.Security.IPermission Intersect (System.Security.IPermission target);
	public override bool IsSubsetOf (System.Security.IPermission target);
	public virtual bool IsUnrestricted ();
	public override System.Security.SecurityElement ToXml ();
	public override System.Security.IPermission Union (System.Security.IPermission target);
}

New Type System.Net.NetworkInformation.NetworkInformationPermissionAttribute

[Serializable]
public sealed class NetworkInformationPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute {
	// constructors
	public NetworkInformationPermissionAttribute (System.Security.Permissions.SecurityAction action);
	// properties
	public string Access { get; set; }
	// methods
	public override System.Security.IPermission CreatePermission ();
}

Namespace System.Net.Security

Type Changed: System.Net.Security.NegotiateStream

Added methods:

	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync ();
	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (System.Net.NetworkCredential credential, string targetName);
	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName);
	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (System.Net.NetworkCredential credential, string targetName, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel);
	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel);
	public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync ();
	public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync (System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy);
	public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync (System.Net.NetworkCredential credential, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel);
	public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel);

Type Changed: System.Net.Security.SslStream

Added constructor:

	public SslStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen, RemoteCertificateValidationCallback userCertificateValidationCallback, LocalCertificateSelectionCallback userCertificateSelectionCallback, EncryptionPolicy encryptionPolicy);

Namespace System.Net.Sockets

Type Changed: System.Net.Sockets.Socket

Modified methods:

public void Bind (System.Net.EndPoint local_end localEP)
public byte[] GetSocketOption (SocketOptionLevel optionLevel, SocketOptionName optionName, int length optionLength)
public int IOControl (int ioctl_code ioControlCode, byte[] in_value optionInValue, byte[] out_value optionOutValue)
public bool Poll (int time_us microSeconds, SelectMode mode)
public int Receive (byte[] buffer, SocketFlags flags socketFlags)
public int Receive (byte[] buffer, int size, SocketFlags flags socketFlags)
public int Receive (byte[] buffer, int offset, int size, SocketFlags flags socketFlags)
public int Receive (byte[] buffer, int offset, int size, SocketFlags flags socketFlags, out SocketError error errorCode)
public int ReceiveFrom (byte[] buffer, SocketFlags flags socketFlags, ref System.Net.EndPoint remoteEP)
public int ReceiveFrom (byte[] buffer, int size, SocketFlags flags socketFlags, ref System.Net.EndPoint remoteEP)
public int ReceiveFrom (byte[] buffer, int offset, int size, SocketFlags flags socketFlags, ref System.Net.EndPoint remoteEP)
public int Send (byte[] buffer, SocketFlags flags socketFlags)
public int Send (byte[] buffer, int size, SocketFlags flags socketFlags)
public int Send (byte[] buffer, int offset, int size, SocketFlags flags socketFlags)
public int Send (byte[] buffer, int offset, int size, SocketFlags flags socketFlags, out SocketError error errorCode)
public int SendTo (byte[] buffer, System.Net.EndPoint remote_end remoteEP)
public int SendTo (byte[] buffer, SocketFlags flags socketFlags, System.Net.EndPoint remote_end remoteEP)
public int SendTo (byte[] buffer, int size, SocketFlags flags socketFlags, System.Net.EndPoint remote_end remoteEP)
public int SendTo (byte[] buffer, int offset, int size, SocketFlags flags socketFlags, System.Net.EndPoint remote_end remoteEP)

Added methods:

	public static void CancelConnectAsync (SocketAsyncEventArgs e);
	public static bool ConnectAsync (SocketType socketType, ProtocolType protocolType, SocketAsyncEventArgs e);

Type Changed: System.Net.Sockets.SocketAsyncEventArgs

Added properties:

	public IPPacketInformation ReceiveMessageFromPacketInfo { get; }
	public SendPacketsElement[] SendPacketsElements { get; set; }

Type Changed: System.Net.Sockets.TcpClient

Added method:

	public virtual void Dispose ();

Type Changed: System.Net.Sockets.UdpClient

Added method:

	public virtual void Dispose ();

Namespace System.Security.AccessControl

Type Changed: System.Security.AccessControl.SemaphoreAccessRule

Modified constructors:

public SemaphoreAccessRule (System.Security.Principal.IdentityReference identity, SemaphoreRights semaphoreRights eventRights, AccessControlType type)
public SemaphoreAccessRule (string identity, SemaphoreRights semaphoreRights eventRights, AccessControlType type)

Type Changed: System.Security.AccessControl.SemaphoreAuditRule

Modified constructors:

public SemaphoreAuditRule (System.Security.Principal.IdentityReference identity, SemaphoreRights semaphoreRights eventRights, AuditFlags flags)

Namespace System.Security.Authentication.ExtendedProtection

Type Changed: System.Security.Authentication.ExtendedProtection.ServiceNameCollection

Added method:

	public bool Contains (string searchServiceName);

New Type System.Security.Authentication.ExtendedProtection.TokenBinding

public class TokenBinding {
	// properties
	public TokenBindingType BindingType { get; }
	// methods
	public byte[] GetRawTokenBindingId ();
}

New Type System.Security.Authentication.ExtendedProtection.TokenBindingType

[Serializable]
public enum TokenBindingType {
	Provided = 0,
	Referred = 1,
}

Namespace System.Security.Cryptography

Type Changed: System.Security.Cryptography.Oid

Added methods:

	public static Oid FromFriendlyName (string friendlyName, OidGroup group);
	public static Oid FromOidValue (string oidValue, OidGroup group);

Namespace System.Security.Cryptography.X509Certificates

Type Changed: System.Security.Cryptography.X509Certificates.X509Chain

Added property:

	public Microsoft.Win32.SafeHandles.SafeX509ChainHandle SafeHandle { get; }

Type Changed: System.Security.Cryptography.X509Certificates.X509ChainStatusFlags

Added values:

	ExplicitDistrust = 67108864,
	HasNotSupportedCriticalExtension = 134217728,
	HasWeakSignature = 1048576,

Type Changed: System.Security.Cryptography.X509Certificates.X509KeyUsageExtension

Modified methods:

public override void CopyFrom (System.Security.Cryptography.AsnEncodedData encodedData asnEncodedData)

Type Changed: System.Security.Cryptography.X509Certificates.X509Store

Added interface:

	System.IDisposable

Added method:

	public virtual void Dispose ();

Type Changed: System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension

Modified methods:

public override void CopyFrom (System.Security.Cryptography.AsnEncodedData encodedData asnEncodedData)

Namespace System.Text.RegularExpressions

Type Changed: System.Text.RegularExpressions.Regex

Added properties:

	protected System.Collections.IDictionary CapNames { get; set; }
	protected System.Collections.IDictionary Caps { get; set; }


System.Core.dll

Hide non-breaking changes

Namespace System.IO.MemoryMappedFiles

Type Changed: System.IO.MemoryMappedFiles.MemoryMappedFile

Added methods:

	public static MemoryMappedFile CreateFromFile (System.IO.FileStream fileStream, string mapName, long capacity, MemoryMappedFileAccess access, System.IO.HandleInheritability inheritability, bool leaveOpen);
	public static MemoryMappedFile CreateNew (string mapName, long capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, System.IO.HandleInheritability inheritability);
	public static MemoryMappedFile CreateOrOpen (string mapName, long capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, System.IO.HandleInheritability inheritability);

Namespace System.IO.Pipes

Type Changed: System.IO.Pipes.NamedPipeClientStream

Added methods:

	public System.Threading.Tasks.Task ConnectAsync ();
	public System.Threading.Tasks.Task ConnectAsync (int timeout);
	public System.Threading.Tasks.Task ConnectAsync (System.Threading.CancellationToken cancellationToken);
	public System.Threading.Tasks.Task ConnectAsync (int timeout, System.Threading.CancellationToken cancellationToken);
	protected override void ~NamedPipeClientStream ();

Type Changed: System.IO.Pipes.NamedPipeServerStream

Added methods:

	public System.Threading.Tasks.Task WaitForConnectionAsync ();
	public System.Threading.Tasks.Task WaitForConnectionAsync (System.Threading.CancellationToken cancellationToken);

Type Changed: System.IO.Pipes.PipeStream

Added method:

	public void WaitForPipeDrain ();

New Type System.IO.Pipes.PipeAccessRights

[Serializable]
[Flags]
public enum PipeAccessRights {
	AccessSystemSecurity = 16777216,
	ChangePermissions = 262144,
	CreateNewInstance = 4,
	Delete = 65536,
	FullControl = 2032031,
	Read = 131209,
	ReadAttributes = 128,
	ReadData = 1,
	ReadExtendedAttributes = 8,
	ReadPermissions = 131072,
	ReadWrite = 131483,
	Synchronize = 1048576,
	TakeOwnership = 524288,
	Write = 274,
	WriteAttributes = 256,
	WriteData = 2,
	WriteExtendedAttributes = 16,
}

New Type System.IO.Pipes.PipeAccessRule

public sealed class PipeAccessRule : System.Security.AccessControl.AccessRule {
	// constructors
	public PipeAccessRule (System.Security.Principal.IdentityReference identity, PipeAccessRights rights, System.Security.AccessControl.AccessControlType type);
	public PipeAccessRule (string identity, PipeAccessRights rights, System.Security.AccessControl.AccessControlType type);
	// properties
	public PipeAccessRights PipeAccessRights { get; }
}

New Type System.IO.Pipes.PipeAuditRule

public sealed class PipeAuditRule : System.Security.AccessControl.AuditRule {
	// constructors
	public PipeAuditRule (System.Security.Principal.IdentityReference identity, PipeAccessRights rights, System.Security.AccessControl.AuditFlags flags);
	public PipeAuditRule (string identity, PipeAccessRights rights, System.Security.AccessControl.AuditFlags flags);
	// properties
	public PipeAccessRights PipeAccessRights { get; }
}

New Type System.IO.Pipes.PipeSecurity

public class PipeSecurity : System.Security.AccessControl.NativeObjectSecurity {
	// constructors
	public PipeSecurity ();
	// properties
	public override System.Type AccessRightType { get; }
	public override System.Type AccessRuleType { get; }
	public override System.Type AuditRuleType { get; }
	// methods
	public override System.Security.AccessControl.AccessRule AccessRuleFactory (System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type);
	public void AddAccessRule (PipeAccessRule rule);
	public void AddAuditRule (PipeAuditRule rule);
	public override System.Security.AccessControl.AuditRule AuditRuleFactory (System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags);
	protected void Persist (System.Runtime.InteropServices.SafeHandle handle);
	protected void Persist (string name);
	public bool RemoveAccessRule (PipeAccessRule rule);
	public void RemoveAccessRuleSpecific (PipeAccessRule rule);
	public bool RemoveAuditRule (PipeAuditRule rule);
	public void RemoveAuditRuleAll (PipeAuditRule rule);
	public void RemoveAuditRuleSpecific (PipeAuditRule rule);
	public void ResetAccessRule (PipeAccessRule rule);
	public void SetAccessRule (PipeAccessRule rule);
	public void SetAuditRule (PipeAuditRule rule);
}

New Type System.IO.Pipes.PipeStreamImpersonationWorker

public sealed delegate PipeStreamImpersonationWorker : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public PipeStreamImpersonationWorker (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke ();
}

Namespace System.Linq

Type Changed: System.Linq.Enumerable

Added methods:

	public static System.Collections.Generic.IEnumerable<TSource> Append<TSource> (System.Collections.Generic.IEnumerable<TSource> source, TSource element);
	public static System.Collections.Generic.IEnumerable<TSource> Prepend<TSource> (System.Collections.Generic.IEnumerable<TSource> source, TSource element);

Namespace System.Linq.Expressions

Type Changed: System.Linq.Expressions.Expression`1

Added method:

	public TDelegate Compile (bool preferInterpretation);

Type Changed: System.Linq.Expressions.LambdaExpression

Added method:

	public System.Delegate Compile (bool preferInterpretation);

Namespace System.Security.Cryptography

Type Changed: System.Security.Cryptography.CngAlgorithm

Added properties:

	public static CngAlgorithm ECDiffieHellman { get; }
	public static CngAlgorithm ECDsa { get; }

Type Changed: System.Security.Cryptography.CngKey

Added properties:

	public CngAlgorithm Algorithm { get; }
	public CngAlgorithmGroup AlgorithmGroup { get; }
	public CngExportPolicies ExportPolicy { get; }
	public Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle Handle { get; }
	public bool IsEphemeral { get; }
	public bool IsMachineKey { get; }
	public string KeyName { get; }
	public int KeySize { get; }
	public CngKeyUsages KeyUsage { get; }
	public IntPtr ParentWindowHandle { get; set; }
	public CngProvider Provider { get; }
	public Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle ProviderHandle { get; }
	public CngUIPolicy UIPolicy { get; }
	public string UniqueName { get; }

Added methods:

	public static CngKey Create (CngAlgorithm algorithm);
	public static CngKey Create (CngAlgorithm algorithm, string keyName);
	public static CngKey Create (CngAlgorithm algorithm, string keyName, CngKeyCreationParameters creationParameters);
	public void Delete ();
	public static bool Exists (string keyName);
	public static bool Exists (string keyName, CngProvider provider);
	public static bool Exists (string keyName, CngProvider provider, CngKeyOpenOptions options);
	public byte[] Export (CngKeyBlobFormat format);
	public CngProperty GetProperty (string name, CngPropertyOptions options);
	public bool HasProperty (string name, CngPropertyOptions options);
	public static CngKey Import (byte[] keyBlob, CngKeyBlobFormat format);
	public static CngKey Import (byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider);
	public static CngKey Open (string keyName);
	public static CngKey Open (Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle keyHandle, CngKeyHandleOpenOptions keyHandleOpenOptions);
	public static CngKey Open (string keyName, CngProvider provider);
	public static CngKey Open (string keyName, CngProvider provider, CngKeyOpenOptions openOptions);
	public void SetProperty (CngProperty property);

Type Changed: System.Security.Cryptography.CngKeyBlobFormat

Added properties:

	public static CngKeyBlobFormat EccFullPrivateBlob { get; }
	public static CngKeyBlobFormat EccFullPublicBlob { get; }

Type Changed: System.Security.Cryptography.ECDsa

Added methods:

	public static ECDsa Create (ECCurve curve);
	public static ECDsa Create (ECParameters parameters);
	public virtual ECParameters ExportExplicitParameters (bool includePrivateParameters);
	public virtual ECParameters ExportParameters (bool includePrivateParameters);
	public virtual void GenerateKey (ECCurve curve);
	public virtual void ImportParameters (ECParameters parameters);

Type Changed: System.Security.Cryptography.ECDsaCng

Added constructors:

	public ECDsaCng (int keySize);
	public ECDsaCng (CngKey key);
	public ECDsaCng (ECCurve curve);

Added property:

	public CngKey Key { get; }

Type Changed: System.Security.Cryptography.RSACng

Added constructors:

	public RSACng (int keySize);
	public RSACng (CngKey key);

Added property:

	public CngKey Key { get; }

New Type System.Security.Cryptography.ECCurve

public struct ECCurve {
	// fields
	public byte[] A;
	public byte[] B;
	public byte[] Cofactor;
	public ECCurve.ECCurveType CurveType;
	public ECPoint G;
	public HashAlgorithmName? Hash;
	public byte[] Order;
	public byte[] Polynomial;
	public byte[] Prime;
	public byte[] Seed;
	// properties
	public bool IsCharacteristic2 { get; }
	public bool IsExplicit { get; }
	public bool IsNamed { get; }
	public bool IsPrime { get; }
	public Oid Oid { get; }
	// methods
	public static ECCurve CreateFromFriendlyName (string oidFriendlyName);
	public static ECCurve CreateFromOid (Oid curveOid);
	public static ECCurve CreateFromValue (string oidValue);
	public void Validate ();

	// inner types
	[Serializable]
	public enum ECCurveType {
		public static const ECCurve.ECCurveType Characteristic2;
		public static const ECCurve.ECCurveType Implicit;
		public static const ECCurve.ECCurveType Named;
		public static const ECCurve.ECCurveType PrimeMontgomery;
		public static const ECCurve.ECCurveType PrimeShortWeierstrass;
		public static const ECCurve.ECCurveType PrimeTwistedEdwards;
	}
	public static class NamedCurves {
		// properties
		public static ECCurve brainpoolP160r1 { get; }
		public static ECCurve brainpoolP160t1 { get; }
		public static ECCurve brainpoolP192r1 { get; }
		public static ECCurve brainpoolP192t1 { get; }
		public static ECCurve brainpoolP224r1 { get; }
		public static ECCurve brainpoolP224t1 { get; }
		public static ECCurve brainpoolP256r1 { get; }
		public static ECCurve brainpoolP256t1 { get; }
		public static ECCurve brainpoolP320r1 { get; }
		public static ECCurve brainpoolP320t1 { get; }
		public static ECCurve brainpoolP384r1 { get; }
		public static ECCurve brainpoolP384t1 { get; }
		public static ECCurve brainpoolP512r1 { get; }
		public static ECCurve brainpoolP512t1 { get; }
		public static ECCurve nistP256 { get; }
		public static ECCurve nistP384 { get; }
		public static ECCurve nistP521 { get; }
	}
}

New Type System.Security.Cryptography.ECParameters

public struct ECParameters {
	// fields
	public ECCurve Curve;
	public byte[] D;
	public ECPoint Q;
	// methods
	public void Validate ();
}

New Type System.Security.Cryptography.ECPoint

public struct ECPoint {
	// fields
	public byte[] X;
	public byte[] Y;
}

New Type System.Security.Cryptography.IncrementalHash

public sealed class IncrementalHash : System.IDisposable {
	// properties
	public HashAlgorithmName AlgorithmName { get; }
	// methods
	public void AppendData (byte[] data);
	public void AppendData (byte[] data, int offset, int count);
	public static IncrementalHash CreateHMAC (HashAlgorithmName hashAlgorithm, byte[] key);
	public static IncrementalHash CreateHash (HashAlgorithmName hashAlgorithm);
	public virtual void Dispose ();
	public byte[] GetHashAndReset ();
}


System.Data.dll

Hide non-breaking changes

Namespace Microsoft.SqlServer.Server

Type Changed: Microsoft.SqlServer.Server.SqlDataRecord

Removed constructor:

	public SqlDataRecord ();

Added constructor:

	public SqlDataRecord (SqlMetaData[] metaData);

Modified properties:

public virtual final int FieldCount { get; }
public virtual final object this [int ordinal] { get; }
public virtual final object this [string name] { get; }

Modified methods:

public virtual final bool GetBoolean (int ordinal)
public virtual final byte GetByte (int ordinal)
public virtual final long GetBytes (int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length)
public virtual final char GetChar (int ordinal)
public virtual final long GetChars (int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length)
public virtual final System.Data.IDataReader GetData (int ordinal)
public virtual final string GetDataTypeName (int ordinal)
public virtual final System.DateTime GetDateTime (int ordinal)
public virtual final System.Decimal GetDecimal (int ordinal)
public virtual final double GetDouble (int ordinal)
public virtual final System.Type GetFieldType (int ordinal)
public virtual final float GetFloat (int ordinal)
public virtual final System.Guid GetGuid (int ordinal)
public virtual final short GetInt16 (int ordinal)
public virtual final int GetInt32 (int ordinal)
public virtual final long GetInt64 (int ordinal)
public virtual final string GetName (int ordinal)
public virtual final int GetOrdinal (string name)
public virtual final string GetString (int ordinal)
public virtual final object GetValue (int ordinal)
public virtual final int GetValues (object[] values)
public virtual final bool IsDBNull (int ordinal)

Added methods:

	public virtual System.DateTimeOffset GetDateTimeOffset (int ordinal);
	public virtual System.Data.SqlTypes.SqlBinary GetSqlBinary (int ordinal);
	public virtual System.Data.SqlTypes.SqlBoolean GetSqlBoolean (int ordinal);
	public virtual System.Data.SqlTypes.SqlByte GetSqlByte (int ordinal);
	public virtual System.Data.SqlTypes.SqlBytes GetSqlBytes (int ordinal);
	public virtual System.Data.SqlTypes.SqlChars GetSqlChars (int ordinal);
	public virtual System.Data.SqlTypes.SqlDateTime GetSqlDateTime (int ordinal);
	public virtual System.Data.SqlTypes.SqlDecimal GetSqlDecimal (int ordinal);
	public virtual System.Data.SqlTypes.SqlDouble GetSqlDouble (int ordinal);
	public virtual System.Type GetSqlFieldType (int ordinal);
	public virtual System.Data.SqlTypes.SqlGuid GetSqlGuid (int ordinal);
	public virtual System.Data.SqlTypes.SqlInt16 GetSqlInt16 (int ordinal);
	public virtual System.Data.SqlTypes.SqlInt32 GetSqlInt32 (int ordinal);
	public virtual System.Data.SqlTypes.SqlInt64 GetSqlInt64 (int ordinal);
	public virtual SqlMetaData GetSqlMetaData (int ordinal);
	public virtual System.Data.SqlTypes.SqlMoney GetSqlMoney (int ordinal);
	public virtual System.Data.SqlTypes.SqlSingle GetSqlSingle (int ordinal);
	public virtual System.Data.SqlTypes.SqlString GetSqlString (int ordinal);
	public virtual object GetSqlValue (int ordinal);
	public virtual int GetSqlValues (object[] values);
	public virtual System.Data.SqlTypes.SqlXml GetSqlXml (int ordinal);
	public virtual System.TimeSpan GetTimeSpan (int ordinal);
	public virtual void SetBoolean (int ordinal, bool value);
	public virtual void SetByte (int ordinal, byte value);
	public virtual void SetBytes (int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length);
	public virtual void SetChar (int ordinal, char value);
	public virtual void SetChars (int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length);
	public virtual void SetDBNull (int ordinal);
	public virtual void SetDateTime (int ordinal, System.DateTime value);
	public virtual void SetDateTimeOffset (int ordinal, System.DateTimeOffset value);
	public virtual void SetDecimal (int ordinal, System.Decimal value);
	public virtual void SetDouble (int ordinal, double value);
	public virtual void SetFloat (int ordinal, float value);
	public virtual void SetGuid (int ordinal, System.Guid value);
	public virtual void SetInt16 (int ordinal, short value);
	public virtual void SetInt32 (int ordinal, int value);
	public virtual void SetInt64 (int ordinal, long value);
	public virtual void SetSqlBinary (int ordinal, System.Data.SqlTypes.SqlBinary value);
	public virtual void SetSqlBoolean (int ordinal, System.Data.SqlTypes.SqlBoolean value);
	public virtual void SetSqlByte (int ordinal, System.Data.SqlTypes.SqlByte value);
	public virtual void SetSqlBytes (int ordinal, System.Data.SqlTypes.SqlBytes value);
	public virtual void SetSqlChars (int ordinal, System.Data.SqlTypes.SqlChars value);
	public virtual void SetSqlDateTime (int ordinal, System.Data.SqlTypes.SqlDateTime value);
	public virtual void SetSqlDecimal (int ordinal, System.Data.SqlTypes.SqlDecimal value);
	public virtual void SetSqlDouble (int ordinal, System.Data.SqlTypes.SqlDouble value);
	public virtual void SetSqlGuid (int ordinal, System.Data.SqlTypes.SqlGuid value);
	public virtual void SetSqlInt16 (int ordinal, System.Data.SqlTypes.SqlInt16 value);
	public virtual void SetSqlInt32 (int ordinal, System.Data.SqlTypes.SqlInt32 value);
	public virtual void SetSqlInt64 (int ordinal, System.Data.SqlTypes.SqlInt64 value);
	public virtual void SetSqlMoney (int ordinal, System.Data.SqlTypes.SqlMoney value);
	public virtual void SetSqlSingle (int ordinal, System.Data.SqlTypes.SqlSingle value);
	public virtual void SetSqlString (int ordinal, System.Data.SqlTypes.SqlString value);
	public virtual void SetSqlXml (int ordinal, System.Data.SqlTypes.SqlXml value);
	public virtual void SetString (int ordinal, string value);
	public virtual void SetTimeSpan (int ordinal, System.TimeSpan value);
	public virtual void SetValue (int ordinal, object value);
	public virtual int SetValues (object[] values);

Type Changed: Microsoft.SqlServer.Server.SqlMetaData

Added constructors:

	public SqlMetaData (string name, System.Data.SqlDbType dbType, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);
	public SqlMetaData (string name, System.Data.SqlDbType dbType, long maxLength, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);
	public SqlMetaData (string name, System.Data.SqlDbType dbType, byte precision, byte scale, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);
	public SqlMetaData (string name, System.Data.SqlDbType dbType, long maxLength, long locale, System.Data.SqlTypes.SqlCompareOptions compareOptions, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);
	public SqlMetaData (string name, System.Data.SqlDbType dbType, string database, string owningSchema, string objectName, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);
	public SqlMetaData (string name, System.Data.SqlDbType dbType, long maxLength, byte precision, byte scale, long localeId, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Type userDefinedType, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);

Added properties:

	public bool IsUniqueKey { get; }
	public System.Data.SqlClient.SortOrder SortOrder { get; }
	public int SortOrdinal { get; }
	public bool UseServerDefault { get; }

Added methods:

	public System.Data.SqlTypes.SqlXml Adjust (System.Data.SqlTypes.SqlXml value);
	public System.DateTimeOffset Adjust (System.DateTimeOffset value);
	public System.TimeSpan Adjust (System.TimeSpan value);

Namespace System.Data.SqlClient

Type Changed: System.Data.SqlClient.SqlBulkCopy

Added property:

	public bool EnableStreaming { get; set; }

Added methods:

	public void WriteToServer (System.Data.Common.DbDataReader reader);
	public System.Threading.Tasks.Task WriteToServerAsync (System.Data.Common.DbDataReader reader);
	public System.Threading.Tasks.Task WriteToServerAsync (System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Data.SqlClient.SqlCommand

Added methods:

	public System.Threading.Tasks.Task<SqlDataReader> ExecuteReaderAsync ();
	public System.Threading.Tasks.Task<SqlDataReader> ExecuteReaderAsync (System.Data.CommandBehavior behavior);
	public System.Threading.Tasks.Task<SqlDataReader> ExecuteReaderAsync (System.Threading.CancellationToken cancellationToken);
	public System.Threading.Tasks.Task<SqlDataReader> ExecuteReaderAsync (System.Data.CommandBehavior behavior, System.Threading.CancellationToken cancellationToken);
	public System.Threading.Tasks.Task<System.Xml.XmlReader> ExecuteXmlReaderAsync ();
	public System.Threading.Tasks.Task<System.Xml.XmlReader> ExecuteXmlReaderAsync (System.Threading.CancellationToken cancellationToken);

Type Changed: System.Data.SqlClient.SqlConnection

Added property:

	public System.Guid ClientConnectionId { get; }

Added methods:

	public void ResetStatistics ();
	public System.Collections.IDictionary RetrieveStatistics ();

Type Changed: System.Data.SqlClient.SqlDataReader

Added methods:

	public override System.Threading.Tasks.Task<T> GetFieldValueAsync<T> (int i, System.Threading.CancellationToken cancellationToken);
	public override System.IO.Stream GetStream (int i);
	public override System.IO.TextReader GetTextReader (int i);
	public override System.Threading.Tasks.Task<bool> IsDBNullAsync (int i, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Data.SqlClient.SqlException

Added property:

	public System.Guid ClientConnectionId { get; }

Type Changed: System.Data.SqlClient.SqlParameter

Added property:

	public string TypeName { get; set; }


System.ServiceModel.dll

Hide non-breaking changes

Namespace System.ServiceModel

Type Changed: System.ServiceModel.ActionNotSupportedException

Modified constructors:

public ActionNotSupportedException (string msg message)
public ActionNotSupportedException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.ChannelFactory

Modified methods:

protected virtual void ApplyConfiguration (string endpointConfig configurationName)
protected void InitializeEndpoint (Channels.Binding binding, EndpointAddress remoteAddress address)
protected void InitializeEndpoint (string endpointConfigurationName configurationName, EndpointAddress remoteAddress)

Type Changed: System.ServiceModel.ChannelFactory`1

Modified constructors:

protected ChannelFactory`1 (System.Type type channelType)

Type Changed: System.ServiceModel.CommunicationException

Modified constructors:

public CommunicationException (string msg message)
public CommunicationException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.CommunicationObjectAbortedException

Modified constructors:

public CommunicationObjectAbortedException (string msg message)
public CommunicationObjectAbortedException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.CommunicationObjectFaultedException

Modified constructors:

public CommunicationObjectFaultedException (string msg message)
public CommunicationObjectFaultedException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.DnsEndpointIdentity

Modified constructors:

public DnsEndpointIdentity (string dns dnsName)

Type Changed: System.ServiceModel.DuplexClientBase`1

Modified constructors:

protected DuplexClientBase`1 (object instance callbackInstance)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance)
protected DuplexClientBase`1 (object instance callbackInstance, Description.ServiceEndpoint endpoint)
protected DuplexClientBase`1 (object instance callbackInstance, string configurationName endpointConfigurationName)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance, Description.ServiceEndpoint endpoint)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance, string configurationName endpointConfigurationName)
protected DuplexClientBase`1 (object instance callbackInstance, Channels.Binding binding, EndpointAddress address remoteAddress)
protected DuplexClientBase`1 (object instance callbackInstance, string bindingConfigurationName, EndpointAddress address remoteAddress)
protected DuplexClientBase`1 (object instance callbackInstance, string endpointConfigurationName, string remoteAddress)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance, Channels.Binding binding, EndpointAddress address remoteAddress)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance, string configurationName endpointConfigurationName, EndpointAddress address)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance, string endpointConfigurationName, string remoteAddress)

Type Changed: System.ServiceModel.EndpointAddress

Modified constructors:

public EndpointAddress (System.Uri uri, Channels.AddressHeader[] headers addressHeaders)
public EndpointAddress (System.Uri uri, EndpointIdentity identity, Channels.AddressHeader[] headers addressHeaders)

Type Changed: System.ServiceModel.EndpointAddressBuilder

Added property:

	public EndpointIdentity Identity { get; set; }

Type Changed: System.ServiceModel.EndpointNotFoundException

Modified constructors:

public EndpointNotFoundException (string msg message)
public EndpointNotFoundException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.FaultCode

Modified constructors:

public FaultCode (string name, FaultCode subcode subCode)
public FaultCode (string name, string ns, FaultCode subcode subCode)

Modified methods:

public FaultCode CreateReceiverFaultCode (FaultCode subcode subCode)
public FaultCode CreateSenderFaultCode (FaultCode subcode subCode)

Type Changed: System.ServiceModel.FaultException

Modified methods:

public FaultException CreateFault (Channels.MessageFault fault messageFault, System.Type[] details faultDetailTypes)

Type Changed: System.ServiceModel.InstanceContext

Modified base type: System.Object System.ServiceModel.Channels.CommunicationObject

Modified constructors:

public InstanceContext (object dummy implementation)

Added interfaces:

	ICommunicationObject
	System.ServiceModel.IExtensibleObject<InstanceContext>

Added properties:

	protected override System.TimeSpan DefaultCloseTimeout { get; }
	protected override System.TimeSpan DefaultOpenTimeout { get; }
	public System.Threading.SynchronizationContext SynchronizationContext { get; set; }

Added methods:

	public object GetServiceInstance (Channels.Message message);
	protected override void OnAbort ();
	protected override System.IAsyncResult OnBeginClose (System.TimeSpan timeout, System.AsyncCallback callback, object state);
	protected override System.IAsyncResult OnBeginOpen (System.TimeSpan timeout, System.AsyncCallback callback, object state);
	protected override void OnClose (System.TimeSpan timeout);
	protected override void OnClosed ();
	protected override void OnEndClose (System.IAsyncResult result);
	protected override void OnEndOpen (System.IAsyncResult result);
	protected override void OnFaulted ();
	protected override void OnOpen (System.TimeSpan timeout);
	protected override void OnOpened ();
	protected override void OnOpening ();

Type Changed: System.ServiceModel.InvalidMessageContractException

Modified constructors:

public InvalidMessageContractException (string msg message)
public InvalidMessageContractException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.MessageHeaderException

Modified constructors:

public MessageHeaderException (string msg message)
public MessageHeaderException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.MessageHeader`1

Modified constructors:

public MessageHeader`1 (T content, bool must_understand mustUnderstand, string actor, bool relay)

Type Changed: System.ServiceModel.MessageSecurityOverTcp

Added constructor:

	public MessageSecurityOverTcp ();

Type Changed: System.ServiceModel.ProtocolException

Modified constructors:

public ProtocolException (string msg message)
public ProtocolException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.QuotaExceededException

Modified constructors:

public QuotaExceededException (string msg message)
public QuotaExceededException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.ServerTooBusyException

Modified constructors:

public ServerTooBusyException (string msg message)
public ServerTooBusyException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.ServiceActivationException

Modified constructors:

public ServiceActivationException (string msg message)
public ServiceActivationException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.SpnEndpointIdentity

Modified constructors:

public SpnEndpointIdentity (string spn spnName)

Type Changed: System.ServiceModel.TcpTransportSecurity

Added property:

	public System.Security.Authentication.SslProtocols SslProtocols { get; set; }

Type Changed: System.ServiceModel.UpnEndpointIdentity

Modified constructors:

public UpnEndpointIdentity (string upn upnName)

Namespace System.ServiceModel.Channels

Type Changed: System.ServiceModel.Channels.AddressHeader

Modified methods:

public AddressHeader CreateAddressHeader (object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer)
public AddressHeader CreateAddressHeader (string name, string ns, object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer)
public T GetValue<T> (System.Runtime.Serialization.XmlObjectSerializer formatter serializer)

Type Changed: System.ServiceModel.Channels.AddressHeaderCollection

Modified constructors:

public AddressHeaderCollection (System.Collections.Generic.IEnumerable<AddressHeader> headers addressHeaders)

Type Changed: System.ServiceModel.Channels.BindingContext

Modified constructors:

public BindingContext (CustomBinding binding, BindingParameterCollection parms parameters)

Type Changed: System.ServiceModel.Channels.BindingElement

Modified constructors:

protected BindingElement (BindingElement other elementToBeCloned)

Type Changed: System.ServiceModel.Channels.BindingElementCollection

Modified constructors:

public BindingElementCollection (System.Collections.Generic.IEnumerable<BindingElement> bindings elements)
public BindingElementCollection (BindingElement[] bindings elements)

Type Changed: System.ServiceModel.Channels.ChannelBase

Modified constructors:

protected ChannelBase (ChannelManagerBase manager channelManager)

Type Changed: System.ServiceModel.Channels.ChannelFactoryBase`1

Modified methods:

public virtual final TChannel CreateChannel (System.ServiceModel.EndpointAddress remoteAddress address)
public virtual final TChannel CreateChannel (System.ServiceModel.EndpointAddress remoteAddress address, System.Uri via)
protected abstract TChannel OnCreateChannel (System.ServiceModel.EndpointAddress remoteAddress address, System.Uri via)

Type Changed: System.ServiceModel.Channels.CustomBinding

Modified constructors:

public CustomBinding (System.Collections.Generic.IEnumerable<BindingElement> bindingElements bindingElementsInTopDownChannelStackOrder)
public CustomBinding (BindingElement[] binding bindingElementsInTopDownChannelStackOrder)
public CustomBinding (string name, string ns, BindingElement[] binding bindingElementsInTopDownChannelStackOrder)

Type Changed: System.ServiceModel.Channels.FaultConverter

Modified methods:

protected abstract bool OnTryCreateException (Message message, MessageFault fault, out System.Exception error exception)
protected abstract bool OnTryCreateFaultMessage (System.Exception error exception, out Message message)
public bool TryCreateException (Message message, MessageFault fault, out System.Exception error exception)
public bool TryCreateFaultMessage (System.Exception error exception, out Message message)

Type Changed: System.ServiceModel.Channels.HttpTransportBindingElement

Modified constructors:

protected HttpTransportBindingElement (HttpTransportBindingElement other elementToBeCloned)

Type Changed: System.ServiceModel.Channels.HttpsTransportBindingElement

Modified constructors:

protected HttpsTransportBindingElement (HttpsTransportBindingElement other elementToBeCloned)

Type Changed: System.ServiceModel.Channels.Message

Modified methods:

public Message CreateMessage (MessageVersion version, string action, object body, System.Runtime.Serialization.XmlObjectSerializer xmlFormatter serializer)
public T GetBody<T> (System.Runtime.Serialization.XmlObjectSerializer xmlFormatter serializer)

Type Changed: System.ServiceModel.Channels.MessageEncodingBindingElement

Modified constructors:

public MessageEncodingBindingElement (MessageEncodingBindingElement source elementToBeCloned)

Modified methods:

public override T GetProperty<T> (BindingContext ctx context)

Type Changed: System.ServiceModel.Channels.MessageFault

Modified methods:

public T GetDetail<T> (System.Runtime.Serialization.XmlObjectSerializer formatter serializer)

Type Changed: System.ServiceModel.Channels.MessageHeader

Modified methods:

public MessageHeader CreateHeader (string name, string ns, object value, bool must_understand mustUnderstand)
public MessageHeader CreateHeader (string name, string ns, object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer)
public MessageHeader CreateHeader (string name, string ns, object value, bool must_understand mustUnderstand, string actor)
public MessageHeader CreateHeader (string name, string ns, object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer, bool must_understand mustUnderstand)
public MessageHeader CreateHeader (string name, string ns, object value, bool must_understand mustUnderstand, string actor, bool relay)
public MessageHeader CreateHeader (string name, string ns, object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer, bool must_understand mustUnderstand, string actor)
public MessageHeader CreateHeader (string name, string ns, object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer, bool must_understand mustUnderstand, string actor, bool relay)
public virtual bool IsMessageVersionSupported (MessageVersion version messageVersion)
protected abstract void OnWriteHeaderContents (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)
protected virtual void OnWriteStartHeader (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)
public void WriteHeader (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)
public void WriteHeader (System.Xml.XmlWriter writer, MessageVersion version messageVersion)
protected void WriteHeaderAttributes (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)
public void WriteHeaderContents (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)
public void WriteStartHeader (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)

Type Changed: System.ServiceModel.Channels.MessageHeaders

Modified methods:

public void CopyHeaderFrom (Message m message, int index headerIndex)
public void CopyHeaderFrom (MessageHeaders headers collection, int index headerIndex)
public void CopyHeadersFrom (Message m message)
public void CopyHeadersFrom (MessageHeaders headers collection)
public void CopyTo (MessageHeaderInfo[] dst array, int index)
public System.Xml.XmlDictionaryReader GetReaderAtHeader (int index headerIndex)
public void Insert (int index headerIndex, MessageHeader header)
public void RemoveAt (int index headerIndex)
public void WriteHeader (int index headerIndex, System.Xml.XmlDictionaryWriter writer)
public void WriteHeader (int index headerIndex, System.Xml.XmlWriter writer)
public void WriteHeaderContents (int index headerIndex, System.Xml.XmlDictionaryWriter writer)
public void WriteHeaderContents (int index headerIndex, System.Xml.XmlWriter writer)
public void WriteStartHeader (int index headerIndex, System.Xml.XmlDictionaryWriter writer)
public void WriteStartHeader (int index headerIndex, System.Xml.XmlWriter writer)

Type Changed: System.ServiceModel.Channels.MessageVersion

Modified methods:

public MessageVersion CreateVersion (System.ServiceModel.EnvelopeVersion envelope_version envelopeVersion)
public MessageVersion CreateVersion (System.ServiceModel.EnvelopeVersion envelope_version envelopeVersion, AddressingVersion addressing_version addressingVersion)
public override bool Equals (object value obj)

Type Changed: System.ServiceModel.Channels.SecurityBindingElement

Added properties:

	public System.ServiceModel.Security.Tokens.SupportingTokenParameters EndpointSupportingTokenParameters { get; }
	public System.ServiceModel.MessageSecurityVersion MessageSecurityVersion { get; set; }
	public SecurityHeaderLayout SecurityHeaderLayout { get; set; }

Added methods:

	public static SecurityBindingElement CreateSecureConversationBindingElement (SecurityBindingElement bootstrapSecurity);
	public static SecurityBindingElement CreateSecureConversationBindingElement (SecurityBindingElement bootstrapSecurity, bool requireCancellation);
	public static SecurityBindingElement CreateSecureConversationBindingElement (SecurityBindingElement bootstrapSecurity, bool requireCancellation, System.ServiceModel.Security.ChannelProtectionRequirements bootstrapProtectionRequirements);

Type Changed: System.ServiceModel.Channels.SslStreamSecurityBindingElement

Added property:

	public System.Security.Authentication.SslProtocols SslProtocols { get; set; }

Type Changed: System.ServiceModel.Channels.TcpTransportBindingElement

Modified constructors:

protected TcpTransportBindingElement (TcpTransportBindingElement other elementToBeCloned)

Type Changed: System.ServiceModel.Channels.TransportBindingElement

Modified constructors:

protected TransportBindingElement (TransportBindingElement other elementToBeCloned)

Namespace System.ServiceModel.Description

Type Changed: System.ServiceModel.Description.ClientCredentials

Modified constructors:

protected ClientCredentials (ClientCredentials source other)

Added properties:

	public System.ServiceModel.Security.X509CertificateInitiatorClientCredential ClientCertificate { get; }
	public System.ServiceModel.Security.HttpDigestClientCredential HttpDigest { get; }
	public System.ServiceModel.Security.X509CertificateRecipientClientCredential ServiceCertificate { get; }
	public System.ServiceModel.Security.WindowsClientCredential Windows { get; }

Modified methods:

public virtual void ApplyClientBehavior (ServiceEndpoint endpoint serviceEndpoint, System.ServiceModel.Dispatcher.ClientRuntime behavior)

Type Changed: System.ServiceModel.Description.IContractBehavior

Modified methods:

public abstract void AddBindingParameters (ContractDescription description contractDescription, ServiceEndpoint endpoint, System.ServiceModel.Channels.BindingParameterCollection parameters bindingParameters)
public abstract void ApplyClientBehavior (ContractDescription description contractDescription, ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.ClientRuntime proxy clientRuntime)
public abstract void ApplyDispatchBehavior (ContractDescription description contractDescription, ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.DispatchRuntime dispatch dispatchRuntime)
public abstract void Validate (ContractDescription description contractDescription, ServiceEndpoint endpoint)

Type Changed: System.ServiceModel.Description.IEndpointBehavior

Modified methods:

public abstract void AddBindingParameters (ServiceEndpoint endpoint, System.ServiceModel.Channels.BindingParameterCollection parameters bindingParameters)
public abstract void ApplyClientBehavior (ServiceEndpoint serviceEndpoint endpoint, System.ServiceModel.Dispatcher.ClientRuntime behavior clientRuntime)
public abstract void ApplyDispatchBehavior (ServiceEndpoint serviceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher dispatcher endpointDispatcher)
public abstract void Validate (ServiceEndpoint serviceEndpoint endpoint)

Type Changed: System.ServiceModel.Description.IOperationBehavior

Modified methods:

public abstract void AddBindingParameters (OperationDescription description operationDescription, System.ServiceModel.Channels.BindingParameterCollection parameters bindingParameters)
public abstract void ApplyClientBehavior (OperationDescription description operationDescription, System.ServiceModel.Dispatcher.ClientOperation proxy clientOperation)
public abstract void ApplyDispatchBehavior (OperationDescription description operationDescription, System.ServiceModel.Dispatcher.DispatchOperation dispatch dispatchOperation)
public abstract void Validate (OperationDescription description operationDescription)

Namespace System.ServiceModel.Dispatcher

Type Changed: System.ServiceModel.Dispatcher.IClientMessageFormatter

Modified methods:

public abstract object DeserializeReply (System.ServiceModel.Channels.Message message, object[] paremeters parameters)
public abstract System.ServiceModel.Channels.Message SerializeRequest (System.ServiceModel.Channels.MessageVersion version messageVersion, object[] inputs parameters)

Type Changed: System.ServiceModel.Dispatcher.IClientMessageInspector

Modified methods:

public abstract void AfterReceiveReply (ref System.ServiceModel.Channels.Message message reply, object correlationState)
public abstract object BeforeSendRequest (ref System.ServiceModel.Channels.Message message request, System.ServiceModel.IClientChannel channel)

Namespace System.ServiceModel.Security

New Type System.ServiceModel.Security.ChannelProtectionRequirements

public class ChannelProtectionRequirements {
	// constructors
	public ChannelProtectionRequirements ();
	public ChannelProtectionRequirements (ChannelProtectionRequirements other);
	// properties
	public ScopedMessagePartSpecification IncomingEncryptionParts { get; }
	public ScopedMessagePartSpecification IncomingSignatureParts { get; }
	public bool IsReadOnly { get; }
	public ScopedMessagePartSpecification OutgoingEncryptionParts { get; }
	public ScopedMessagePartSpecification OutgoingSignatureParts { get; }
	// methods
	public void Add (ChannelProtectionRequirements protectionRequirements);
	public void Add (ChannelProtectionRequirements protectionRequirements, bool channelScopeOnly);
	public ChannelProtectionRequirements CreateInverse ();
	public void MakeReadOnly ();
}

New Type System.ServiceModel.Security.MessagePartSpecification

public class MessagePartSpecification {
	// constructors
	public MessagePartSpecification ();
	public MessagePartSpecification (bool isBodyIncluded);
	public MessagePartSpecification (System.Xml.XmlQualifiedName[] headerTypes);
	public MessagePartSpecification (bool isBodyIncluded, System.Xml.XmlQualifiedName[] headerTypes);
	// properties
	public System.Collections.Generic.ICollection<System.Xml.XmlQualifiedName> HeaderTypes { get; }
	public bool IsBodyIncluded { get; set; }
	public bool IsReadOnly { get; }
	public static MessagePartSpecification NoParts { get; }
	// methods
	public void Clear ();
	public void MakeReadOnly ();
	public void Union (MessagePartSpecification other);
}

New Type System.ServiceModel.Security.ScopedMessagePartSpecification

public class ScopedMessagePartSpecification {
	// constructors
	public ScopedMessagePartSpecification ();
	public ScopedMessagePartSpecification (ScopedMessagePartSpecification other);
	// properties
	public System.Collections.Generic.ICollection<string> Actions { get; }
	public MessagePartSpecification ChannelParts { get; }
	public bool IsReadOnly { get; }
	// methods
	public void AddParts (MessagePartSpecification parts);
	public void AddParts (MessagePartSpecification parts, string action);
	public void MakeReadOnly ();
	public bool TryGetParts (string action, out MessagePartSpecification parts);
	public bool TryGetParts (string action, bool excludeChannelScope, out MessagePartSpecification parts);
}

New Type System.ServiceModel.Security.X509CertificateInitiatorClientCredential

public sealed class X509CertificateInitiatorClientCredential {
	// properties
	public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get; set; }
	// methods
	public void SetCertificate (string subjectName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName);
	public void SetCertificate (System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName, System.Security.Cryptography.X509Certificates.X509FindType findType, object findValue);
}

New Type System.ServiceModel.Security.X509CertificateRecipientClientCredential

public sealed class X509CertificateRecipientClientCredential {
	// properties
	public X509ServiceCertificateAuthentication Authentication { get; }
	public System.Security.Cryptography.X509Certificates.X509Certificate2 DefaultCertificate { get; set; }
	public System.Collections.Generic.Dictionary<System.Uri,System.Security.Cryptography.X509Certificates.X509Certificate2> ScopedCertificates { get; }
	public X509ServiceCertificateAuthentication SslCertificateAuthentication { get; set; }
	// methods
	public void SetDefaultCertificate (string subjectName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName);
	public void SetDefaultCertificate (System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName, System.Security.Cryptography.X509Certificates.X509FindType findType, object findValue);
	public void SetScopedCertificate (string subjectName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName, System.Uri targetService);
	public void SetScopedCertificate (System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName, System.Security.Cryptography.X509Certificates.X509FindType findType, object findValue, System.Uri targetService);
}

New Type System.ServiceModel.Security.X509ServiceCertificateAuthentication

public class X509ServiceCertificateAuthentication {
	// constructors
	public X509ServiceCertificateAuthentication ();
	// properties
	public X509CertificateValidationMode CertificateValidationMode { get; set; }
	public System.IdentityModel.Selectors.X509CertificateValidator CustomCertificateValidator { get; set; }
	public System.Security.Cryptography.X509Certificates.X509RevocationMode RevocationMode { get; set; }
	public System.Security.Cryptography.X509Certificates.StoreLocation TrustedStoreLocation { get; set; }
}

Namespace System.ServiceModel.Security.Tokens

Type Changed: System.ServiceModel.Security.Tokens.SecureConversationSecurityTokenParameters

Modified constructors:

public SecureConversationSecurityTokenParameters (System.ServiceModel.Channels.SecurityBindingElement element bootstrapSecurityBindingElement)
public SecureConversationSecurityTokenParameters (System.ServiceModel.Channels.SecurityBindingElement element bootstrapSecurityBindingElement, bool requireCancellation)


System.Transactions.dll

Hide non-breaking changes

Namespace System.Transactions

Type Changed: System.Transactions.TransactionScope

Added constructors:

	public TransactionScope (TransactionScopeAsyncFlowOption asyncFlow);
	public TransactionScope (TransactionScopeOption option, TransactionScopeAsyncFlowOption asyncFlow);
	public TransactionScope (TransactionScopeOption option, System.TimeSpan timeout, TransactionScopeAsyncFlowOption asyncFlow);

New Type System.Transactions.TransactionScopeAsyncFlowOption

[Serializable]
public enum TransactionScopeAsyncFlowOption {
	Enabled = 1,
	Suppress = 0,
}


Xamarin.TVOS.dll

Hide non-breaking changes

Namespace AVFoundation

Type Changed: AVFoundation.AVAssetDownloadDelegate

Added methods:

	public virtual void DidFinishCollectingMetrics (Foundation.NSUrlSession session, Foundation.NSUrlSessionTask task, Foundation.NSUrlSessionTaskMetrics metrics);
	public virtual void DidFinishDownloadingToUrl (Foundation.NSUrlSession session, AVAssetDownloadTask assetDownloadTask, Foundation.NSUrl location);

Type Changed: AVFoundation.AVAssetDownloadDelegate_Extensions

Added method:

	public static void DidFinishDownloadingToUrl (IAVAssetDownloadDelegate This, Foundation.NSUrlSession session, AVAssetDownloadTask assetDownloadTask, Foundation.NSUrl location);

Type Changed: AVFoundation.AVAssetDownloadUrlSession

Added methods:

	public AVAssetDownloadTask GetAssetDownloadTask (AVUrlAsset urlAsset, string title, Foundation.NSData artworkData, AVAssetDownloadOptions options);
	public virtual AVAssetDownloadTask GetAssetDownloadTask (AVUrlAsset urlAsset, string title, Foundation.NSData artworkData, Foundation.NSDictionary options);

Type Changed: AVFoundation.AVAudioChannelLayout

Obsoleted constructors:

[Obsolete ("Valid instance of this type cannot be directly created")] public AVAudioChannelLayout ();

Type Changed: AVFoundation.AVAudioConnectionPoint

Obsoleted constructors:

[Obsolete ("Valid instance of this type cannot be directly created")] public AVAudioConnectionPoint ();

Type Changed: AVFoundation.AVAudioConverterPrimeInfo

Added constructor:

	public AVAudioConverterPrimeInfo (uint leadingFrames, uint trailingFrames);

Added methods:

	public bool Equals (AVAudioConverterPrimeInfo other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVAudioConverterPrimeInfo left, AVAudioConverterPrimeInfo right);
	public static bool op_Inequality (AVAudioConverterPrimeInfo left, AVAudioConverterPrimeInfo right);

Type Changed: AVFoundation.AVAudioFormat

Added property:

	public virtual Foundation.NSData MagicCookie { get; set; }

Type Changed: AVFoundation.AVAudioPlayer

Added property:

	public virtual AVAudioFormat Format { get; }

Added method:

	public virtual void SetVolume (float volume, double duration);

Type Changed: AVFoundation.AVAudioSession

Added method:

	public virtual bool SetCategory (string category, string mode, AVAudioSessionCategoryOptions options, out Foundation.NSError outError);

Type Changed: AVFoundation.AVAudioSessionCategoryOptions

Added values:

	AllowAirPlay = 64,
	AllowBluetoothA2DP = 32,

Type Changed: AVFoundation.AVAudioSessionPortDescription

Added property:

	public virtual bool HasHardwareVoiceCallProcessing { get; }

Type Changed: AVFoundation.AVAudioSettings

Added property:

	public static Foundation.NSString AVSampleRateConverterAlgorithm_MinimumPhase { get; }

Type Changed: AVFoundation.AVBeatRange

Added methods:

	public bool Equals (AVBeatRange other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVBeatRange left, AVBeatRange right);
	public static bool op_Inequality (AVBeatRange left, AVBeatRange right);

Type Changed: AVFoundation.AVCaptureWhiteBalanceChromaticityValues

Added methods:

	public bool Equals (AVCaptureWhiteBalanceChromaticityValues other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static bool op_Equality (AVCaptureWhiteBalanceChromaticityValues left, AVCaptureWhiteBalanceChromaticityValues right);
	public static bool op_Inequality (AVCaptureWhiteBalanceChromaticityValues left, AVCaptureWhiteBalanceChromaticityValues right);

Type Changed: AVFoundation.AVCaptureWhiteBalanceGains

Added methods:

	public bool Equals (AVCaptureWhiteBalanceGains other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static bool op_Equality (AVCaptureWhiteBalanceGains left, AVCaptureWhiteBalanceGains right);
	public static bool op_Inequality (AVCaptureWhiteBalanceGains left, AVCaptureWhiteBalanceGains right);

Type Changed: AVFoundation.AVCaptureWhiteBalanceTemperatureAndTintValues

Added methods:

	public bool Equals (AVCaptureWhiteBalanceTemperatureAndTintValues other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static bool op_Equality (AVCaptureWhiteBalanceTemperatureAndTintValues left, AVCaptureWhiteBalanceTemperatureAndTintValues right);
	public static bool op_Inequality (AVCaptureWhiteBalanceTemperatureAndTintValues left, AVCaptureWhiteBalanceTemperatureAndTintValues right);

Type Changed: AVFoundation.AVError

Modified fields:

ApplicationIsNotAuthorizedToUseDevice = 11852 -11852
MaximumStillImageCaptureRequestsExceeded = 11830 -11830

Added values:

	OperationNotAllowed = -11862,
	UnsupportedOutputSettings = -11861,

Type Changed: AVFoundation.AVMediaCharacteristic

Added property:

	public static Foundation.NSString UsesWideGamutColorSpace { get; }

Type Changed: AVFoundation.AVMetadata

Added properties:

	public static Foundation.NSString ID3MetadataKeyInvolvedPeopleList_v24 { get; }
	public static Foundation.NSString IsoUserDataKeyDate { get; }

Type Changed: AVFoundation.AVMetadataIdentifiers

Type Changed: AVFoundation.AVMetadataIdentifiers.Iso

Added property:

	public static Foundation.NSString UserDataDate { get; }

Type Changed: AVFoundation.AVMutableVideoComposition

Added properties:

	public virtual string ColorPrimaries { get; set; }
	public virtual string ColorTransferFunction { get; set; }
	public virtual string ColorYCbCrMatrix { get; set; }

Type Changed: AVFoundation.AVPlayer

Added properties:

	public virtual bool AutomaticallyWaitsToMinimizeStalling { get; set; }
	public virtual string ReasonForWaitingToPlay { get; }
	public virtual AVPlayerTimeControlStatus TimeControlStatus { get; }
	public static Foundation.NSString WaitingToMinimizeStallsReason { get; }
	public static Foundation.NSString WaitingWhileEvaluatingBufferingRateReason { get; }
	public static Foundation.NSString WaitingWithNoItemToPlayReason { get; }

Added method:

	public virtual void PlayImmediatelyAtRate (float rate);

Type Changed: AVFoundation.AVPlayerItem

Added properties:

	public virtual AVContentProposal NextContentProposal { get; set; }
	public virtual double PreferredForwardBufferDuration { get; set; }

Added method:

	protected override void Dispose (bool disposing);

Type Changed: AVFoundation.AVPlayerItemAccessLogEvent

Added properties:

	public virtual double AverageAudioBitrate { get; }
	public virtual double AverageVideoBitrate { get; }

Type Changed: AVFoundation.AVPlayerItemVideoOutput

Added constructor:

	public AVPlayerItemVideoOutput (AVPlayerItemVideoOutputSettings settings);

Type Changed: AVFoundation.AVSpeechSynthesisVoice

Added property:

	public static Foundation.NSString IpaNotationAttribute { get; }

Type Changed: AVFoundation.AVSpeechSynthesizer

Added property:

	public virtual AVAudioSessionChannelDescription[] OutputChannels { get; set; }

Type Changed: AVFoundation.AVSpeechUtterance

Added constructor:

	public AVSpeechUtterance (Foundation.NSAttributedString speechString);

Added property:

	public virtual Foundation.NSAttributedString AttributedSpeechString { get; }

Added method:

	public static AVSpeechUtterance FromString (Foundation.NSAttributedString speechString);

Type Changed: AVFoundation.AVUrlAsset

Added properties:

	public static Foundation.NSString AllowsCellularAccessKey { get; }
	public virtual AVAssetCache Cache { get; }

Type Changed: AVFoundation.AVVideoCompositing

Added property:

	public virtual bool SupportsWideColorSourceFrames { get; }

Type Changed: AVFoundation.AVVideoCompositing_Extensions

Added method:

	public static bool GetSupportsWideColorSourceFrames (IAVVideoCompositing This);

Type Changed: AVFoundation.AVVideoComposition

Added properties:

	public virtual string ColorPrimaries { get; }
	public virtual string ColorTransferFunction { get; }
	public virtual string ColorYCbCrMatrix { get; }

New Type AVFoundation.AVAssetCache

public class AVAssetCache : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAssetCache (Foundation.NSObjectFlag t);
	protected AVAssetCache (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool IsPlayableOffline { get; }
	// methods
	public virtual AVMediaSelectionOption[] GetMediaSelectionOptions (AVMediaSelectionGroup mediaSelectionGroup);
}

New Type AVFoundation.AVCleanApertureProperties

public class AVCleanApertureProperties : Foundation.DictionaryContainer {
	// constructors
	public AVCleanApertureProperties ();
	public AVCleanApertureProperties (Foundation.NSDictionary dictionary);
	// properties
	public Foundation.NSNumber Height { get; set; }
	public Foundation.NSNumber HorizontalOffset { get; set; }
	public Foundation.NSNumber VerticalOffset { get; set; }
	public Foundation.NSNumber Width { get; set; }
}

New Type AVFoundation.AVColorProperties

public class AVColorProperties : Foundation.DictionaryContainer {
	// constructors
	public AVColorProperties ();
	public AVColorProperties (Foundation.NSDictionary dictionary);
	// properties
	public Foundation.NSString AVVideoColorPrimaries { get; set; }
	public Foundation.NSString AVVideoTransferFunction { get; set; }
	public Foundation.NSString AVVideoYCbCrMatrix { get; }
}

New Type AVFoundation.AVCompressionProperties

public class AVCompressionProperties : Foundation.DictionaryContainer {
	// constructors
	public AVCompressionProperties ();
	public AVCompressionProperties (Foundation.NSDictionary dictionary);
	// properties
	public AVCleanApertureProperties CleanAperture { get; set; }
	public AVPixelAspectRatioProperties PixelAspectRatio { get; set; }
}

New Type AVFoundation.AVContentProposal

public class AVContentProposal : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVContentProposal (Foundation.NSObjectFlag t);
	protected AVContentProposal (IntPtr handle);
	public AVContentProposal (CoreMedia.CMTime contentTimeForTransition, string title, UIKit.UIImage previewImage);
	// properties
	public virtual double AutomaticAcceptanceInterval { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual CoreMedia.CMTime ContentTimeForTransition { get; }
	public virtual AVMetadataItem[] Metadata { get; set; }
	public virtual UIKit.UIImage PreviewImage { get; }
	public virtual string Title { get; }
	public virtual Foundation.NSUrl Url { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	protected override void Dispose (bool disposing);
}

New Type AVFoundation.AVContentProposalAction

[Serializable]
public enum AVContentProposalAction {
	Accept = 0,
	Defer = 2,
	Reject = 1,
}

New Type AVFoundation.AVMusicTrackLoopCount

[Serializable]
public enum AVMusicTrackLoopCount {
	Forever = -1,
}

New Type AVFoundation.AVPixelAspectRatioProperties

public class AVPixelAspectRatioProperties : Foundation.DictionaryContainer {
	// constructors
	public AVPixelAspectRatioProperties ();
	public AVPixelAspectRatioProperties (Foundation.NSDictionary dictionary);
	// properties
	public Foundation.NSNumber PixelAspectRatioHorizontalSpacing { get; set; }
	public Foundation.NSNumber PixelAspectRatioVerticalSpacing { get; set; }
}

New Type AVFoundation.AVPlayerItemVideoOutputSettings

public class AVPlayerItemVideoOutputSettings : Foundation.DictionaryContainer {
	// constructors
	public AVPlayerItemVideoOutputSettings ();
	public AVPlayerItemVideoOutputSettings (Foundation.NSDictionary dictionary);
	// properties
	public bool? AllowWideColor { get; set; }
	public Foundation.NSString Codec { get; set; }
	public AVColorProperties ColorProperties { get; set; }
	public AVCompressionProperties CompressionProperties { get; set; }
	public Foundation.NSNumber Height { get; set; }
	public Foundation.NSString ScalingMode { get; set; }
	public Foundation.NSNumber Width { get; set; }
}

New Type AVFoundation.AVPlayerLooper

public class AVPlayerLooper : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVPlayerLooper (Foundation.NSObjectFlag t);
	protected AVPlayerLooper (IntPtr handle);
	public AVPlayerLooper (AVQueuePlayer player, AVPlayerItem itemToLoop, CoreMedia.CMTimeRange loopRange);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSError Error { get; }
	public virtual nint LoopCount { get; }
	public virtual bool LoopingEnabled { get; }
	public virtual AVPlayerItem[] LoopingPlayerItems { get; }
	public virtual AVPlayerLooperStatus Status { get; }
	// methods
	public virtual void DisableLooping ();
	public static AVPlayerLooper FromPlayer (AVQueuePlayer player, AVPlayerItem itemToLoop);
	public static AVPlayerLooper FromPlayer (AVQueuePlayer player, AVPlayerItem itemToLoop, CoreMedia.CMTimeRange loopRange);
}

New Type AVFoundation.AVPlayerLooperStatus

[Serializable]
public enum AVPlayerLooperStatus {
	Cancelled = 3,
	Failed = 2,
	Ready = 1,
	Unknown = 0,
}

New Type AVFoundation.AVPlayerTimeControlStatus

[Serializable]
public enum AVPlayerTimeControlStatus {
	Paused = 0,
	Playing = 2,
	WaitingToPlayAtSpecifiedRate = 1,
}

New Type AVFoundation.AVPlayerViewControllerSkippingBehavior

[Serializable]
public enum AVPlayerViewControllerSkippingBehavior {
	Default = 0,
	SkipItem = 1,
}

New Type AVFoundation.AVVideoColorPrimaries

public static class AVVideoColorPrimaries {
	// properties
	public static Foundation.NSString Itu_R_709_2 { get; }
	public static Foundation.NSString P3_D65 { get; }
	public static Foundation.NSString Smpte_C { get; }
}

New Type AVFoundation.AVVideoTransferFunction

public static class AVVideoTransferFunction {
	// properties
	public static Foundation.NSString AVVideoTransferFunction_Itu_R_709_2 { get; }
}

New Type AVFoundation.AVVideoYCbCrMatrix

public static class AVVideoYCbCrMatrix {
	// properties
	public static Foundation.NSString Itu_R_601_4 { get; }
	public static Foundation.NSString Itu_R_709_2 { get; }
}

Namespace AVKit

Type Changed: AVKit.AVPlayerViewController

Added properties:

	public virtual AVContentProposalViewController ContentProposalViewController { get; set; }
	public virtual bool SkipBackwardEnabled { get; set; }
	public virtual bool SkipForwardEnabled { get; set; }
	public virtual AVFoundation.AVPlayerViewControllerSkippingBehavior SkippingBehavior { get; set; }

Type Changed: AVKit.AVPlayerViewControllerDelegate

Added methods:

	public virtual void DidAcceptContentProposal (AVPlayerViewController playerViewController, AVFoundation.AVContentProposal proposal);
	public virtual void DidRejectContentProposal (AVPlayerViewController playerViewController, AVFoundation.AVContentProposal proposal);
	public virtual CoreMedia.CMTime GetTimeToSeekAfterUserNavigated (AVPlayerViewController playerViewController, CoreMedia.CMTime oldTime, CoreMedia.CMTime targetTime);
	public virtual bool ShouldPresentContentProposal (AVPlayerViewController playerViewController, AVFoundation.AVContentProposal proposal);
	public virtual void SkipToNextItem (AVPlayerViewController playerViewController);
	public virtual void SkipToPreviousItem (AVPlayerViewController playerViewController);

Type Changed: AVKit.AVPlayerViewControllerDelegate_Extensions

Added methods:

	public static void DidAcceptContentProposal (IAVPlayerViewControllerDelegate This, AVPlayerViewController playerViewController, AVFoundation.AVContentProposal proposal);
	public static void DidRejectContentProposal (IAVPlayerViewControllerDelegate This, AVPlayerViewController playerViewController, AVFoundation.AVContentProposal proposal);
	public static CoreMedia.CMTime GetTimeToSeekAfterUserNavigated (IAVPlayerViewControllerDelegate This, AVPlayerViewController playerViewController, CoreMedia.CMTime oldTime, CoreMedia.CMTime targetTime);
	public static bool ShouldPresentContentProposal (IAVPlayerViewControllerDelegate This, AVPlayerViewController playerViewController, AVFoundation.AVContentProposal proposal);
	public static void SkipToNextItem (IAVPlayerViewControllerDelegate This, AVPlayerViewController playerViewController);
	public static void SkipToPreviousItem (IAVPlayerViewControllerDelegate This, AVPlayerViewController playerViewController);

New Type AVKit.AVContentProposalViewController

public class AVContentProposalViewController : UIKit.UIViewController, Foundation.INSCoding, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.Collections.IEnumerable, System.IDisposable, System.IEquatable<Foundation.NSObject>, UIKit.IUIAppearanceContainer, UIKit.IUIContentContainer, UIKit.IUIFocusEnvironment, UIKit.IUITraitEnvironment {
	// constructors
	public AVContentProposalViewController ();
	public AVContentProposalViewController (Foundation.NSCoder coder);
	protected AVContentProposalViewController (Foundation.NSObjectFlag t);
	protected AVContentProposalViewController (IntPtr handle);
	public AVContentProposalViewController (string nibName, Foundation.NSBundle bundle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVFoundation.AVContentProposal ContentProposal { get; }
	public virtual Foundation.NSDate DateOfAutomaticAcceptance { get; set; }
	public virtual UIKit.UILayoutGuide PlayerLayoutGuide { get; }
	public virtual AVPlayerViewController PlayerViewController { get; }
	public virtual CoreGraphics.CGRect PreferredPlayerViewFrame { get; }
	// methods
	public virtual void DismissContentProposal (AVFoundation.AVContentProposalAction action, bool animated, System.Action block);
	protected override void Dispose (bool disposing);
}

Namespace AudioToolbox

Type Changed: AudioToolbox.AudioQueueStatus

Added value:

	CannotStartYet = -66665,

Type Changed: AudioToolbox.AudioServicesError

Added value:

	SystemSoundExceededMaximumDurationError = -1502,

Type Changed: AudioToolbox.MusicSequence

Added methods:

	public MusicTrack GetTempoTrack ();
	public void SetUserCallback (MusicSequenceUserCallback callback);

New Type AudioToolbox.MusicSequenceUserCallback

public sealed delegate MusicSequenceUserCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public MusicSequenceUserCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (MusicTrack track, double inEventTime, MusicEventUserData inEventData, double inStartSliceBeat, double inEndSliceBeat, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (MusicTrack track, double inEventTime, MusicEventUserData inEventData, double inStartSliceBeat, double inEndSliceBeat);
}

Namespace AudioUnit

Type Changed: AudioUnit.AUAudioUnit

Added properties:

	public virtual Foundation.NSNumber[] ChannelMap { get; set; }
	public virtual bool SupportsMpe { get; }
	public virtual AUHostTransportStateBlock TransportStateBlock { get; set; }

Type Changed: AudioUnit.AUAudioUnit_AUAudioInputOutputUnit

Added methods:

	public static AUInputHandler GetInputHandler (AUAudioUnit This);
	public static AURenderPullInputBlock GetOutputProvider (AUAudioUnit This);
	public static void SetInputHandler (AUAudioUnit This, AUInputHandler handler);
	public static void SetOutputProvider (AUAudioUnit This, AURenderPullInputBlock provider);

Type Changed: AudioUnit.AUParameter

Obsoleted methods:

[Obsolete ("Use the AUParameterObserverToken overload")] public virtual void SetValue (float value, IntPtr originator);
[Obsolete ("Use the AUParameterObserverToken overload")] public virtual void SetValue (float value, IntPtr originator, ulong hostTime);

Added methods:

	public void SetValue (float value, AUParameterObserverToken originator);
	public void SetValue (float value, AUParameterObserverToken originator, ulong hostTime);
	public void SetValue (float value, AUParameterObserverToken originator, ulong hostTime, AUParameterAutomationEventType eventType);

Type Changed: AudioUnit.AUParameterNode

Modified properties:

public virtual AUImplementorStringFromValueCallback ImplementorStringFromValueCallback { get; set; }

Added properties:

	public virtual AUImplementorDisplayNameWithLengthCallback ImplementorDisplayNameWithLengthCallback { get; set; }
	public virtual AUImplementorValueFromStringCallback ImplementorValueFromStringCallback { get; set; }

Obsoleted methods:

[Obsolete ("Use the AUParameterObserverToken overload")] public virtual void RemoveParameterObserver (IntPtr token);
[Obsolete ("Use the CreateTokenByAddingParameterObserver instead")] public virtual IntPtr TokenByAddingParameterObserver (AUParameterObserver observer);

Added methods:

	public AUParameterObserverToken CreateTokenByAddingParameterObserver (AUParameterObserver observer);
	public AUParameterObserverToken CreateTokenByAddingParameterRecordingObserver (AUParameterRecordingObserver observer);
	public AUParameterObserverToken GetToken (AUParameterAutomationObserver observer);
	public void RemoveParameterObserver (AUParameterObserverToken token);

	[Obsolete ("Use the CreateTokenByAddingParameterRecordingObserver instead")]
	public virtual IntPtr TokenByAddingParameterRecordingObserver (AUParameterRecordingObserver observer);

Type Changed: AudioUnit.AudioComponentStatus

Added value:

	RenderTimeout = -66745,

New Type AudioUnit.AUHostTransportStateBlock

public sealed delegate AUHostTransportStateBlock : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUHostTransportStateBlock (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (ref AUHostTransportStateFlags transportStateFlags, ref double currentSamplePosition, ref double cycleStartBeatPosition, ref double cycleEndBeatPosition, System.AsyncCallback callback, object object);
	public virtual bool EndInvoke (ref AUHostTransportStateFlags transportStateFlags, ref double currentSamplePosition, ref double cycleStartBeatPosition, ref double cycleEndBeatPosition, System.IAsyncResult result);
	public virtual bool Invoke (ref AUHostTransportStateFlags transportStateFlags, ref double currentSamplePosition, ref double cycleStartBeatPosition, ref double cycleEndBeatPosition);
}

New Type AudioUnit.AUImplementorDisplayNameWithLengthCallback

public sealed delegate AUImplementorDisplayNameWithLengthCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUImplementorDisplayNameWithLengthCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (AUParameterNode node, nint desiredLength, System.AsyncCallback callback, object object);
	public virtual string EndInvoke (System.IAsyncResult result);
	public virtual string Invoke (AUParameterNode node, nint desiredLength);
}

New Type AudioUnit.AUImplementorValueFromStringCallback

public sealed delegate AUImplementorValueFromStringCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUImplementorValueFromStringCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (AUParameter param, string str, System.AsyncCallback callback, object object);
	public virtual float EndInvoke (System.IAsyncResult result);
	public virtual float Invoke (AUParameter param, string str);
}

New Type AudioUnit.AUInputHandler

public sealed delegate AUInputHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUInputHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (ref AudioUnitRenderActionFlags actionFlags, ref AudioToolbox.AudioTimeStamp timestamp, uint frameCount, nint inputBusNumber, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (ref AudioUnitRenderActionFlags actionFlags, ref AudioToolbox.AudioTimeStamp timestamp, System.IAsyncResult result);
	public virtual void Invoke (ref AudioUnitRenderActionFlags actionFlags, ref AudioToolbox.AudioTimeStamp timestamp, uint frameCount, nint inputBusNumber);
}

New Type AudioUnit.AUParameterAutomationEvent

public struct AUParameterAutomationEvent {
	// fields
	public ulong Address;
	public AUParameterAutomationEventType EventType;
	public ulong HostTime;
	public float Value;
}

New Type AudioUnit.AUParameterAutomationEventType

[Serializable]
public enum AUParameterAutomationEventType {
	Release = 2,
	Touch = 1,
	Value = 0,
}

New Type AudioUnit.AUParameterAutomationObserver

public sealed delegate AUParameterAutomationObserver : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUParameterAutomationObserver (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (ulong address, float value, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (ulong address, float value);
}

New Type AudioUnit.AUParameterObserverToken

public struct AUParameterObserverToken {
	// constructors
	public AUParameterObserverToken (IntPtr observerToken);
	// fields
	public IntPtr ObserverToken;
}

New Type AudioUnit.AUParameterRecordingObserver

public sealed delegate AUParameterRecordingObserver : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUParameterRecordingObserver (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (nint numberOfEvents, ref AURecordedParameterEvent events, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (ref AURecordedParameterEvent events, System.IAsyncResult result);
	public virtual void Invoke (nint numberOfEvents, ref AURecordedParameterEvent events);
}

New Type AudioUnit.AURecordedParameterEvent

public struct AURecordedParameterEvent {
	// fields
	public ulong Address;
	public ulong HostTime;
	public float Value;
}

New Type AudioUnit.IAUAudioUnitFactory

public interface IAUAudioUnitFactory : Foundation.INSExtensionRequestHandling, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual AUAudioUnit CreateAudioUnit (AudioComponentDescription desc, out Foundation.NSError error);
}

Namespace CloudKit

Type Changed: CloudKit.CKContainer

Added properties:

	public static Foundation.NSString CurrentUserDefaultName { get; }
	public virtual CKDatabase SharedCloudDatabase { get; }

Added methods:

	public virtual void AcceptShareMetadata (CKShareMetadata metadata, System.Action<CKShare,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShare> AcceptShareMetadataAsync (CKShareMetadata metadata);
	public virtual void DiscoverUserIdentity (CKRecordID userRecordID, System.Action<CKUserIdentity,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKUserIdentity> DiscoverUserIdentityAsync (CKRecordID userRecordID);
	public virtual void DiscoverUserIdentityWithEmailAddress (string email, System.Action<CKUserIdentity,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKUserIdentity> DiscoverUserIdentityWithEmailAddressAsync (string email);
	public virtual void DiscoverUserIdentityWithPhoneNumber (string phoneNumber, System.Action<CKUserIdentity,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKUserIdentity> DiscoverUserIdentityWithPhoneNumberAsync (string phoneNumber);
	public virtual void FetchShareMetadata (Foundation.NSUrl url, System.Action<CKShareMetadata,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareMetadata> FetchShareMetadataAsync (Foundation.NSUrl url);
	public virtual void FetchShareParticipant (CKRecordID userRecordID, System.Action<CKShareParticipant,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareParticipant> FetchShareParticipantAsync (CKRecordID userRecordID);
	public virtual void FetchShareParticipantWithEmailAddress (string emailAddress, System.Action<CKShareParticipant,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareParticipant> FetchShareParticipantWithEmailAddressAsync (string emailAddress);
	public virtual void FetchShareParticipantWithPhoneNumber (string phoneNumber, System.Action<CKShareParticipant,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareParticipant> FetchShareParticipantWithPhoneNumberAsync (string phoneNumber);
	public virtual CKDatabase GetDatabase (CKDatabaseScope databaseScope);

Type Changed: CloudKit.CKDatabase

Added property:

	public virtual CKDatabaseScope DatabaseScope { get; }

Type Changed: CloudKit.CKErrorCode

Added values:

	AlreadyShared = 30,
	ManagedAccountRestricted = 32,
	ParticipantMayNeedVerification = 33,
	ReferenceViolation = 31,
	TooManyParticipants = 29,

Type Changed: CloudKit.CKNotification

Added property:

	public virtual Foundation.NSNumber Badge { get; }

Type Changed: CloudKit.CKNotificationID

Obsoleted constructors:

[Obsolete ("This type is not meant to be created by user code")] public CKNotificationID ();

Type Changed: CloudKit.CKNotificationInfo

Added properties:

	public virtual bool ShouldBadge { get; set; }
	public virtual bool ShouldSendContentAvailable { get; set; }

Type Changed: CloudKit.CKNotificationType

Added value:

	Database = 4,

Type Changed: CloudKit.CKOperation

Added properties:

	public virtual double TimeoutIntervalForRequest { get; set; }
	public virtual double TimeoutIntervalForResource { get; set; }

Type Changed: CloudKit.CKQueryNotification

Added property:

	public virtual CKDatabaseScope DatabaseScope { get; }

Type Changed: CloudKit.CKRecord

Added properties:

	public virtual CKReference Parent { get; set; }
	public static Foundation.NSString ParentKey { get; }
	public virtual CKReference Share { get; }
	public static Foundation.NSString ShareKey { get; }
	public static Foundation.NSString TypeShare { get; }

Added methods:

	public virtual void SetParent (CKRecord parentRecord);
	public virtual void SetParent (CKRecordID parentRecordID);

Type Changed: CloudKit.CKRecordZoneCapabilities

Added value:

	Sharing = 4,

Type Changed: CloudKit.CKRecordZoneNotification

Added property:

	public virtual CKDatabaseScope DatabaseScope { get; }

Type Changed: CloudKit.CKSubscriptionType

Added value:

	Database = 3,

New Type CloudKit.CKAcceptPerShareCompletionHandler

public sealed delegate CKAcceptPerShareCompletionHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKAcceptPerShareCompletionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKShareMetadata shareMetadata, CKShare acceptedShare, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKShareMetadata shareMetadata, CKShare acceptedShare, Foundation.NSError error);
}

New Type CloudKit.CKAcceptSharesOperation

public class CKAcceptSharesOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKAcceptSharesOperation ();
	public CKAcceptSharesOperation (CKShareMetadata[] shareMetadatas);
	protected CKAcceptSharesOperation (Foundation.NSObjectFlag t);
	protected CKAcceptSharesOperation (IntPtr handle);
	// properties
	public virtual System.Action<Foundation.NSError> AcceptSharesCompleted { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual CKAcceptPerShareCompletionHandler PerShareCompleted { get; set; }
	public virtual CKShareMetadata[] ShareMetadatas { get; set; }
}

New Type CloudKit.CKDatabaseNotification

public class CKDatabaseNotification : CloudKit.CKNotification, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKDatabaseNotification (Foundation.NSCoder coder);
	protected CKDatabaseNotification (Foundation.NSObjectFlag t);
	protected CKDatabaseNotification (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKDatabaseScope DatabaseScope { get; }
}

New Type CloudKit.CKDatabaseScope

[Serializable]
public enum CKDatabaseScope {
	Private = 2,
	Public = 1,
	Shared = 3,
}

New Type CloudKit.CKDatabaseSubscription

public class CKDatabaseSubscription : CloudKit.CKSubscription, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKDatabaseSubscription (Foundation.NSCoder coder);
	protected CKDatabaseSubscription (Foundation.NSObjectFlag t);
	protected CKDatabaseSubscription (IntPtr handle);
	public CKDatabaseSubscription (string subscriptionID);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string RecordType { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKDiscoverUserIdentitiesOperation

public class CKDiscoverUserIdentitiesOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKDiscoverUserIdentitiesOperation ();
	public CKDiscoverUserIdentitiesOperation (CKUserIdentityLookupInfo[] userIdentityLookupInfos);
	protected CKDiscoverUserIdentitiesOperation (Foundation.NSObjectFlag t);
	protected CKDiscoverUserIdentitiesOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> Completed { get; set; }
	public virtual System.Action<CKUserIdentity,CloudKit.CKUserIdentityLookupInfo> Discovered { get; set; }
	public virtual CKUserIdentityLookupInfo[] UserIdentityLookupInfos { get; set; }
}

New Type CloudKit.CKFetchDatabaseChangesCompletionHandler

public sealed delegate CKFetchDatabaseChangesCompletionHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchDatabaseChangesCompletionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKServerChangeToken serverChangeToken, bool moreComing, Foundation.NSError operationError, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKServerChangeToken serverChangeToken, bool moreComing, Foundation.NSError operationError);
}

New Type CloudKit.CKFetchDatabaseChangesOperation

public class CKFetchDatabaseChangesOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchDatabaseChangesOperation ();
	public CKFetchDatabaseChangesOperation (CKServerChangeToken previousServerChangeToken);
	protected CKFetchDatabaseChangesOperation (Foundation.NSObjectFlag t);
	protected CKFetchDatabaseChangesOperation (IntPtr handle);
	// properties
	public virtual System.Action<CKServerChangeToken> ChangeTokenUpdated { get; set; }
	public virtual System.Action<CKRecordZoneID> Changed { get; set; }
	public virtual CKFetchDatabaseChangesCompletionHandler ChangesCompleted { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual bool FetchAllChanges { get; set; }
	public virtual CKServerChangeToken PreviousServerChangeToken { get; set; }
	public virtual uint ResultsLimit { get; set; }
	public virtual System.Action<CKRecordZoneID> WasDeleted { get; set; }
}

New Type CloudKit.CKFetchPerShareMetadataHandler

public sealed delegate CKFetchPerShareMetadataHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchPerShareMetadataHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (Foundation.NSUrl shareURL, CKShareMetadata shareMetadata, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (Foundation.NSUrl shareURL, CKShareMetadata shareMetadata, Foundation.NSError error);
}

New Type CloudKit.CKFetchRecordZoneChangesFetchCompletedHandler

public sealed delegate CKFetchRecordZoneChangesFetchCompletedHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchRecordZoneChangesFetchCompletedHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData, bool moreComing, Foundation.NSError recordZoneError, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData, bool moreComing, Foundation.NSError recordZoneError);
}

New Type CloudKit.CKFetchRecordZoneChangesOperation

public class CKFetchRecordZoneChangesOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchRecordZoneChangesOperation ();
	protected CKFetchRecordZoneChangesOperation (Foundation.NSObjectFlag t);
	protected CKFetchRecordZoneChangesOperation (IntPtr handle);
	public CKFetchRecordZoneChangesOperation (CKRecordZoneID[] recordZoneIDs, Foundation.NSDictionary<CKRecordZoneID,CloudKit.CKFetchRecordZoneChangesOptions> optionsByRecordZoneID);
	// properties
	public virtual System.Action<Foundation.NSError> ChangesCompleted { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual bool FetchAllChanges { get; set; }
	public virtual CKFetchRecordZoneChangesFetchCompletedHandler FetchCompleted { get; set; }
	public virtual Foundation.NSDictionary<CKRecordZoneID,CloudKit.CKFetchRecordZoneChangesOptions> OptionsByRecordZoneID { get; set; }
	public virtual System.Action<CKRecord> RecordChanged { get; set; }
	public virtual CKFetchRecordZoneChangesWithIDWasDeletedHandler RecordWithIDWasDeleted { get; set; }
	public virtual CKFetchRecordZoneChangesTokensUpdatedHandler RecordZoneChangeTokensUpdated { get; set; }
	public virtual CKRecordZoneID[] RecordZoneIDs { get; set; }
}

New Type CloudKit.CKFetchRecordZoneChangesOptions

public class CKFetchRecordZoneChangesOptions : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchRecordZoneChangesOptions ();
	public CKFetchRecordZoneChangesOptions (Foundation.NSCoder coder);
	protected CKFetchRecordZoneChangesOptions (Foundation.NSObjectFlag t);
	protected CKFetchRecordZoneChangesOptions (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string[] DesiredKeys { get; set; }
	public virtual CKServerChangeToken PreviousServerChangeToken { get; set; }
	public virtual uint ResultsLimit { get; set; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKFetchRecordZoneChangesTokensUpdatedHandler

public sealed delegate CKFetchRecordZoneChangesTokensUpdatedHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchRecordZoneChangesTokensUpdatedHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData);
}

New Type CloudKit.CKFetchRecordZoneChangesWithIDWasDeletedHandler

public sealed delegate CKFetchRecordZoneChangesWithIDWasDeletedHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchRecordZoneChangesWithIDWasDeletedHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKRecordID recordID, Foundation.NSString recordType, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKRecordID recordID, Foundation.NSString recordType);
}

New Type CloudKit.CKFetchShareMetadataOperation

public class CKFetchShareMetadataOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchShareMetadataOperation ();
	protected CKFetchShareMetadataOperation (Foundation.NSObjectFlag t);
	public CKFetchShareMetadataOperation (Foundation.NSUrl[] shareUrls);
	protected CKFetchShareMetadataOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> FetchShareMetadataCompleted { get; set; }
	public virtual CKFetchPerShareMetadataHandler PerShareMetadata { get; set; }
	public virtual string[] RootRecordDesiredKeys { get; set; }
	public virtual Foundation.NSUrl[] ShareUrls { get; set; }
	public virtual bool ShouldFetchRootRecord { get; set; }
}

New Type CloudKit.CKFetchShareParticipantsOperation

public class CKFetchShareParticipantsOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchShareParticipantsOperation ();
	public CKFetchShareParticipantsOperation (CKUserIdentityLookupInfo[] userIdentityLookupInfos);
	protected CKFetchShareParticipantsOperation (Foundation.NSObjectFlag t);
	protected CKFetchShareParticipantsOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> Completed { get; set; }
	public virtual System.Action<CKShareParticipant> Fetched { get; set; }
	public virtual CKUserIdentityLookupInfo[] UserIdentityLookupInfos { get; set; }
}

New Type CloudKit.CKQuerySubscription

public class CKQuerySubscription : CloudKit.CKSubscription, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKQuerySubscription (Foundation.NSCoder coder);
	protected CKQuerySubscription (Foundation.NSObjectFlag t);
	protected CKQuerySubscription (IntPtr handle);
	public CKQuerySubscription (string recordType, Foundation.NSPredicate predicate, CKQuerySubscriptionOptions querySubscriptionOptions);
	public CKQuerySubscription (string recordType, Foundation.NSPredicate predicate, string subscriptionID, CKQuerySubscriptionOptions querySubscriptionOptions);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSPredicate Predicate { get; }
	public virtual string RecordType { get; }
	public virtual CKQuerySubscriptionOptions SubscriptionOptions { get; }
	public virtual CKRecordZoneID ZoneID { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKQuerySubscriptionOptions

[Serializable]
public enum CKQuerySubscriptionOptions {
	FiresOnce = 8,
	RecordCreation = 1,
	RecordDeletion = 4,
	RecordUpdate = 2,
}

New Type CloudKit.CKRecordZoneSubscription

public class CKRecordZoneSubscription : CloudKit.CKSubscription, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKRecordZoneSubscription (CKRecordZoneID zoneID);
	public CKRecordZoneSubscription (Foundation.NSCoder coder);
	protected CKRecordZoneSubscription (Foundation.NSObjectFlag t);
	protected CKRecordZoneSubscription (IntPtr handle);
	public CKRecordZoneSubscription (CKRecordZoneID zoneID, string subscriptionID);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string RecordType { get; set; }
	public virtual CKRecordZoneID ZoneID { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKShare

public class CKShare : CloudKit.CKRecord, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKShare (CKRecord rootRecord);
	public CKShare (Foundation.NSCoder coder);
	protected CKShare (Foundation.NSObjectFlag t);
	protected CKShare (IntPtr handle);
	public CKShare (CKRecord rootRecord, CKRecordID shareID);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKShareParticipant CurrentUser { get; }
	public virtual CKShareParticipant Owner { get; }
	public virtual CKShareParticipant[] Participants { get; }
	public virtual CKShareParticipantPermission PublicPermission { get; set; }
	public virtual Foundation.NSUrl Url { get; }
	// methods
	public virtual void Add (CKShareParticipant participant);
	public virtual void Remove (CKShareParticipant participant);
}

New Type CloudKit.CKShareKeys

public static class CKShareKeys {
	// properties
	public static Foundation.NSString ThumbnailImageData { get; }
	public static Foundation.NSString Title { get; }
	public static Foundation.NSString Type { get; }
}

New Type CloudKit.CKShareMetadata

public class CKShareMetadata : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKShareMetadata ();
	public CKShareMetadata (Foundation.NSCoder coder);
	protected CKShareMetadata (Foundation.NSObjectFlag t);
	protected CKShareMetadata (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string ContainerIdentifier { get; }
	public virtual CKUserIdentity OwnerIdentity { get; }
	public virtual CKShareParticipantPermission Permission { get; }
	public virtual CKRecord RootRecord { get; }
	public virtual CKRecordID RootRecordID { get; }
	public virtual CKShare Share { get; }
	public virtual CKShareParticipantAcceptanceStatus Status { get; }
	public virtual CKShareParticipantType Type { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKShareParticipant

public class CKShareParticipant : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKShareParticipant (Foundation.NSCoder coder);
	protected CKShareParticipant (Foundation.NSObjectFlag t);
	protected CKShareParticipant (IntPtr handle);
	// properties
	public virtual CKShareParticipantAcceptanceStatus AcceptanceStatus { get; }
	public override IntPtr ClassHandle { get; }
	public virtual CKShareParticipantPermission Permission { get; set; }
	public virtual CKShareParticipantType Type { get; set; }
	public virtual CKUserIdentity UserIdentity { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKShareParticipantAcceptanceStatus

[Serializable]
public enum CKShareParticipantAcceptanceStatus {
	Accepted = 2,
	Pending = 1,
	Removed = 3,
	Unknown = 0,
}

New Type CloudKit.CKShareParticipantPermission

[Serializable]
public enum CKShareParticipantPermission {
	None = 1,
	ReadOnly = 2,
	ReadWrite = 3,
	Unknown = 0,
}

New Type CloudKit.CKShareParticipantType

[Serializable]
public enum CKShareParticipantType {
	Owner = 1,
	PrivateUser = 3,
	PublicUser = 4,
	Unknown = 0,
}

New Type CloudKit.CKUserIdentity

public class CKUserIdentity : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKUserIdentity (Foundation.NSCoder coder);
	protected CKUserIdentity (Foundation.NSObjectFlag t);
	protected CKUserIdentity (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool HasICloudAccount { get; }
	public virtual CKUserIdentityLookupInfo LookupInfo { get; }
	public virtual Foundation.NSPersonNameComponents NameComponents { get; }
	public virtual CKRecordID UserRecordID { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKUserIdentityLookupInfo

public class CKUserIdentityLookupInfo : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKUserIdentityLookupInfo (CKRecordID userRecordID);
	public CKUserIdentityLookupInfo (Foundation.NSCoder coder);
	protected CKUserIdentityLookupInfo (Foundation.NSObjectFlag t);
	protected CKUserIdentityLookupInfo (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string EmailAddress { get; }
	public virtual string PhoneNumber { get; }
	public virtual CKRecordID UserRecordID { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static CKUserIdentityLookupInfo FromEmail (string email);
	public static CKUserIdentityLookupInfo FromPhoneNumber (string phoneNumber);
	public static CKUserIdentityLookupInfo[] GetLookupInfos (CKRecordID[] recordIDs);
	public static CKUserIdentityLookupInfo[] GetLookupInfosWithEmails (string[] emails);
	public static CKUserIdentityLookupInfo[] GetLookupInfosWithPhoneNumbers (string[] phoneNumbers);
}

Namespace CoreAnimation

Type Changed: CoreAnimation.CADisplayLink

Added properties:

	public virtual nint PreferredFramesPerSecond { get; set; }
	public virtual double TargetTimestamp { get; }

Type Changed: CoreAnimation.CAEmitterBehavior

Added property:

	public static Foundation.NSString SimpleAttractor { get; }

Type Changed: CoreAnimation.CALayer

Added property:

	public CAContentsFormat ContentsFormat { get; set; }

Type Changed: CoreAnimation.CALayerDelegate

Added method:

	public virtual void WillDrawLayer (CALayer layer);

Type Changed: CoreAnimation.CALayerDelegate_Extensions

Added method:

	public static void WillDrawLayer (ICALayerDelegate This, CALayer layer);

Type Changed: CoreAnimation.CATransform3D

Obsoleted methods:

[Obsolete ("Use Invert() as the argument to this method is unused.")] public CATransform3D Invert (CATransform3D t);

Added method:

	public CATransform3D Invert ();

New Type CoreAnimation.CAContentsFormat

[Serializable]
public enum CAContentsFormat {
	Gray8Uint = 0,
	Rgba16Float = 2,
	Rgba8Uint = 1,
}

New Type CoreAnimation.CAContentsFormatExtensions

public static class CAContentsFormatExtensions {
	// methods
	public static Foundation.NSString GetConstant (CAContentsFormat self);
	public static CAContentsFormat GetValue (Foundation.NSString constant);
}

Namespace CoreBluetooth

Type Changed: CoreBluetooth.CBCentralManager

Modified base type: Foundation.NSObject CoreBluetooth.CBManager

Type Changed: CoreBluetooth.CBPeripheralManager

Modified base type: Foundation.NSObject CoreBluetooth.CBManager

Added constructor:

	public CBPeripheralManager ();

Type Changed: CoreBluetooth.CBUUID

Added property:

	public static Foundation.NSString CharacteristicValidRangeString { get; }

New Type CoreBluetooth.AdvertisementData

public class AdvertisementData : Foundation.DictionaryContainer {
	// constructors
	public AdvertisementData ();
	public AdvertisementData (Foundation.NSDictionary dictionary);
	// properties
	public bool? IsConnectable { get; set; }
	public string LocalName { get; set; }
	public Foundation.NSData ManufacturerData { get; set; }
	public CBUUID[] OverflowServiceUuids { get; set; }
	public Foundation.NSDictionary<CBUUID,Foundation.NSData> ServiceData { get; set; }
	public CBUUID[] ServiceUuids { get; set; }
	public CBUUID[] SolicitedServiceUuids { get; set; }
	public Foundation.NSNumber TxPowerLevel { get; set; }
}

New Type CoreBluetooth.CBManager

public class CBManager : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected CBManager (Foundation.NSObjectFlag t);
	protected CBManager (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CBManagerState State { get; }
}

New Type CoreBluetooth.CBManagerState

[Serializable]
public enum CBManagerState {
	PoweredOff = 4,
	PoweredOn = 5,
	Resetting = 1,
	Unauthorized = 3,
	Unknown = 0,
	Unsupported = 2,
}

New Type CoreBluetooth.RestoredState

public class RestoredState : Foundation.DictionaryContainer {
	// constructors
	public RestoredState ();
	public RestoredState (Foundation.NSDictionary dictionary);
	// properties
	public CBPeripheral[] Peripherals { get; set; }
	public PeripheralScanningOptions ScanOptions { get; set; }
	public CBPeripheral[] ScanServices { get; set; }
}

Namespace CoreData

Type Changed: CoreData.NSEntityDescription

Added property:

	public virtual string RenamingIdentifier { get; set; }

Type Changed: CoreData.NSEntityMappingType

Modified fields:

Copy = 5 4
Transform = 6 5

Type Changed: CoreData.NSFetchRequest

Added method:

	public virtual INSFetchRequestResult[] Execute (out Foundation.NSError error);

Type Changed: CoreData.NSIncrementalStore

Modified methods:

public Foundation.NSObject IdentifierForNewStoreAtURL (Foundation.NSUrl storeURL storeUrl)

Type Changed: CoreData.NSManagedObject

Added constructor:

	public NSManagedObject (NSManagedObjectContext moc);

Added properties:

	public static bool ContextShouldIgnoreUnModeledPropertyChanges { get; }
	public virtual uint FaultingState { get; }

Added methods:

	public virtual void AwakeFromSnapshotEvents (NSSnapshotEventType flags);
	public static NSFetchRequest CreateFetchRequest ();
	public static NSEntityDescription GetEntityDescription ();

Type Changed: CoreData.NSManagedObjectContext

Added properties:

	public virtual bool AutomaticallyMergesChangesFromParent { get; set; }
	public virtual NSQueryGenerationToken QueryGenerationToken { get; }

Added method:

	public virtual bool SetQueryGenerationFromToken (NSQueryGenerationToken generation, out Foundation.NSError error);

Type Changed: CoreData.NSManagedObjectID

Added method:

	protected override void Dispose (bool disposing);

Type Changed: CoreData.NSMappingModel

Added method:

	public static NSMappingModel GetInferredMappingModel (NSManagedObjectModel source, NSManagedObjectModel destination, out Foundation.NSError error);

Type Changed: CoreData.NSMergePolicy

Added properties:

	public static NSMergePolicy ErrorPolicy { get; }
	public static NSMergePolicy MergeByPropertyObjectTrumpPolicy { get; }
	public static NSMergePolicy MergeByPropertyStoreTrumpPolicy { get; }
	public static NSMergePolicy OverwritePolicy { get; }
	public static NSMergePolicy RollbackPolicy { get; }

Type Changed: CoreData.NSMigrationManager

Modified methods:

public virtual bool MigrateStoreFromUrl (Foundation.NSUrl sourceURL sourceUrl, string sStoreType, Foundation.NSDictionary sOptions, NSMappingModel mappings, Foundation.NSUrl dURL dUrl, string dStoreType, Foundation.NSDictionary dOptions, out Foundation.NSError error)

Type Changed: CoreData.NSPersistentStore

Added methods:

	protected override void Dispose (bool disposing);
	public virtual bool LoadMetadata (out Foundation.NSError error);

Type Changed: CoreData.NSPersistentStoreCoordinator

Modified methods:

public virtual NSPersistentStore AddPersistentStoreWithType (Foundation.NSString storeType, string configuration, Foundation.NSUrl storeURL storeUrl, Foundation.NSDictionary options, out Foundation.NSError error)
public virtual NSPersistentStore MigratePersistentStore (NSPersistentStore store, Foundation.NSUrl URL url, Foundation.NSDictionary options, Foundation.NSString storeType, out Foundation.NSError error)
public virtual NSPersistentStore PersistentStoreForUrl (Foundation.NSUrl URL url)
public virtual bool ReplacePersistentStore (Foundation.NSUrl destinationURL destinationUrl, Foundation.NSDictionary destinationOptions, Foundation.NSUrl sourceURL sourceUrl, Foundation.NSDictionary sourceOptions, string storeType, out Foundation.NSError error)

Added methods:

	public virtual void AddPersistentStore (NSPersistentStoreDescription storeDescription, System.Action<NSPersistentStoreDescription,Foundation.NSError> block);
	public virtual System.Threading.Tasks.Task<NSPersistentStoreDescription> AddPersistentStoreAsync (NSPersistentStoreDescription storeDescription);
	public static Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> GetMetadata (string storeType, Foundation.NSUrl url, Foundation.NSDictionary options, out Foundation.NSError error);
	public static bool SetMetadata (Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> metadata, string storeType, Foundation.NSUrl url, Foundation.NSDictionary options, out Foundation.NSError error);

Type Changed: CoreData.NSPropertyDescription

Added property:

	public virtual string RenamingIdentifier { get; set; }

New Type CoreData.INSFetchRequestResult

public interface INSFetchRequestResult : ObjCRuntime.INativeObject, System.IDisposable {
}

New Type CoreData.MigrationErrorType

[Serializable]
public enum MigrationErrorType {
	EntityMigrationPolicy = 134170,
	ExternalRecordImport = 134200,
	InferredMappingModel = 134190,
	Migration = 134110,
	MigrationCancelled = 134120,
	MigrationManagerDestinationStore = 134160,
	MigrationManagerSourceStore = 134150,
	MigrationMissingMappingModel = 134140,
	MigrationMissingSourceModel = 134130,
}

New Type CoreData.NSExpressionDescription

public class NSExpressionDescription : CoreData.NSPropertyDescription, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public NSExpressionDescription ();
	public NSExpressionDescription (Foundation.NSCoder coder);
	protected NSExpressionDescription (Foundation.NSObjectFlag t);
	protected NSExpressionDescription (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSExpression Expression { get; set; }
	public virtual NSAttributeType ResultType { get; set; }
}

New Type CoreData.NSFetchRequestExpression

public class NSFetchRequestExpression : Foundation.NSExpression, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public NSFetchRequestExpression (Foundation.NSCoder coder);
	protected NSFetchRequestExpression (Foundation.NSObjectFlag t);
	protected NSFetchRequestExpression (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSExpression Context { get; }
	public virtual bool IsCountOnly { get; }
	public virtual Foundation.NSExpression Request { get; }
	// methods
	public static NSFetchRequestExpression FromFetch (Foundation.NSExpression fetch, Foundation.NSExpression context, bool countOnly);
}

New Type CoreData.NSPersistentContainer

public class NSPersistentContainer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected NSPersistentContainer (Foundation.NSObjectFlag t);
	protected NSPersistentContainer (IntPtr handle);
	public NSPersistentContainer (string name);
	public NSPersistentContainer (string name, NSManagedObjectModel model);
	// properties
	public override IntPtr ClassHandle { get; }
	public static Foundation.NSUrl DefaultDirectoryUrl { get; }
	public virtual NSManagedObjectModel ManagedObjectModel { get; }
	public virtual string Name { get; }
	public virtual NSManagedObjectContext NewBackgroundContext { get; }
	public virtual NSPersistentStoreCoordinator PersistentStoreCoordinator { get; }
	public virtual NSPersistentStoreDescription[] PersistentStoreDescriptions { get; set; }
	public virtual NSManagedObjectContext ViewContext { get; }
	// methods
	public static NSPersistentContainer GetPersistentContainer (string name);
	public static NSPersistentContainer GetPersistentContainer (string name, NSManagedObjectModel model);
	public virtual void LoadPersistentStores (System.Action<NSPersistentStoreDescription,Foundation.NSError> block);
	public virtual System.Threading.Tasks.Task<NSPersistentStoreDescription> LoadPersistentStoresAsync ();
	public virtual void Perform (System.Action<NSManagedObjectContext> block);
}

New Type CoreData.NSPersistentStoreDescription

public class NSPersistentStoreDescription : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected NSPersistentStoreDescription (Foundation.NSObjectFlag t);
	public NSPersistentStoreDescription (Foundation.NSUrl url);
	protected NSPersistentStoreDescription (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string Configuration { get; set; }
	public virtual bool IsReadOnly { get; set; }
	public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> Options { get; }
	public virtual bool ShouldAddStoreAsynchronously { get; set; }
	public virtual bool ShouldInferMappingModelAutomatically { get; set; }
	public virtual bool ShouldMigrateStoreAutomatically { get; set; }
	public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> SqlitePragmas { get; }
	public virtual double Timeout { get; set; }
	public virtual string Type { get; set; }
	public virtual Foundation.NSUrl Url { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static NSPersistentStoreDescription GetPersistentStoreDescription (Foundation.NSUrl Url);
	public virtual void SetOption (Foundation.NSObject option, string key);
	public virtual void SetValue (Foundation.NSObject value, string name);
}

New Type CoreData.NSQueryGenerationToken

public class NSQueryGenerationToken : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public NSQueryGenerationToken ();
	protected NSQueryGenerationToken (Foundation.NSObjectFlag t);
	protected NSQueryGenerationToken (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static NSQueryGenerationToken CurrentToken { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type CoreData.NSSnapshotEventType

[Serializable]
public enum NSSnapshotEventType {
	MergePolicy = 64,
	Refresh = 32,
	Rollback = 16,
	UndoDeletion = 4,
	UndoInsertion = 2,
	UndoUpdate = 8,
}

New Type CoreData.ObjectGraphManagementErrorType

[Serializable]
public enum ObjectGraphManagementErrorType {
	ManagedObjectContextLocking = 132000,
	ManagedObjectExternalRelationship = 133010,
	ManagedObjectMerge = 133020,
	ManagedObjectReferentialIntegrity = 133000,
	PersistentStoreCoordinatorLocking = 132010,
}

New Type CoreData.PersistentStoreErrorType

[Serializable]
public enum PersistentStoreErrorType {
	IncompatibleSchema = 134020,
	IncompatibleVersionHash = 134100,
	IncompleteSave = 134040,
	InvalidType = 134000,
	Open = 134080,
	Operation = 134070,
	Save = 134030,
	SaveConflicts = 134050,
	Timeout = 134090,
	TypeMismatch = 134010,
}

New Type CoreData.UserInfo

public class UserInfo : Foundation.DictionaryContainer {
	// constructors
	public UserInfo ();
	public UserInfo (Foundation.NSDictionary dictionary);
	// properties
	public NSPersistentStore[] AffectedStoresForError { get; set; }
	public Foundation.NSError[] DetailedErrors { get; set; }
	public Foundation.NSString KeyForValidationError { get; set; }
	public NSManagedObject ObjectForValidationError { get; set; }
	public NSMergeConflict[] PersistentStoreSaveConflicts { get; set; }
	public Foundation.NSPredicate PredicateForValidationError { get; set; }
	public Foundation.NSValue ValueForValidationError { get; set; }
}

New Type CoreData.UserInfoKeys

public static class UserInfoKeys {
	// properties
	public static Foundation.NSString AffectedStoresForErrorKey { get; }
	public static Foundation.NSString DetailedErrorsKey { get; }
	public static Foundation.NSString KeyForValidationErrorKey { get; }
	public static Foundation.NSString ObjectForValidationErrorKey { get; }
	public static Foundation.NSString PersistentStoreSaveConflictsKey { get; }
	public static Foundation.NSString PredicateForValidationErrorKey { get; }
	public static Foundation.NSString ValueForValidationErrorKey { get; }
}

New Type CoreData.ValidationErrorType

[Serializable]
public enum ValidationErrorType {
	DateTooLate = 1630,
	DateTooSoon = 1640,
	InvalidDate = 1650,
	ManagedObjectValidation = 1550,
	MissingMandatoryProperty = 1570,
	MultipleErrors = 1560,
	NumberTooLarge = 1610,
	NumberTooSmall = 1620,
	RelationshipDeniedDelete = 1600,
	RelationshipExceedsMaximumCount = 1590,
	RelationshipLacksMinimumCount = 1580,
	StringPatternMatching = 1680,
	StringTooLong = 1660,
	StringTooShort = 1670,
}

Namespace CoreGraphics

Type Changed: CoreGraphics.CGColorSpace

Added properties:

	public bool IsWideGamutRgb { get; }
	public string Name { get; }
	public bool SupportsOutput { get; }

Added method:

	public Foundation.NSData GetIccData ();

Type Changed: CoreGraphics.CGColorSpaceNames

Added properties:

	public static Foundation.NSString ExtendedGray { get; }
	public static Foundation.NSString ExtendedLinearGray { get; }
	public static Foundation.NSString ExtendedLinearSrgb { get; }
	public static Foundation.NSString ExtendedSrgb { get; }
	public static Foundation.NSString LinearGray { get; }
	public static Foundation.NSString LinearSrgb { get; }

New Type CoreGraphics.CGColorConversionInfo

public class CGColorConversionInfo : ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CGColorConversionInfo (CGColorConversionOptions options, GColorConversionInfoTriple[] triples);
	public CGColorConversionInfo (CGColorSpace src, CGColorSpace dst);
	public CGColorConversionInfo (Foundation.NSDictionary options, GColorConversionInfoTriple[] triples);
	// properties
	public virtual IntPtr Handle { get; }
	// methods
	public virtual void Dispose ();
	protected virtual void Dispose (bool disposing);
	protected override void ~CGColorConversionInfo ();
}

New Type CoreGraphics.CGColorConversionInfoTransformType

[Serializable]
public enum CGColorConversionInfoTransformType {
	ApplySpace = 2,
	FromSpace = 0,
	ToSpace = 1,
}

New Type CoreGraphics.CGColorConversionOptions

public class CGColorConversionOptions : Foundation.DictionaryContainer {
	// constructors
	public CGColorConversionOptions ();
	public CGColorConversionOptions (Foundation.NSDictionary dictionary);
	// properties
	public bool? BlackPointCompensation { get; set; }
}

New Type CoreGraphics.GColorConversionInfoTriple

public struct GColorConversionInfoTriple {
	// fields
	public CGColorRenderingIntent Intent;
	public CGColorSpace Space;
	public CGColorConversionInfoTransformType Transform;
}

Namespace CoreImage

Type Changed: CoreImage.CIColor

Added constructors:

	public CIColor (nfloat red, nfloat green, nfloat blue, CoreGraphics.CGColorSpace colorSpace);
	public CIColor (nfloat red, nfloat green, nfloat blue, nfloat alpha, CoreGraphics.CGColorSpace colorSpace);

Added properties:

	public static CIColor BlackColor { get; }
	public static CIColor BlueColor { get; }
	public static CIColor ClearColor { get; }
	public static CIColor CyanColor { get; }
	public static CIColor GrayColor { get; }
	public static CIColor GreenColor { get; }
	public static CIColor MagentaColor { get; }
	public static CIColor RedColor { get; }
	public static CIColor WhiteColor { get; }
	public static CIColor YellowColor { get; }

Added methods:

	public static CIColor FromRgb (nfloat red, nfloat green, nfloat blue, CoreGraphics.CGColorSpace colorSpace);
	public static CIColor FromRgba (nfloat red, nfloat green, nfloat blue, nfloat alpha, CoreGraphics.CGColorSpace colorSpace);

Type Changed: CoreImage.CIContext

Added constructor:

	public CIContext (CIContextOptions options);

Added property:

	public virtual CIFormat WorkingFormat { get; }

Added methods:

	public virtual void ClearCaches ();
	public virtual CoreGraphics.CGImage CreateCGImage (CIImage image, CoreGraphics.CGRect fromRect, CIFormat format, CoreGraphics.CGColorSpace colorSpace, bool deferred);

Type Changed: CoreImage.CIContextOptions

Added properties:

	public bool? CacheIntermediates { get; set; }
	public bool? OutputPremultiplied { get; set; }

Type Changed: CoreImage.CIDetectorOptions

Added properties:

	public CIImageOrientation? ImageOrientation { get; set; }
	public int? MaxFeatureCount { get; set; }

Type Changed: CoreImage.CIFilter

Modified properties:

public virtual string Name { get; set; }

Added methods:

	public static CIFilter CreateRawFilter (Foundation.NSData data, CIRawFilterOptions options);
	public static CIFilter CreateRawFilter (Foundation.NSData data, Foundation.NSDictionary options);
	public static CIFilter CreateRawFilter (Foundation.NSUrl url, CIRawFilterOptions options);
	public static CIFilter CreateRawFilter (Foundation.NSUrl url, Foundation.NSDictionary options);
	public static CIFilter CreateRawFilter (CoreVideo.CVPixelBuffer pixelBuffer, Foundation.NSDictionary properties, CIRawFilterOptions options);
	public static CIFilter CreateRawFilter (CoreVideo.CVPixelBuffer pixelBuffer, Foundation.NSDictionary properties, Foundation.NSDictionary options);

Type Changed: CoreImage.CIImage

Added properties:

	public virtual CoreGraphics.CGImage CGImage { get; }
	public virtual CoreVideo.CVPixelBuffer PixelBuffer { get; }

Added methods:

	public virtual CIImage CreateByApplyingGaussianBlur (double sigma);
	public virtual CIImage CreateByClamping (CoreGraphics.CGRect rect);
	public virtual CIImage CreateByColorMatchingColorSpaceToWorkingSpace (CoreGraphics.CGColorSpace colorSpace);
	public virtual CIImage CreateByColorMatchingWorkingSpaceToColorSpace (CoreGraphics.CGColorSpace colorSpace);
	public virtual CIImage CreateByPremultiplyingAlpha ();
	public virtual CIImage CreateBySettingAlphaOne (CoreGraphics.CGRect extent);
	public virtual CIImage CreateBySettingProperties (Foundation.NSDictionary properties);
	public virtual CIImage CreateByUnpremultiplyingAlpha ();

New Type CoreImage.CIClamp

public class CIClamp : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CIClamp ();
	public CIClamp (Foundation.NSCoder coder);
	protected CIClamp (Foundation.NSObjectFlag t);
	protected CIClamp (IntPtr handle);
	// properties
	public CIVector Extent { get; set; }
}

New Type CoreImage.CIContext_ImageRepresentation

public static class CIContext_ImageRepresentation {
	// methods
	public static Foundation.NSData GetJpegRepresentation (CIContext This, CIImage image, CoreGraphics.CGColorSpace colorSpace, Foundation.NSDictionary options);
	public static Foundation.NSData GetTiffRepresentation (CIContext This, CIImage image, CIFormat format, CoreGraphics.CGColorSpace colorSpace, Foundation.NSDictionary options);
	public static bool WriteJpegRepresentation (CIContext This, CIImage image, Foundation.NSUrl url, CoreGraphics.CGColorSpace colorSpace, Foundation.NSDictionary options, out Foundation.NSError error);
	public static bool WriteTiffRepresentation (CIContext This, CIImage image, Foundation.NSUrl url, CIFormat format, CoreGraphics.CGColorSpace colorSpace, Foundation.NSDictionary options, out Foundation.NSError error);
}

New Type CoreImage.CIHueSaturationValueGradient

public class CIHueSaturationValueGradient : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CIHueSaturationValueGradient ();
	public CIHueSaturationValueGradient (Foundation.NSCoder coder);
	protected CIHueSaturationValueGradient (Foundation.NSObjectFlag t);
	protected CIHueSaturationValueGradient (IntPtr handle);
	// properties
	public CoreGraphics.CGColorSpace ColorSpace { get; set; }
	public float Dither { get; set; }
	public float Radius { get; set; }
	public float Softness { get; set; }
	public float Value { get; set; }
}

New Type CoreImage.CIImageProcessorKernel

public class CIImageProcessorKernel : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CIImageProcessorKernel ();
	protected CIImageProcessorKernel (Foundation.NSObjectFlag t);
	protected CIImageProcessorKernel (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static CIFormat OutputFormat { get; }
	public static bool SynchronizeInputs { get; }
	// methods
	public static CIImage Apply (CoreGraphics.CGRect extent, CIImage[] inputs, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> args, out Foundation.NSError error);
	public static CIFormat GetFormat (int input);
	public static CoreGraphics.CGRect GetRegionOfInterest (int input, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> arguments, CoreGraphics.CGRect outputRect);
	public static bool Process (ICIImageProcessorInput[] inputs, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> arguments, ICIImageProcessorOutput output, out Foundation.NSError error);
}

New Type CoreImage.CINinePartStretched

public class CINinePartStretched : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CINinePartStretched ();
	public CINinePartStretched (Foundation.NSCoder coder);
	protected CINinePartStretched (Foundation.NSObjectFlag t);
	protected CINinePartStretched (IntPtr handle);
	// properties
	public CIVector Breakpoint0 { get; set; }
	public CIVector Breakpoint1 { get; set; }
	public CIVector GrowAmount { get; set; }
}

New Type CoreImage.CINinePartTiled

public class CINinePartTiled : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CINinePartTiled ();
	public CINinePartTiled (Foundation.NSCoder coder);
	protected CINinePartTiled (Foundation.NSObjectFlag t);
	protected CINinePartTiled (IntPtr handle);
	// properties
	public CIVector Breakpoint0 { get; set; }
	public CIVector Breakpoint1 { get; set; }
	public bool FlipYTiles { get; set; }
	public CIVector GrowAmount { get; set; }
}

New Type CoreImage.CIRawFilterOptions

public class CIRawFilterOptions : Foundation.DictionaryContainer {
	// constructors
	public CIRawFilterOptions ();
	public CIRawFilterOptions (Foundation.NSDictionary dictionary);
	// properties
	public Foundation.NSSet ActiveKeys { get; }
	public bool? AllowDraftMode { get; set; }
	public float? BaselineExposure { get; set; }
	public float? Boost { get; set; }
	public float? BoostShadowAmount { get; set; }
	public double? ColorNoiseReductionAmount { get; set; }
	public bool? DisableGamutMap { get; set; }
	public bool? EnableChromaticNoiseTracking { get; set; }
	public bool? EnableSharpening { get; set; }
	public bool? EnableVendorLensCorrection { get; set; }
	public bool? IgnoreImageOrientation { get; set; }
	public int? ImageOrientation { get; set; }
	public CIFilter LinearSpaceFilter { get; set; }
	public double? LuminanceNoiseReductionAmount { get; set; }
	public float? NeutralChromaticityX { get; set; }
	public float? NeutralChromaticityY { get; set; }
	public CIVector NeutralLocation { get; set; }
	public float? NeutralTemperature { get; set; }
	public float? NeutralTint { get; set; }
	public double? NoiseReductionAmount { get; set; }
	public double? NoiseReductionContrastAmount { get; set; }
	public double? NoiseReductionDetailAmount { get; set; }
	public double? NoiseReductionSharpnessAmount { get; set; }
	public CIVector OutputNativeSize { get; set; }
	public float? ScaleFactor { get; set; }
	public Foundation.NSDictionary[] SupportedDecoderVersions { get; set; }
	public string Version { get; set; }
}

New Type CoreImage.CIThermal

public class CIThermal : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CIThermal ();
	public CIThermal (Foundation.NSCoder coder);
	protected CIThermal (Foundation.NSObjectFlag t);
	protected CIThermal (IntPtr handle);
}

New Type CoreImage.CIXRay

public class CIXRay : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CIXRay ();
	public CIXRay (Foundation.NSCoder coder);
	protected CIXRay (Foundation.NSObjectFlag t);
	protected CIXRay (IntPtr handle);
}

New Type CoreImage.ICIImageProcessorInput

public interface ICIImageProcessorInput : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IntPtr BaseAddress { get; }
	public virtual uint BytesPerRow { get; }
	public virtual CIFormat Format { get; }
	public virtual Metal.IMTLTexture MetalTexture { get; }
	public virtual CoreVideo.CVPixelBuffer PixelBuffer { get; }
	public virtual CoreGraphics.CGRect Region { get; }
}

New Type CoreImage.ICIImageProcessorOutput

public interface ICIImageProcessorOutput : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IntPtr BaseAddress { get; }
	public virtual uint BytesPerRow { get; }
	public virtual CIFormat Format { get; }
	public virtual Metal.IMTLCommandBuffer MetalCommandBuffer { get; }
	public virtual Metal.IMTLTexture MetalTexture { get; }
	public virtual CoreVideo.CVPixelBuffer PixelBuffer { get; }
	public virtual CoreGraphics.CGRect Region { get; }
}

Namespace CoreLocation

Type Changed: CoreLocation.CLLocation

Obsoleted methods:

[Obsolete ("Use the Description property from NSObject")] public virtual string Description ();

Type Changed: CoreLocation.CLLocationCoordinate2D

Added method:

	public override string ToString ();

Namespace CoreMedia

Type Changed: CoreMedia.CMBlockBuffer

Added interface:

	ICMAttachmentBearer

Added methods:

	public CMBlockBufferError AppendMemoryBlock (byte[] data, uint offsetToData, CMBlockBufferFlags flags);
	public CMBlockBufferError CopyDataBytes (uint offsetToData, uint dataLength, out byte[] destination);
	public static CMBlockBuffer FromMemoryBlock (byte[] data, uint offsetToData, CMBlockBufferFlags flags, out CMBlockBufferError error);
	public CMBlockBufferError ReplaceDataBytes (byte[] sourceBytes, uint offsetIntoDestination);

Type Changed: CoreMedia.CMSampleBuffer

Added interface:

	ICMAttachmentBearer

New Type CoreMedia.CMAttachmentBearer

public static class CMAttachmentBearer {
	// methods
	public static T GetAttachment<T> (ICMAttachmentBearer target, string key, out CMAttachmentMode attachmentModeOut);
	public static Foundation.NSDictionary GetAttachments (ICMAttachmentBearer target, CMAttachmentMode attachmentMode);
	public static void PropagateAttachments (ICMAttachmentBearer source, ICMAttachmentBearer destination);
	public static void RemoveAllAttachments (ICMAttachmentBearer target);
	public static void RemoveAttachment (ICMAttachmentBearer target, string key);
	public static void SetAttachment (ICMAttachmentBearer target, string key, ObjCRuntime.INativeObject value, CMAttachmentMode attachmentMode);
	public static void SetAttachments (ICMAttachmentBearer target, Foundation.NSDictionary theAttachments, CMAttachmentMode attachmentMode);
}

New Type CoreMedia.CMAttachmentMode

[Serializable]
public enum CMAttachmentMode {
	ShouldNotPropagate = 0,
	ShouldPropagate = 1,
}

New Type CoreMedia.ICMAttachmentBearer

public interface ICMAttachmentBearer : ObjCRuntime.INativeObject {
}

Namespace CoreText

Type Changed: CoreText.CTStringAttributeKey

Added fields:

	public static Foundation.NSString BackgroundColor;
	public static Foundation.NSString HorizontalInVerticalForms;

Type Changed: CoreText.CTStringAttributes

Added properties:

	public CoreGraphics.CGColor BackgroundColor { get; set; }
	public int? HorizontalInVerticalForms { get; set; }

Namespace CoreVideo

Type Changed: CoreVideo.CVImageBuffer

Added property:

	public static Foundation.NSString TransferFunction_SMPTE_ST_428_1 { get; }

Type Changed: CoreVideo.CVPixelFormatType

Added values:

	CV14BayerBggr = 1650943796,
	CV14BayerGbrg = 1734505012,
	CV14BayerGrbg = 1735549492,
	CV14BayerRggb = 1919379252,
	CV30RgbLePackedWideGamut = 1999843442,

Type Changed: CoreVideo.CVReturn

Added value:

	Retry = -6692,

Namespace Foundation

Type Changed: Foundation.DictionaryContainer

Added methods:

	protected CoreGraphics.CGPoint? GetCGPointValue (NSString key);
	protected CoreGraphics.CGRect? GetCGRectValue (NSString key);
	protected CoreGraphics.CGSize? GetCGSizeValue (NSString key);
	protected CoreMedia.CMTime? GetCMTimeValue (NSString key);
	protected Foundation.NSDictionary<TKey,TValue> GetNSDictionary<TKey, TValue> (NSString key);
	protected void SetCGPointValue (NSString key, CoreGraphics.CGPoint? value);
	protected void SetCGRectValue (NSString key, CoreGraphics.CGRect? value);
	protected void SetCGSizeValue (NSString key, CoreGraphics.CGSize? value);
	protected void SetCMTimeValue (NSString key, CoreMedia.CMTime? value);

Type Changed: Foundation.NSArray

Added method:

	public static T[] EnumsFromHandle<T> (IntPtr handle);

Type Changed: Foundation.NSCharacterSet

Added interface:

	INSSecureCoding

Type Changed: Foundation.NSCocoaError

Added values:

	CloudSharingConflictError = 5123,
	CloudSharingErrorMaximum = 5375,
	CloudSharingErrorMinimum = 5120,
	CloudSharingNetworkFailureError = 5120,
	CloudSharingNoPermissionError = 5124,
	CloudSharingOtherError = 5375,
	CloudSharingQuotaExceededError = 5121,
	CloudSharingTooManyParticipantsError = 5122,

Type Changed: Foundation.NSCoder

Added properties:

	public virtual NSDecodingFailurePolicy DecodingFailurePolicy { get; }
	public virtual NSError Error { get; }

Type Changed: Foundation.NSDateComponentsFormatterUnitsStyle

Added value:

	Brief = 5,

Type Changed: Foundation.NSDateIntervalFormatter

Added method:

	public virtual string ToString (NSDateInterval dateInterval);

Type Changed: Foundation.NSDictionary`2

Obsoleted methods:

[Obsolete ("TKey and TValue are inversed and won't work unless both types are identical. Use the generic overload that takes a count parameter instead")] public static Foundation.NSDictionary<TKey,TValue> FromObjectsAndKeys (TKey[] objects, TValue[] keys);

Added method:

	public static Foundation.NSDictionary<TKey,TValue> FromObjectsAndKeys (TValue[] objects, TKey[] keys, nint count);

Type Changed: Foundation.NSExpression

Added property:

	public virtual NSExpressionCallbackHandler Block { get; }

Obsoleted methods:

[Obsolete ("ValueWithObject is deprecated, please use EvaluateWith instead.")] public virtual NSExpression ExpressionValueWithObject (NSObject obj, NSMutableDictionary context);
[Obsolete ("FromFormat (string, NSExpression[]) is deprecated, please use FromFormat (string, NSObject[]) instead.")] public static NSExpression FromFormat (string format, NSExpression[] parameters);
[Obsolete ("FromFunction (NSExpressionHandler, NSExpression[]) is deprecated, please use FromFunction (NSExpressionCallbackHandler, NSExpression[]) instead.")] public static NSExpression FromFunction (NSExpressionHandler target, NSExpression[] parameters);

Modified methods:

public virtual NSExpression ExpressionValueWithObject (NSObject object1 obj, NSMutableDictionary context)

Added methods:

	public virtual NSObject EvaluateWith (NSObject obj, NSMutableDictionary context);
	public static NSExpression FromFormat (string expressionFormat);
	public static NSExpression FromFormat (string format, NSObject[] parameters);
	public static NSExpression FromFunction (NSExpressionCallbackHandler target, NSExpression[] parameters);

Type Changed: Foundation.NSKeyedArchiver

Added constructor:

	public NSKeyedArchiver ();

Added property:

	public virtual NSData EncodedData { get; }

Type Changed: Foundation.NSLocale

Added property:

	public virtual string CalendarIdentifier { get; }

Added method:

	public virtual string GetLocalizedCalendarIdentifier (string calendarIdentifier);

Type Changed: Foundation.NSMutableAttributedString

Added property:

	public virtual NSMutableString MutableString { get; }

Type Changed: Foundation.NSMutableCharacterSet

Added interface:

	INSSecureCoding

Type Changed: Foundation.NSMutableDictionary`2

Obsoleted methods:

[Obsolete ("TKey and TValue are inversed and won't work unless both types are identical. Use the generic overload that takes a count parameter instead")] public static Foundation.NSMutableDictionary<TKey,TValue> FromObjectsAndKeys (TKey[] objects, TValue[] keys);

Added method:

	public static Foundation.NSMutableDictionary<TKey,TValue> FromObjectsAndKeys (TValue[] objects, TKey[] keys, nint count);

Type Changed: Foundation.NSObject

Obsoleted fields:

[Obsolete ("Use PlatformAssembly for easier code sharing across platforms")] public static System.Reflection.Assembly MonoTouchAssembly;

Added field:

	public static System.Reflection.Assembly PlatformAssembly;

Type Changed: Foundation.NSPersonNameComponentsFormatter

Added method:

	public virtual NSPersonNameComponents GetComponents (string string);

Type Changed: Foundation.NSRunLoop

Added methods:

	public virtual void Perform (System.Action block);
	public virtual void Perform (NSString[] modes, System.Action block);

Type Changed: Foundation.NSStream

Added property:

	public static NSString NetworkServiceTypeCallSignaling { get; }

Type Changed: Foundation.NSTimer

Added constructor:

	public NSTimer (NSDate date, double seconds, bool repeats, System.Action<NSTimer> block);

Added methods:

	public static NSTimer CreateScheduledTimer (double interval, bool repeats, System.Action<NSTimer> block);
	public static NSTimer CreateTimer (double interval, bool repeats, System.Action<NSTimer> block);

Type Changed: Foundation.NSUrl

Added property:

	public int Port { get; }

Added methods:

	public static bool op_Equality (NSUrl x, NSUrl y);
	public static bool op_Inequality (NSUrl x, NSUrl y);

Type Changed: Foundation.NSUrlRequestNetworkServiceType

Added value:

	CallSignaling = 11,

Type Changed: Foundation.NSUrlSessionTaskDelegate

Added method:

	public virtual void DidFinishCollectingMetrics (NSUrlSession session, NSUrlSessionTask task, NSUrlSessionTaskMetrics metrics);

Type Changed: Foundation.NSUrlSessionTaskDelegate_Extensions

Added method:

	public static void DidFinishCollectingMetrics (INSUrlSessionTaskDelegate This, NSUrlSession session, NSUrlSessionTask task, NSUrlSessionTaskMetrics metrics);

Type Changed: Foundation.NSUserActivity

Obsoleted constructors:

[Obsolete ("Use the constructor that allows you to set an activity type")] public NSUserActivity ();

Type Changed: Foundation.NSUserDefaults

Added properties:

	public static NSString DidChangeNotification { get; }
	public static NSString NoCloudAccountNotification { get; }

New Type Foundation.NSDateInterval

public class NSDateInterval : Foundation.NSObject, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSDateInterval ();
	public NSDateInterval (NSCoder coder);
	protected NSDateInterval (NSObjectFlag t);
	protected NSDateInterval (IntPtr handle);
	public NSDateInterval (NSDate startDate, NSDate endDate);
	public NSDateInterval (NSDate startDate, double duration);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Duration { get; }
	public virtual NSDate EndDate { get; }
	public virtual NSDate StartDate { get; }
	// methods
	public virtual NSComparisonResult Compare (NSDateInterval dateInterval);
	public virtual bool ContainsDate (NSDate date);
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
	public virtual NSDateInterval GetIntersection (NSDateInterval dateInterval);
	public virtual bool Intersects (NSDateInterval dateInterval);
	public virtual bool IsEqualTo (NSDateInterval dateInterval);
}

New Type Foundation.NSDecodingFailurePolicy

[Serializable]
public enum NSDecodingFailurePolicy {
	RaiseException = 0,
	SetErrorAndReturn = 1,
}

New Type Foundation.NSDimension

public abstract class NSDimension : Foundation.NSUnit, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	protected NSDimension (NSCoder coder);
	protected NSDimension (NSObjectFlag t);
	protected NSDimension (IntPtr handle);
	public NSDimension (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public virtual NSUnitConverter Converter { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSExpressionCallbackHandler

public sealed delegate NSExpressionCallbackHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NSExpressionCallbackHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (NSObject evaluatedObject, NSExpression[] expressions, NSMutableDictionary context, System.AsyncCallback callback, object object);
	public virtual NSObject EndInvoke (System.IAsyncResult result);
	public virtual NSObject Invoke (NSObject evaluatedObject, NSExpression[] expressions, NSMutableDictionary context);
}

New Type Foundation.NSFileManager_NSUserInformation

public static class NSFileManager_NSUserInformation {
	// methods
	public static NSUrl GetTemporaryDirectory (NSFileManager This);
}

New Type Foundation.NSIso8601DateFormatOptions

[Serializable]
[Flags]
public enum NSIso8601DateFormatOptions {
	ColonSeparatorInTime = 512,
	ColonSeparatorInTimeZone = 1024,
	DashSeparatorInDate = 256,
	Day = 16,
	FullDate = 275,
	FullTime = 1632,
	InternetDateTime = 1907,
	Month = 2,
	SpaceBetweenDateAndTime = 128,
	Time = 32,
	TimeZone = 64,
	WeekOfYear = 4,
	Year = 1,
}

New Type Foundation.NSIso8601DateFormatter

public class NSIso8601DateFormatter : Foundation.NSFormatter, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSIso8601DateFormatter ();
	public NSIso8601DateFormatter (NSCoder coder);
	protected NSIso8601DateFormatter (NSObjectFlag t);
	protected NSIso8601DateFormatter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NSIso8601DateFormatOptions FormatOptions { get; set; }
	public virtual NSTimeZone TimeZone { get; set; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
	public static string Format (NSDate date, NSTimeZone timeZone, NSIso8601DateFormatOptions formatOptions);
	public virtual NSDate ToDate (string string);
	public virtual string ToString (NSDate date);
}

New Type Foundation.NSMeasurementFormatter

public class NSMeasurementFormatter : Foundation.NSFormatter, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSMeasurementFormatter ();
	public NSMeasurementFormatter (NSCoder coder);
	protected NSMeasurementFormatter (NSObjectFlag t);
	protected NSMeasurementFormatter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NSLocale Locale { get; set; }
	public virtual NSNumberFormatter NumberFormatter { get; set; }
	public virtual NSMeasurementFormatterUnitOptions UnitOptions { get; set; }
	public virtual NSFormattingUnitStyle UnitStyle { get; set; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
	public virtual string ToString (Foundation.NSMeasurement<NSUnit> measurement);
	public virtual string ToString (NSUnit unit);
}

New Type Foundation.NSMeasurementFormatterUnitOptions

[Serializable]
[Flags]
public enum NSMeasurementFormatterUnitOptions {
	NaturalScale = 2,
	ProvidedUnit = 1,
	TemperatureWithoutUnit = 4,
}

New Type Foundation.NSMeasurement`1

public class NSMeasurement`1 : Foundation.NSObject, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSMeasurement`1 (NSCoder coder);
	protected NSMeasurement`1 (NSObjectFlag t);
	protected NSMeasurement`1 (IntPtr handle);
	public NSMeasurement`1 (double doubleValue, NSUnit unit);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double DoubleValue { get; }
	public virtual NSUnit Unit { get; }
	// methods
	public virtual bool CanBeConvertedTo (NSUnit unit);
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
	public virtual Foundation.NSMeasurement<UnitType> GetMeasurementByAdding (Foundation.NSMeasurement<UnitType> measurement);
	public virtual Foundation.NSMeasurement<UnitType> GetMeasurementByConverting (NSUnit unit);
	public virtual Foundation.NSMeasurement<UnitType> GetMeasurementBySubtracting (Foundation.NSMeasurement<UnitType> measurement);
}

New Type Foundation.NSUnit

public class NSUnit : Foundation.NSObject, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnit ();
	public NSUnit (NSCoder coder);
	protected NSUnit (NSObjectFlag t);
	protected NSUnit (IntPtr handle);
	public NSUnit (string symbol);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string Symbol { get; }
	// methods
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitAcceleration

public class NSUnitAcceleration : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitAcceleration ();
	public NSUnitAcceleration (NSCoder coder);
	protected NSUnitAcceleration (NSObjectFlag t);
	protected NSUnitAcceleration (IntPtr handle);
	public NSUnitAcceleration (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitAcceleration Gravity { get; }
	public static NSUnitAcceleration MetersPerSecondSquared { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitAngle

public class NSUnitAngle : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitAngle ();
	public NSUnitAngle (NSCoder coder);
	protected NSUnitAngle (NSObjectFlag t);
	protected NSUnitAngle (IntPtr handle);
	public NSUnitAngle (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitAngle ArcMinutes { get; }
	public static NSUnitAngle ArcSeconds { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitAngle Degrees { get; }
	public static NSUnitAngle Gradians { get; }
	public static NSUnitAngle Radians { get; }
	public static NSUnitAngle Revolutions { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitArea

public class NSUnitArea : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitArea ();
	public NSUnitArea (NSCoder coder);
	protected NSUnitArea (NSObjectFlag t);
	protected NSUnitArea (IntPtr handle);
	public NSUnitArea (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitArea Acres { get; }
	public static NSUnitArea Ares { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitArea Hectares { get; }
	public static NSUnitArea SquareCentimeters { get; }
	public static NSUnitArea SquareFeet { get; }
	public static NSUnitArea SquareInches { get; }
	public static NSUnitArea SquareKilometers { get; }
	public static NSUnitArea SquareMegameters { get; }
	public static NSUnitArea SquareMeters { get; }
	public static NSUnitArea SquareMicrometers { get; }
	public static NSUnitArea SquareMiles { get; }
	public static NSUnitArea SquareMillimeters { get; }
	public static NSUnitArea SquareNanometers { get; }
	public static NSUnitArea SquareYards { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitConcentrationMass

public class NSUnitConcentrationMass : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitConcentrationMass ();
	public NSUnitConcentrationMass (NSCoder coder);
	protected NSUnitConcentrationMass (NSObjectFlag t);
	protected NSUnitConcentrationMass (IntPtr handle);
	public NSUnitConcentrationMass (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitConcentrationMass GramsPerLiter { get; }
	public static NSUnitConcentrationMass MilligramsPerDeciliter { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
	public static NSUnitConcentrationMass GetMillimolesPerLiter (double gramsPerMole);
}

New Type Foundation.NSUnitConverter

public class NSUnitConverter : Foundation.NSObject, INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitConverter ();
	protected NSUnitConverter (NSObjectFlag t);
	protected NSUnitConverter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual double GetBaseUnitValue (double value);
	public virtual double GetValue (double baseUnitValue);
}

New Type Foundation.NSUnitConverterLinear

public class NSUnitConverterLinear : Foundation.NSUnitConverter, INSCoding, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitConverterLinear ();
	public NSUnitConverterLinear (NSCoder coder);
	protected NSUnitConverterLinear (NSObjectFlag t);
	public NSUnitConverterLinear (double coefficient);
	protected NSUnitConverterLinear (IntPtr handle);
	public NSUnitConverterLinear (double coefficient, double constant);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Coefficient { get; }
	public virtual double Constant { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitDispersion

public class NSUnitDispersion : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitDispersion ();
	public NSUnitDispersion (NSCoder coder);
	protected NSUnitDispersion (NSObjectFlag t);
	protected NSUnitDispersion (IntPtr handle);
	public NSUnitDispersion (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitDispersion PartsPerMillion { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitDuration

public class NSUnitDuration : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitDuration ();
	public NSUnitDuration (NSCoder coder);
	protected NSUnitDuration (NSObjectFlag t);
	protected NSUnitDuration (IntPtr handle);
	public NSUnitDuration (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitDuration Hours { get; }
	public static NSUnitDuration Minutes { get; }
	public static NSUnitDuration Seconds { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricCharge

public class NSUnitElectricCharge : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricCharge ();
	public NSUnitElectricCharge (NSCoder coder);
	protected NSUnitElectricCharge (NSObjectFlag t);
	protected NSUnitElectricCharge (IntPtr handle);
	public NSUnitElectricCharge (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitElectricCharge AmpereHours { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricCharge Coulombs { get; }
	public static NSUnitElectricCharge KiloampereHours { get; }
	public static NSUnitElectricCharge MegaampereHours { get; }
	public static NSUnitElectricCharge MicroampereHours { get; }
	public static NSUnitElectricCharge MilliampereHours { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricCurrent

public class NSUnitElectricCurrent : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricCurrent ();
	public NSUnitElectricCurrent (NSCoder coder);
	protected NSUnitElectricCurrent (NSObjectFlag t);
	protected NSUnitElectricCurrent (IntPtr handle);
	public NSUnitElectricCurrent (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitElectricCurrent Amperes { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricCurrent Kiloamperes { get; }
	public static NSUnitElectricCurrent Megaamperes { get; }
	public static NSUnitElectricCurrent Microamperes { get; }
	public static NSUnitElectricCurrent Milliamperes { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricPotentialDifference

public class NSUnitElectricPotentialDifference : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricPotentialDifference ();
	public NSUnitElectricPotentialDifference (NSCoder coder);
	protected NSUnitElectricPotentialDifference (NSObjectFlag t);
	protected NSUnitElectricPotentialDifference (IntPtr handle);
	public NSUnitElectricPotentialDifference (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricPotentialDifference Kilovolts { get; }
	public static NSUnitElectricPotentialDifference Megavolts { get; }
	public static NSUnitElectricPotentialDifference Microvolts { get; }
	public static NSUnitElectricPotentialDifference Millivolts { get; }
	public static NSUnitElectricPotentialDifference Volts { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricResistance

public class NSUnitElectricResistance : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricResistance ();
	public NSUnitElectricResistance (NSCoder coder);
	protected NSUnitElectricResistance (NSObjectFlag t);
	protected NSUnitElectricResistance (IntPtr handle);
	public NSUnitElectricResistance (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricResistance Kiloohms { get; }
	public static NSUnitElectricResistance Megaohms { get; }
	public static NSUnitElectricResistance Microohms { get; }
	public static NSUnitElectricResistance Milliohms { get; }
	public static NSUnitElectricResistance Ohms { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitEnergy

public class NSUnitEnergy : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitEnergy ();
	public NSUnitEnergy (NSCoder coder);
	protected NSUnitEnergy (NSObjectFlag t);
	protected NSUnitEnergy (IntPtr handle);
	public NSUnitEnergy (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public static NSUnitEnergy Calories { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitEnergy Joules { get; }
	public static NSUnitEnergy Kilocalories { get; }
	public static NSUnitEnergy Kilojoules { get; }
	public static NSUnitEnergy KilowattHours { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitFrequency

public class NSUnitFrequency : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitFrequency ();
	public NSUnitFrequency (NSCoder coder);
	protected NSUnitFrequency (NSObjectFlag t);
	protected NSUnitFrequency (IntPtr handle);
	public NSUnitFrequency (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitFrequency Gigahertz { get; }
	public static NSUnitFrequency Hertz { get; }
	public static NSUnitFrequency Kilohertz { get; }
	public static NSUnitFrequency Megahertz { get; }
	public static NSUnitFrequency Microhertz { get; }
	public static NSUnitFrequency Millihertz { get; }
	public static NSUnitFrequency Nanohertz { get; }
	public static NSUnitFrequency Terahertz { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitFuelEfficiency

public class NSUnitFuelEfficiency : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitFuelEfficiency ();
	public NSUnitFuelEfficiency (NSCoder coder);
	protected NSUnitFuelEfficiency (NSObjectFlag t);
	protected NSUnitFuelEfficiency (IntPtr handle);
	public NSUnitFuelEfficiency (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitFuelEfficiency LitersPer100Kilometers { get; }
	public static NSUnitFuelEfficiency MilesPerGallon { get; }
	public static NSUnitFuelEfficiency MilesPerImperialGallon { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitIlluminance

public class NSUnitIlluminance : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitIlluminance ();
	public NSUnitIlluminance (NSCoder coder);
	protected NSUnitIlluminance (NSObjectFlag t);
	protected NSUnitIlluminance (IntPtr handle);
	public NSUnitIlluminance (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitIlluminance Lux { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitLength

public class NSUnitLength : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitLength ();
	public NSUnitLength (NSCoder coder);
	protected NSUnitLength (NSObjectFlag t);
	protected NSUnitLength (IntPtr handle);
	public NSUnitLength (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitLength AstronomicalUnits { get; }
	public static NSDimension BaseUnit { get; }
	public static NSUnitLength Centimeters { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitLength Decameters { get; }
	public static NSUnitLength Decimeters { get; }
	public static NSUnitLength Fathoms { get; }
	public static NSUnitLength Feet { get; }
	public static NSUnitLength Furlongs { get; }
	public static NSUnitLength Hectometers { get; }
	public static NSUnitLength Inches { get; }
	public static NSUnitLength Kilometers { get; }
	public static NSUnitLength Lightyears { get; }
	public static NSUnitLength Megameters { get; }
	public static NSUnitLength Meters { get; }
	public static NSUnitLength Micrometers { get; }
	public static NSUnitLength Miles { get; }
	public static NSUnitLength Millimeters { get; }
	public static NSUnitLength Nanometers { get; }
	public static NSUnitLength NauticalMiles { get; }
	public static NSUnitLength Parsecs { get; }
	public static NSUnitLength Picometers { get; }
	public static NSUnitLength ScandinavianMiles { get; }
	public static NSUnitLength Yards { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitMass

public class NSUnitMass : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitMass ();
	public NSUnitMass (NSCoder coder);
	protected NSUnitMass (NSObjectFlag t);
	protected NSUnitMass (IntPtr handle);
	public NSUnitMass (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public static NSUnitMass Carats { get; }
	public static NSUnitMass Centigrams { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitMass Decigrams { get; }
	public static NSUnitMass Grams { get; }
	public static NSUnitMass Kilograms { get; }
	public static NSUnitMass MetricTons { get; }
	public static NSUnitMass Micrograms { get; }
	public static NSUnitMass Milligrams { get; }
	public static NSUnitMass Nanograms { get; }
	public static NSUnitMass Ounces { get; }
	public static NSUnitMass OuncesTroy { get; }
	public static NSUnitMass Picograms { get; }
	public static NSUnitMass Pounds { get; }
	public static NSUnitMass ShortTons { get; }
	public static NSUnitMass Slugs { get; }
	public static NSUnitMass Stones { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitPower

public class NSUnitPower : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitPower ();
	public NSUnitPower (NSCoder coder);
	protected NSUnitPower (NSObjectFlag t);
	protected NSUnitPower (IntPtr handle);
	public NSUnitPower (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitPower Femtowatts { get; }
	public static NSUnitPower Gigawatts { get; }
	public static NSUnitPower Horsepower { get; }
	public static NSUnitPower Kilowatts { get; }
	public static NSUnitPower Megawatts { get; }
	public static NSUnitPower Microwatts { get; }
	public static NSUnitPower Milliwatts { get; }
	public static NSUnitPower Nanowatts { get; }
	public static NSUnitPower Picowatts { get; }
	public static NSUnitPower Terawatts { get; }
	public static NSUnitPower Watts { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitPressure

public class NSUnitPressure : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitPressure ();
	public NSUnitPressure (NSCoder coder);
	protected NSUnitPressure (NSObjectFlag t);
	protected NSUnitPressure (IntPtr handle);
	public NSUnitPressure (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitPressure Bars { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitPressure Gigapascals { get; }
	public static NSUnitPressure Hectopascals { get; }
	public static NSUnitPressure InchesOfMercury { get; }
	public static NSUnitPressure Kilopascals { get; }
	public static NSUnitPressure Megapascals { get; }
	public static NSUnitPressure Millibars { get; }
	public static NSUnitPressure MillimetersOfMercury { get; }
	public static NSUnitPressure NewtonsPerMetersSquared { get; }
	public static NSUnitPressure PoundsForcePerSquareInch { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitSpeed

public class NSUnitSpeed : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitSpeed ();
	public NSUnitSpeed (NSCoder coder);
	protected NSUnitSpeed (NSObjectFlag t);
	protected NSUnitSpeed (IntPtr handle);
	public NSUnitSpeed (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitSpeed KilometersPerHour { get; }
	public static NSUnitSpeed Knots { get; }
	public static NSUnitSpeed MetersPerSecond { get; }
	public static NSUnitSpeed MilesPerHour { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitTemperature

public class NSUnitTemperature : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitTemperature (NSCoder coder);
	protected NSUnitTemperature (NSObjectFlag t);
	protected NSUnitTemperature (IntPtr handle);
	public NSUnitTemperature (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public static NSUnitTemperature Celsius { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitTemperature Fahrenheit { get; }
	public static NSUnitTemperature Kelvin { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitVolume

public class NSUnitVolume : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitVolume ();
	public NSUnitVolume (NSCoder coder);
	protected NSUnitVolume (NSObjectFlag t);
	protected NSUnitVolume (IntPtr handle);
	public NSUnitVolume (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitVolume AcreFeet { get; }
	public static NSDimension BaseUnit { get; }
	public static NSUnitVolume Bushels { get; }
	public static NSUnitVolume Centiliters { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitVolume CubicCentimeters { get; }
	public static NSUnitVolume CubicDecimeters { get; }
	public static NSUnitVolume CubicFeet { get; }
	public static NSUnitVolume CubicInches { get; }
	public static NSUnitVolume CubicKilometers { get; }
	public static NSUnitVolume CubicMeters { get; }
	public static NSUnitVolume CubicMiles { get; }
	public static NSUnitVolume CubicMillimeters { get; }
	public static NSUnitVolume CubicYards { get; }
	public static NSUnitVolume Cups { get; }
	public static NSUnitVolume Deciliters { get; }
	public static NSUnitVolume FluidOunces { get; }
	public static NSUnitVolume Gallons { get; }
	public static NSUnitVolume ImperialFluidOunces { get; }
	public static NSUnitVolume ImperialGallons { get; }
	public static NSUnitVolume ImperialPints { get; }
	public static NSUnitVolume ImperialQuarts { get; }
	public static NSUnitVolume ImperialTablespoons { get; }
	public static NSUnitVolume ImperialTeaspoons { get; }
	public static NSUnitVolume Kiloliters { get; }
	public static NSUnitVolume Liters { get; }
	public static NSUnitVolume Megaliters { get; }
	public static NSUnitVolume MetricCups { get; }
	public static NSUnitVolume Milliliters { get; }
	public static NSUnitVolume Pints { get; }
	public static NSUnitVolume Quarts { get; }
	public static NSUnitVolume Tablespoons { get; }
	public static NSUnitVolume Teaspoons { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUrlSessionTaskMetrics

public class NSUrlSessionTaskMetrics : Foundation.NSObject, INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUrlSessionTaskMetrics ();
	protected NSUrlSessionTaskMetrics (NSObjectFlag t);
	protected NSUrlSessionTaskMetrics (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint RedirectCount { get; }
	public virtual NSDateInterval TaskInterval { get; }
	public virtual NSUrlSessionTaskTransactionMetrics[] TransactionMetrics { get; }
}

New Type Foundation.NSUrlSessionTaskMetricsResourceFetchType

[Serializable]
public enum NSUrlSessionTaskMetricsResourceFetchType {
	LocalCache = 3,
	NetworkLoad = 1,
	ServerPush = 2,
	Unknown = 0,
}

New Type Foundation.NSUrlSessionTaskTransactionMetrics

public class NSUrlSessionTaskTransactionMetrics : Foundation.NSObject, INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUrlSessionTaskTransactionMetrics ();
	protected NSUrlSessionTaskTransactionMetrics (NSObjectFlag t);
	protected NSUrlSessionTaskTransactionMetrics (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NSDate ConnectEndDate { get; }
	public virtual NSDate ConnectStartDate { get; }
	public virtual NSDate DomainLookupEndDate { get; }
	public virtual NSDate DomainLookupStartDate { get; }
	public virtual NSDate FetchStartDate { get; }
	public virtual string NetworkProtocolName { get; }
	public virtual bool ProxyConnection { get; }
	public virtual NSUrlRequest Request { get; }
	public virtual NSDate RequestEndDate { get; }
	public virtual NSDate RequestStartDate { get; }
	public virtual NSUrlSessionTaskMetricsResourceFetchType ResourceFetchType { get; }
	public virtual NSUrlResponse Response { get; }
	public virtual NSDate ResponseEndDate { get; }
	public virtual NSDate ResponseStartDate { get; }
	public virtual bool ReusedConnection { get; }
	public virtual NSDate SecureConnectionEndDate { get; }
	public virtual NSDate SecureConnectionStartDate { get; }
}

Namespace GLKit

Type Changed: GLKit.GLKTextureInfo

Added properties:

	public virtual uint ArrayLength { get; }
	public virtual uint Depth { get; }
	public virtual uint MimapLevelCount { get; }

Type Changed: GLKit.GLKTextureLoader

Added methods:

	public virtual void BeginTextureLoad (string name, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary<Foundation.NSString,Foundation.NSNumber> options, CoreFoundation.DispatchQueue queue, GLKTextureLoaderCallback block);
	public virtual System.Threading.Tasks.Task<GLKTextureInfo> BeginTextureLoadAsync (string name, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary<Foundation.NSString,Foundation.NSNumber> options, CoreFoundation.DispatchQueue queue);
	public static GLKTextureInfo FromName (string name, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary<Foundation.NSString,Foundation.NSNumber> options, out Foundation.NSError outError);

Type Changed: GLKit.GLKTextureLoaderError

Added value:

	UnsupportedTextureTarget = 19,

Type Changed: GLKit.GLKView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Namespace GameKit

Type Changed: GameKit.GKError

Added values:

	GameSessionRequestInvalid = 29,
	MatchNotConnected = 28,

Type Changed: GameKit.GKLocalPlayer

Added methods:

	public virtual void LoadRecentPlayers (System.Action<GKPlayer[],Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<GKPlayer[]> LoadRecentPlayersAsync ();

Type Changed: GameKit.GKLocalPlayerListener

Added method:

	[Obsolete ("Use DidRequestMatch(GKPlayer player, GKPlayer[] recipientPlayers) instead")]
	public virtual void DidRequestMatchWithPlayers (GKPlayer player, string[] playerIDsToInvite);

Type Changed: GameKit.GKPeerPickerConnectionType

Added values:

	Nearby = 2,
	Online = 1,

Type Changed: GameKit.GKPlayer

Modified base type: Foundation.NSObject GameKit.GKBasePlayer

New Type GameKit.GKBasePlayer

public class GKBasePlayer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKBasePlayer ();
	protected GKBasePlayer (Foundation.NSObjectFlag t);
	protected GKBasePlayer (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string DisplayName { get; }
	public virtual string PlayerID { get; }
}

New Type GameKit.GKCloudPlayer

public class GKCloudPlayer : GameKit.GKBasePlayer, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKCloudPlayer ();
	protected GKCloudPlayer (Foundation.NSObjectFlag t);
	protected GKCloudPlayer (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public static void GetCurrentSignedInPlayer (string containerName, System.Action<GKCloudPlayer,Foundation.NSError> handler);
}

New Type GameKit.GKConnectionState

[Serializable]
public enum GKConnectionState {
	Connected = 1,
	NotConnected = 0,
}

New Type GameKit.GKGameSession

public class GKGameSession : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKGameSession ();
	protected GKGameSession (Foundation.NSObjectFlag t);
	protected GKGameSession (IntPtr handle);
	// properties
	public virtual GKCloudPlayer[] BadgedPlayers { get; }
	public override IntPtr ClassHandle { get; }
	public virtual string Identifier { get; }
	public virtual Foundation.NSDate LastModifiedDate { get; }
	public virtual GKCloudPlayer LastModifiedPlayer { get; }
	public virtual nint MaxNumberOfConnectedPlayers { get; }
	public virtual GKCloudPlayer Owner { get; }
	public virtual GKCloudPlayer[] Players { get; }
	public virtual string Title { get; }
	// methods
	public static void AddEventListener (IGKGameSessionEventListener listener);
	public virtual void ClearBadge (GKCloudPlayer[] players, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task ClearBadgeAsync (GKCloudPlayer[] players);
	public static void CreateSession (string containerName, string title, nint maxPlayers, System.Action<GKGameSession,Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<GKGameSession> CreateSessionAsync (string containerName, string title, nint maxPlayers);
	public virtual GKCloudPlayer[] GetPlayers (GKConnectionState state);
	public virtual void GetShareUrl (System.Action<Foundation.NSUrl,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<Foundation.NSUrl> GetShareUrlAsync ();
	public virtual void LoadData (System.Action<Foundation.NSData,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<Foundation.NSData> LoadDataAsync ();
	public static void LoadSession (string identifier, System.Action<GKGameSession,Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<GKGameSession> LoadSessionAsync (string identifier);
	public static void LoadSessions (string containerName, System.Action<GKGameSession[],Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<GKGameSession[]> LoadSessionsAsync (string containerName);
	public static void RemoveEventListener (IGKGameSessionEventListener listener);
	public static void RemoveSession (string identifier, System.Action<Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task RemoveSessionAsync (string identifier);
	public virtual void SaveData (Foundation.NSData data, System.Action<Foundation.NSData,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<Foundation.NSData> SaveDataAsync (Foundation.NSData data);
	public virtual void SendData (Foundation.NSData data, GKTransportType transport, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task SendDataAsync (Foundation.NSData data, GKTransportType transport);
	public virtual void SendMessage (string key, string[] arguments, Foundation.NSData data, GKCloudPlayer[] players, bool badgePlayers, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task SendMessageAsync (string key, string[] arguments, Foundation.NSData data, GKCloudPlayer[] players, bool badgePlayers);
	public virtual void SetConnectionState (GKConnectionState state, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task SetConnectionStateAsync (GKConnectionState state);
}

New Type GameKit.GKGameSessionErrorCode

[Serializable]
public enum GKGameSessionErrorCode {
	BadContainer = 12,
	CloudDriveDisabled = 15,
	CloudQuotaExceeded = 13,
	ConnectionCancelledByUser = 5,
	ConnectionFailed = 6,
	InvalidSession = 16,
	NetworkFailure = 14,
	NotAuthenticated = 2,
	SendDataNoRecipients = 9,
	SendDataNotConnected = 8,
	SendDataNotReachable = 10,
	SendRateLimitReached = 11,
	SessionConflict = 3,
	SessionHasMaxConnectedPlayers = 7,
	SessionNotShared = 4,
	Unknown = 1,
}

New Type GameKit.GKGameSessionErrorCodeExtensions

public static class GKGameSessionErrorCodeExtensions {
	// methods
	public static Foundation.NSString GetDomain (GKGameSessionErrorCode self);
}

New Type GameKit.GKGameSessionEventListener_Extensions

public static class GKGameSessionEventListener_Extensions {
	// methods
	public static void DidAddPlayer (IGKGameSessionEventListener This, GKGameSession session, GKCloudPlayer player);
	public static void DidChangeConnectionState (IGKGameSessionEventListener This, GKGameSession session, GKCloudPlayer player, GKConnectionState newState);
	public static void DidReceiveData (IGKGameSessionEventListener This, GKGameSession session, Foundation.NSData data, GKCloudPlayer player);
	public static void DidReceiveMessage (IGKGameSessionEventListener This, GKGameSession session, string message, Foundation.NSData data, GKCloudPlayer player);
	public static void DidRemovePlayer (IGKGameSessionEventListener This, GKGameSession session, GKCloudPlayer player);
	public static void DidSaveData (IGKGameSessionEventListener This, GKGameSession session, GKCloudPlayer player, Foundation.NSData data);
}

New Type GameKit.GKGameSessionSharingViewController

public class GKGameSessionSharingViewController : UIKit.UIViewController, Foundation.INSCoding, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.Collections.IEnumerable, System.IDisposable, System.IEquatable<Foundation.NSObject>, UIKit.IUIAppearanceContainer, UIKit.IUIContentContainer, UIKit.IUIFocusEnvironment, UIKit.IUITraitEnvironment {
	// constructors
	public GKGameSessionSharingViewController ();
	public GKGameSessionSharingViewController (Foundation.NSCoder coder);
	protected GKGameSessionSharingViewController (Foundation.NSObjectFlag t);
	public GKGameSessionSharingViewController (GKGameSession session);
	protected GKGameSessionSharingViewController (IntPtr handle);
	public GKGameSessionSharingViewController (string nibName, Foundation.NSBundle bundle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual IGKGameSessionSharingViewControllerDelegate Delegate { get; set; }
	public virtual GKGameSession Session { get; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type GameKit.GKGameSessionSharingViewControllerDelegate

public abstract class GKGameSessionSharingViewControllerDelegate : Foundation.NSObject, Foundation.INSObjectProtocol, IGKGameSessionSharingViewControllerDelegate, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKGameSessionSharingViewControllerDelegate ();
	protected GKGameSessionSharingViewControllerDelegate (Foundation.NSObjectFlag t);
	protected GKGameSessionSharingViewControllerDelegate (IntPtr handle);
	// methods
	public virtual void DidFinish (GKGameSessionSharingViewController viewController, Foundation.NSError error);
}

New Type GameKit.GKTransportType

[Serializable]
public enum GKTransportType {
	Reliable = 1,
	Unreliable = 0,
}

New Type GameKit.IGKGameSessionEventListener

public interface IGKGameSessionEventListener : ObjCRuntime.INativeObject, System.IDisposable {
}

New Type GameKit.IGKGameSessionSharingViewControllerDelegate

public interface IGKGameSessionSharingViewControllerDelegate : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void DidFinish (GKGameSessionSharingViewController viewController, Foundation.NSError error);
}

Namespace GameplayKit

Type Changed: GameplayKit.GKAgent

Added constructor:

	public GKAgent (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Modified properties:

public virtual float Speed { get; set; }

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKAgent2D

Added constructor:

	public GKAgent2D (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKBehavior

Added interface:

	Foundation.INSCopying

Added method:

	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);

Type Changed: GameplayKit.GKComponent

Added constructor:

	protected GKComponent (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

Added methods:

	public virtual void DidAddToEntity ();
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual void WillRemoveFromEntity ();

Type Changed: GameplayKit.GKComponentSystem`1

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

Added methods:

	public virtual ObjCRuntime.Class GetClassForGenericArgument (uint index);
	public System.Type GetTypeForGenericArgument (uint index);

Type Changed: GameplayKit.GKEntity

Added constructor:

	public GKEntity (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKGraph

Added constructor:

	public GKGraph (Foundation.NSCoder coder);

Added interfaces:

	Foundation.INSCoding
	Foundation.INSCopying

Added methods:

	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKGraphNode

Added constructor:

	public GKGraphNode (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKGraphNode2D

Added constructor:

	public GKGraphNode2D (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Type Changed: GameplayKit.GKGridGraph

Added constructors:

	public GKGridGraph (Foundation.NSCoder coder);
	public GKGridGraph (OpenTK.Vector2i position, int width, int height, bool diagonalsAllowed, ObjCRuntime.Class aClass);
	public GKGridGraph (OpenTK.Vector2i position, int width, int height, bool diagonalsAllowed, System.Type nodeType);

Added interfaces:

	Foundation.INSCoding
	Foundation.INSCopying

Added methods:

	public static GKGridGraph FromGridStartingAt (OpenTK.Vector2i position, int width, int height, bool diagonalsAllowed, ObjCRuntime.Class aClass);
	public static GKGridGraph FromGridStartingAt (OpenTK.Vector2i position, int width, int height, bool diagonalsAllowed, System.Type type);
	public virtual ObjCRuntime.Class GetClassForGenericArgument (uint index);
	public NodeType GetNodeAt<NodeType> (OpenTK.Vector2i position);
	public System.Type GetTypeForGenericArgument (uint index);

Type Changed: GameplayKit.GKGridGraphNode

Added constructor:

	public GKGridGraphNode (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Type Changed: GameplayKit.GKObstacleGraph

Added constructor:

	public GKObstacleGraph (Foundation.NSCoder coder);

Added interfaces:

	Foundation.INSCoding
	Foundation.INSCopying

Added methods:

	public virtual ObjCRuntime.Class GetClassForGenericArgument (uint index);
	public System.Type GetTypeForGenericArgument (uint index);

Type Changed: GameplayKit.GKPath

Added constructors:

	public GKPath (GKGraphNode[] nodes, float radius);
	public GKPath (OpenTK.Vector3[] points, float radius, bool cyclical);

Added methods:

	public static GKPath FromGraphNodes (GKGraphNode[] nodes, float radius);
	public static GKPath FromPoints (OpenTK.Vector3[] points, float radius, bool cyclical);
	public virtual OpenTK.Vector2 GetVector2Point (uint index);
	public virtual OpenTK.Vector3 GetVector3Point (uint index);

Type Changed: GameplayKit.GKPolygonObstacle

Added constructor:

	public GKPolygonObstacle (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKQuadTree

Added constructor:

	public GKQuadTree (GKQuad quad, float minCellSize);

Obsoleted methods:

[Obsolete ("Use constructor with the same signature")] public static GKQuadTree QuadTreeWithMinPosition (OpenTK.Vector2 min, OpenTK.Vector2 max, float minCellSize);

Added methods:

	public virtual GKQuadTreeNode AddElement (Foundation.NSObject element, GKQuad quad);
	public virtual GKQuadTreeNode AddElement (Foundation.NSObject element, OpenTK.Vector2 point);
	public static GKQuadTree FromBoundingQuad (GKQuad quad, float minCellSize);
	public virtual Foundation.NSObject[] GetElements (GKQuad quad);
	public virtual Foundation.NSObject[] GetElements (OpenTK.Vector2 point);
	public virtual bool RemoveElement (Foundation.NSObject element);
	public virtual bool RemoveElement (Foundation.NSObject data, GKQuadTreeNode node);

Type Changed: GameplayKit.GKQuadTreeNode

Obsoleted constructors:

[Obsolete ("Valid instance of this type cannot be directly created")] public GKQuadTreeNode ();

Added property:

	public virtual GKQuad Quad { get; }

Type Changed: GameplayKit.GKState

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

Type Changed: GameplayKit.GKStateMachine

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

New Type GameplayKit.GKAgent3D

public class GKAgent3D : GameplayKit.GKAgent, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKAgent3D ();
	public GKAgent3D (Foundation.NSCoder coder);
	protected GKAgent3D (Foundation.NSObjectFlag t);
	protected GKAgent3D (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual OpenTK.Vector3 Position { get; set; }
	public virtual bool RightHanded { get; set; }
	public virtual OpenTK.Matrix3 Rotation { get; set; }
	public virtual OpenTK.Vector3 Velocity { get; }
	// methods
	public virtual void Update (double deltaTimeInSeconds);
}

New Type GameplayKit.GKBillowNoiseSource

public class GKBillowNoiseSource : GameplayKit.GKCoherentNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKBillowNoiseSource (Foundation.NSObjectFlag t);
	protected GKBillowNoiseSource (IntPtr handle);
	public GKBillowNoiseSource (double frequency, nint octaveCount, double persistence, double lacunarity, int seed);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Persistence { get; set; }
	// methods
	public static GKBillowNoiseSource Create (double frequency, nint octaveCount, double persistence, double lacunarity, int seed);
}

New Type GameplayKit.GKBox

public struct GKBox {
	// fields
	public OpenTK.Vector3 Max;
	public OpenTK.Vector3 Min;
}

New Type GameplayKit.GKCheckerboardNoiseSource

public class GKCheckerboardNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKCheckerboardNoiseSource (Foundation.NSObjectFlag t);
	public GKCheckerboardNoiseSource (double squareSize);
	protected GKCheckerboardNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double SquareSize { get; set; }
	// methods
	public static GKCheckerboardNoiseSource Create (double squareSize);
}

New Type GameplayKit.GKCoherentNoiseSource

public abstract class GKCoherentNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKCoherentNoiseSource ();
	protected GKCoherentNoiseSource (Foundation.NSObjectFlag t);
	protected GKCoherentNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Frequency { get; set; }
	public virtual double Lacunarity { get; set; }
	public virtual nint OctaveCount { get; set; }
	public virtual int Seed { get; set; }
}

New Type GameplayKit.GKCompositeBehavior

public class GKCompositeBehavior : GameplayKit.GKBehavior, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKCompositeBehavior ();
	protected GKCompositeBehavior (Foundation.NSObjectFlag t);
	protected GKCompositeBehavior (IntPtr handle);
	// properties
	public virtual nint BehaviorCount { get; }
	public override IntPtr ClassHandle { get; }
	public Foundation.NSNumber Item { get; set; }
	public GKBehavior Item { get; }
	// methods
	public static GKCompositeBehavior FromBehaviors (GKBehavior[] behaviors);
	public static GKCompositeBehavior FromBehaviors (GKBehavior[] behaviors, Foundation.NSNumber[] weights);
	public virtual float GetWeight (GKBehavior behavior);
	public virtual void RemoveAllBehaviors ();
	public virtual void RemoveBehavior (GKBehavior behavior);
	public virtual void SetWeight (float weight, GKBehavior behavior);
}

New Type GameplayKit.GKConstantNoiseSource

public class GKConstantNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKConstantNoiseSource (Foundation.NSObjectFlag t);
	public GKConstantNoiseSource (double value);
	protected GKConstantNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Value { get; set; }
	// methods
	public static GKConstantNoiseSource Create (double value);
}

New Type GameplayKit.GKCylindersNoiseSource

public class GKCylindersNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKCylindersNoiseSource (Foundation.NSObjectFlag t);
	public GKCylindersNoiseSource (double frequency);
	protected GKCylindersNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Frequency { get; set; }
	// methods
	public static GKCylindersNoiseSource Create (double frequency);
}

New Type GameplayKit.GKDecisionNode

public class GKDecisionNode : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKDecisionNode (Foundation.NSObjectFlag t);
	protected GKDecisionNode (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual GKDecisionNode CreateBranch (Foundation.NSNumber value, Foundation.NSObject attribute);
	public virtual GKDecisionNode CreateBranch (Foundation.NSPredicate predicate, Foundation.NSObject attribute);
	public virtual GKDecisionNode CreateBranch (nint weight, Foundation.NSObject attribute);
}

New Type GameplayKit.GKDecisionTree

public class GKDecisionTree : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKDecisionTree (Foundation.NSCoder coder);
	public GKDecisionTree (Foundation.NSObject attribute);
	protected GKDecisionTree (Foundation.NSObjectFlag t);
	protected GKDecisionTree (IntPtr handle);
	public GKDecisionTree (Foundation.NSArray<Foundation.NSObject>[] examples, Foundation.NSObject[] actions, Foundation.NSObject[] attributes);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual GKRandomSource RandomSource { get; set; }
	public virtual GKDecisionNode RootNode { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual Foundation.NSObject FindAction (Foundation.NSDictionary<Foundation.NSObject,Foundation.NSObject> answers);
}

New Type GameplayKit.GKGraphNode3D

public class GKGraphNode3D : GameplayKit.GKGraphNode, Foundation.INSCoding, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKGraphNode3D (Foundation.NSCoder coder);
	protected GKGraphNode3D (Foundation.NSObjectFlag t);
	public GKGraphNode3D (OpenTK.Vector3 point);
	protected GKGraphNode3D (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual OpenTK.Vector3 Position { get; set; }
	// methods
	public static GKGraphNode3D FromPoint (OpenTK.Vector3 point);
}

New Type GameplayKit.GKMeshGraphTriangulationMode

[Serializable]
[Flags]
public enum GKMeshGraphTriangulationMode {
	Centers = 2,
	EdgeMidpoints = 4,
	Vertices = 1,
}

New Type GameplayKit.GKMeshGraph`1

public class GKMeshGraph`1 : GameplayKit.GKGraph, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKMeshGraph`1 ();
	public GKMeshGraph`1 (Foundation.NSCoder coder);
	protected GKMeshGraph`1 (Foundation.NSObjectFlag t);
	protected GKMeshGraph`1 (IntPtr handle);
	public GKMeshGraph`1 (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max);
	public GKMeshGraph`1 (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max, ObjCRuntime.Class nodeClass);
	public GKMeshGraph`1 (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max, System.Type nodeType);
	// properties
	public virtual float BufferRadius { get; }
	public override IntPtr ClassHandle { get; }
	public virtual GKPolygonObstacle[] Obstacles { get; }
	public virtual uint TriangleCount { get; }
	public virtual GKMeshGraphTriangulationMode TriangulationMode { get; set; }
	// methods
	public virtual void AddObstacles (GKPolygonObstacle[] obstacles);
	public virtual void ConnectNodeUsingObstacles (NodeType node);
	public static GameplayKit.GKMeshGraph<NodeType> FromBufferRadius (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max);
	public static GameplayKit.GKMeshGraph<NodeType> FromBufferRadius (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max, ObjCRuntime.Class nodeClass);
	public static GameplayKit.GKMeshGraph<NodeType> FromBufferRadius (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max, System.Type nodeType);
	public virtual ObjCRuntime.Class GetClassForGenericArgument (uint index);
	public virtual GKTriangle GetTriangle (uint index);
	public System.Type GetTypeForGenericArgument (uint index);
	public virtual void RemoveObstacles (GKPolygonObstacle[] obstacles);
	public virtual void Triangulate ();
}

New Type GameplayKit.GKNoise

public class GKNoise : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKNoise ();
	protected GKNoise (Foundation.NSObjectFlag t);
	public GKNoise (GKNoiseSource noiseSource);
	protected GKNoise (IntPtr handle);
	public GKNoise (GKNoiseSource noiseSource, Foundation.NSDictionary<Foundation.NSNumber,UIKit.UIColor> gradientColors);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDictionary<Foundation.NSNumber,UIKit.UIColor> GradientColors { get; set; }
	// methods
	public virtual void Add (GKNoise noise);
	public virtual void ApplyAbsoluteValue ();
	public virtual void ApplyTurbulence (double frequency, double power, int roughness, int seed);
	public virtual void Clamp (double lowerBound, double upperBound);
	public virtual void DisplaceX (GKNoise xDisplacementNoise, GKNoise yDisplacementNoise, GKNoise zDisplacementNoise);
	public static GKNoise FromComponentNoises (GKNoise[] noises, GKNoise selectionNoise);
	public static GKNoise FromComponentNoises (GKNoise[] noises, GKNoise selectionNoise, Foundation.NSNumber[] componentBoundaries, Foundation.NSNumber[] blendDistances);
	public static GKNoise FromNoiseSource (GKNoiseSource noiseSource);
	public static GKNoise FromNoiseSource (GKNoiseSource noiseSource, Foundation.NSDictionary<Foundation.NSNumber,UIKit.UIColor> gradientColors);
	public virtual void GetMaximum (GKNoise noise);
	public virtual void GetMinimum (GKNoise noise);
	public virtual float GetValue (OpenTK.Vector2 position);
	public virtual void Invert ();
	public virtual void Move (OpenTK.Vector3d delta);
	public virtual void Multiply (GKNoise noise);
	public virtual void RaiseToPower (GKNoise noise);
	public virtual void RaiseToPower (double power);
	public virtual void RemapValuesToCurve (Foundation.NSDictionary<Foundation.NSNumber,Foundation.NSNumber> controlPoints);
	public virtual void RemapValuesToTerraces (Foundation.NSNumber[] peakInputValues, bool inverted);
	public virtual void Rotate (OpenTK.Vector3d radians);
	public virtual void Scale (OpenTK.Vector3d factor);
}

New Type GameplayKit.GKNoiseMap

public class GKNoiseMap : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKNoiseMap ();
	protected GKNoiseMap (Foundation.NSObjectFlag t);
	public GKNoiseMap (GKNoise noise);
	protected GKNoiseMap (IntPtr handle);
	public GKNoiseMap (GKNoise noise, OpenTK.Vector2d size, OpenTK.Vector2d origin, OpenTK.Vector2i sampleCount, bool seamless);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual OpenTK.Vector2d Origin { get; }
	public virtual OpenTK.Vector2i SampleCount { get; }
	public virtual bool Seamless { get; }
	public virtual OpenTK.Vector2d Size { get; }
	// methods
	public static GKNoiseMap FromNoise (GKNoise noise);
	public static GKNoiseMap FromNoise (GKNoise noise, OpenTK.Vector2d size, OpenTK.Vector2d origin, OpenTK.Vector2i sampleCount, bool seamless);
	public virtual float GetInterpolatedValue (OpenTK.Vector2 position);
	public virtual float GetValue (OpenTK.Vector2i position);
	public virtual void SetValue (float value, OpenTK.Vector2i position);
}

New Type GameplayKit.GKNoiseSource

public abstract class GKNoiseSource : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKNoiseSource (Foundation.NSObjectFlag t);
	protected GKNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type GameplayKit.GKObstacleGraph`1

public class GKObstacleGraph`1 : GameplayKit.GKObstacleGraph, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKObstacleGraph`1 (Foundation.NSCoder coder);
	public GKObstacleGraph`1 (GKPolygonObstacle[] obstacles, float bufferRadius);
	// methods
	public static GameplayKit.GKObstacleGraph<NodeType> FromObstacles (GKPolygonObstacle[] obstacles, float bufferRadius);
	public NodeType[] GetNodes (GKPolygonObstacle obstacle);
}

New Type GameplayKit.GKOctreeNode

public class GKOctreeNode : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKOctreeNode (Foundation.NSObjectFlag t);
	protected GKOctreeNode (IntPtr handle);
	// properties
	public virtual GKBox Box { get; }
	public override IntPtr ClassHandle { get; }
}

New Type GameplayKit.GKOctree`1

public class GKOctree`1 : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKOctree`1 ();
	protected GKOctree`1 (Foundation.NSObjectFlag t);
	protected GKOctree`1 (IntPtr handle);
	public GKOctree`1 (GKBox box, float minCellSize);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual GKOctreeNode AddElement (ElementType element, GKBox box);
	public virtual GKOctreeNode AddElement (ElementType element, OpenTK.Vector3 point);
	public static GameplayKit.GKOctree<ElementType> FromBoundingBox (GKBox box, float minCellSize);
	public virtual ElementType[] GetElements (GKBox box);
	public virtual ElementType[] GetElements (OpenTK.Vector3 point);
	public virtual bool RemoveElement (ElementType element);
	public virtual bool RemoveElement (ElementType element, GKOctreeNode node);
}

New Type GameplayKit.GKPerlinNoiseSource

public class GKPerlinNoiseSource : GameplayKit.GKCoherentNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKPerlinNoiseSource (Foundation.NSObjectFlag t);
	protected GKPerlinNoiseSource (IntPtr handle);
	public GKPerlinNoiseSource (double frequency, nint octaveCount, double persistence, double lacunarity, int seed);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Persistence { get; set; }
	// methods
	public static GKPerlinNoiseSource Create (double frequency, nint octaveCount, double persistence, double lacunarity, int seed);
}

New Type GameplayKit.GKQuad

public struct GKQuad {
	// fields
	public OpenTK.Vector2 Max;
	public OpenTK.Vector2 Min;
}

New Type GameplayKit.GKRTreeSplitStrategy

[Serializable]
public enum GKRTreeSplitStrategy {
	Halve = 0,
	Linear = 1,
	Quadratic = 2,
	ReduceOverlap = 3,
}

New Type GameplayKit.GKRTree`1

public class GKRTree`1 : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKRTree`1 (Foundation.NSObjectFlag t);
	protected GKRTree`1 (IntPtr handle);
	public GKRTree`1 (uint maxNumberOfChildren);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint QueryReserve { get; set; }
	// methods
	public virtual void AddElement (ElementType element, OpenTK.Vector2 boundingRectMin, OpenTK.Vector2 boundingRectMax, GKRTreeSplitStrategy splitStrategy);
	public static GameplayKit.GKRTree<ElementType> FromMaxNumberOfChildren (uint maxNumberOfChildren);
	public virtual ElementType[] GetElements (OpenTK.Vector2 rectMin, OpenTK.Vector2 rectMax);
	public virtual void RemoveElement (ElementType element, OpenTK.Vector2 boundingRectMin, OpenTK.Vector2 boundingRectMax);
}

New Type GameplayKit.GKRidgedNoiseSource

public class GKRidgedNoiseSource : GameplayKit.GKCoherentNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKRidgedNoiseSource (Foundation.NSObjectFlag t);
	protected GKRidgedNoiseSource (IntPtr handle);
	public GKRidgedNoiseSource (double frequency, nint octaveCount, double lacunarity, int seed);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public static GKRidgedNoiseSource Create (double frequency, nint octaveCount, double lacunarity, int seed);
}

New Type GameplayKit.GKSKNodeComponent

public class GKSKNodeComponent : GameplayKit.GKComponent, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, IGKAgentDelegate, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKSKNodeComponent ();
	public GKSKNodeComponent (Foundation.NSCoder coder);
	protected GKSKNodeComponent (Foundation.NSObjectFlag t);
	public GKSKNodeComponent (SpriteKit.SKNode node);
	protected GKSKNodeComponent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual SpriteKit.SKNode Node { get; set; }
	// methods
	public virtual void AgentDidUpdate (GKAgent agent);
	public virtual void AgentWillUpdate (GKAgent agent);
	public static GKSKNodeComponent FromNode (SpriteKit.SKNode node);
}

New Type GameplayKit.GKScene

public class GKScene : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKScene ();
	public GKScene (Foundation.NSCoder coder);
	protected GKScene (Foundation.NSObjectFlag t);
	protected GKScene (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual GKEntity[] Entities { get; }
	public virtual Foundation.NSDictionary<Foundation.NSString,GameplayKit.GKGraph> Graphs { get; }
	public virtual IGKSceneRootNodeType RootNode { get; set; }
	// methods
	public virtual void AddEntity (GKEntity entity);
	public virtual void AddGraph (GKGraph graph, string name);
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	protected override void Dispose (bool disposing);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static GKScene FromFile (string filename);
	public virtual void RemoveEntity (GKEntity entity);
	public virtual void RemoveGraph (string name);
}

New Type GameplayKit.GKSphereObstacle

public class GKSphereObstacle : GameplayKit.GKObstacle, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKSphereObstacle (Foundation.NSObjectFlag t);
	protected GKSphereObstacle (IntPtr handle);
	public GKSphereObstacle (float radius);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual OpenTK.Vector3 Position { get; set; }
	public virtual float Radius { get; set; }
	// methods
	public static GKSphereObstacle FromRadius (float radius);
}

New Type GameplayKit.GKSpheresNoiseSource

public class GKSpheresNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKSpheresNoiseSource (Foundation.NSObjectFlag t);
	public GKSpheresNoiseSource (double frequency);
	protected GKSpheresNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Frequency { get; set; }
	// methods
	public static GKSpheresNoiseSource Create (double frequency);
}

New Type GameplayKit.GKTriangle

public struct GKTriangle {
	// properties
	public OpenTK.Vector3[] Points { get; set; }
}

New Type GameplayKit.GKVoronoiNoiseSource

public class GKVoronoiNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKVoronoiNoiseSource (Foundation.NSObjectFlag t);
	protected GKVoronoiNoiseSource (IntPtr handle);
	public GKVoronoiNoiseSource (double frequency, double displacement, bool distanceEnabled, int seed);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Displacement { get; set; }
	public virtual bool DistanceEnabled { get; set; }
	public virtual double Frequency { get; set; }
	public virtual int Seed { get; set; }
	// methods
	public static GKVoronoiNoiseSource Create (double frequency, double displacement, bool distanceEnabled, int seed);
}

New Type GameplayKit.IGKSceneRootNodeType

public interface IGKSceneRootNodeType : ObjCRuntime.INativeObject, System.IDisposable {
}

New Type GameplayKit.NSArray_GameplayKit

public static class NSArray_GameplayKit {
	// methods
	public static T[] GetShuffledArray<T> (Foundation.NSArray This);
	public static T[] GetShuffledArray<T> (Foundation.NSArray This, GKRandomSource randomSource);
}

New Type GameplayKit.SKNode_GameplayKit

public static class SKNode_GameplayKit {
	// methods
	public static GKEntity GetEntity (SpriteKit.SKNode This);
	public static void SetEntity (SpriteKit.SKNode This, GKEntity entity);
}

Namespace ImageIO

Type Changed: ImageIO.CGImageDestinationOptions

Added property:

	public bool? OptimizeColorForSharing { get; set; }

Type Changed: ImageIO.CGImageDestinationOptionsKeys

Added property:

	public static Foundation.NSString OptimizeColorForSharing { get; }

Type Changed: ImageIO.CGImageProperties

Added properties:

	public static Foundation.NSString DNGAsShotNeutral { get; }
	public static Foundation.NSString DNGAsShotWhiteXY { get; }
	public static Foundation.NSString DNGBaselineExposure { get; }
	public static Foundation.NSString DNGBaselineNoise { get; }
	public static Foundation.NSString DNGBaselineSharpness { get; }
	public static Foundation.NSString DNGBlackLevel { get; }
	public static Foundation.NSString DNGCalibrationIlluminant1 { get; }
	public static Foundation.NSString DNGCalibrationIlluminant2 { get; }
	public static Foundation.NSString DNGCameraCalibration1 { get; }
	public static Foundation.NSString DNGCameraCalibration2 { get; }
	public static Foundation.NSString DNGCameraCalibrationSignature { get; }
	public static Foundation.NSString DNGColorMatrix1 { get; }
	public static Foundation.NSString DNGColorMatrix2 { get; }
	public static Foundation.NSString DNGFixVignetteRadial { get; }
	public static Foundation.NSString DNGNoiseProfile { get; }
	public static Foundation.NSString DNGPrivateData { get; }
	public static Foundation.NSString DNGProfileCalibrationSignature { get; }
	public static Foundation.NSString DNGWarpFisheye { get; }
	public static Foundation.NSString DNGWarpRectilinear { get; }
	public static Foundation.NSString DNGWhiteLevel { get; }

Namespace MapKit

Type Changed: MapKit.MKAnnotationView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MapKit.MKCoordinateRegion

Added method:

	public override string ToString ();

Type Changed: MapKit.MKCoordinateSpan

Added method:

	public override string ToString ();

Type Changed: MapKit.MKMapView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Added property:

	public virtual bool ShowsScale { get; set; }

Type Changed: MapKit.MKPinAnnotationView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MapKit.MKPlacemark

Added constructor:

	public MKPlacemark (CoreLocation.CLLocationCoordinate2D coordinate);

New Type MapKit.MKOverlayView

public class MKOverlayView {
	// constructors
	public MKOverlayView ();
	// methods
	public static nfloat MKRoadWidthAtZoomScale (nfloat zoomScale);
}

New Type MapKit.NSUserActivity_MKMapItem

public static class NSUserActivity_MKMapItem {
	// methods
	public static MKMapItem GetMapItem (Foundation.NSUserActivity This);
	public static void SetMapItem (Foundation.NSUserActivity This, MKMapItem item);
}

Namespace MediaPlayer

Type Changed: MediaPlayer.MPChangeLanguageOptionCommandEvent

Added property:

	public virtual MPChangeLanguageOptionSetting Setting { get; }

Type Changed: MediaPlayer.MPNowPlayingInfoCenter

Added properties:

	public static Foundation.NSString PropertyCollectionIdentifier { get; }
	public static Foundation.NSString PropertyExternalContentIdentifier { get; }
	public static Foundation.NSString PropertyExternalUserProfileIdentifier { get; }
	public static Foundation.NSString PropertyIsLiveStream { get; }
	public static Foundation.NSString PropertyMediaType { get; }
	public static Foundation.NSString PropertyPlaybackProgress { get; }

Type Changed: MediaPlayer.MPRemoteCommandCenter

Obsoleted constructors:

[Obsolete ("Use MPRemoteCommandCenter.Shared")] public MPRemoteCommandCenter ();

Added properties:

	public virtual MPChangeRepeatModeCommand ChangeRepeatModeCommand { get; }
	public virtual MPChangeShuffleModeCommand ChangeShuffleModeCommand { get; }

New Type MediaPlayer.MPChangeLanguageOptionSetting

[Serializable]
public enum MPChangeLanguageOptionSetting {
	None = 0,
	NowPlayingItemOnly = 1,
	Permanent = 2,
}

New Type MediaPlayer.MPChangeRepeatModeCommand

public class MPChangeRepeatModeCommand : MediaPlayer.MPRemoteCommand, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeRepeatModeCommand (Foundation.NSObjectFlag t);
	protected MPChangeRepeatModeCommand (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPRepeatType CurrentRepeatType { get; set; }
}

New Type MediaPlayer.MPChangeRepeatModeCommandEvent

public class MPChangeRepeatModeCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeRepeatModeCommandEvent (Foundation.NSObjectFlag t);
	protected MPChangeRepeatModeCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool PreservesRepeatMode { get; }
	public virtual MPRepeatType RepeatType { get; }
}

New Type MediaPlayer.MPChangeShuffleModeCommand

public class MPChangeShuffleModeCommand : MediaPlayer.MPRemoteCommand, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeShuffleModeCommand (Foundation.NSObjectFlag t);
	protected MPChangeShuffleModeCommand (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPShuffleType CurrentShuffleType { get; set; }
}

New Type MediaPlayer.MPChangeShuffleModeCommandEvent

public class MPChangeShuffleModeCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeShuffleModeCommandEvent (Foundation.NSObjectFlag t);
	protected MPChangeShuffleModeCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool PreservesShuffleMode { get; }
	public virtual MPShuffleType ShuffleType { get; }
}

New Type MediaPlayer.MPContentItem

public class MPContentItem : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPContentItem (Foundation.NSObjectFlag t);
	protected MPContentItem (IntPtr handle);
	public MPContentItem (string identifier);
	// properties
	public virtual MPMediaItemArtwork Artwork { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual bool Container { get; set; }
	public virtual bool ExplicitContent { get; set; }
	public virtual string Identifier { get; }
	public virtual bool Playable { get; set; }
	public virtual float PlaybackProgress { get; set; }
	public virtual bool StreamingContent { get; set; }
	public virtual string Subtitle { get; set; }
	public virtual string Title { get; set; }
}

New Type MediaPlayer.MPErrorCodeExtensions

public static class MPErrorCodeExtensions {
	// methods
	public static Foundation.NSString GetDomain (MPErrorCode self);
}

New Type MediaPlayer.MPMediaItemArtwork

public class MPMediaItemArtwork : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPMediaItemArtwork (Foundation.NSObjectFlag t);
	protected MPMediaItemArtwork (IntPtr handle);
	public MPMediaItemArtwork (UIKit.UIImage image);
	public MPMediaItemArtwork (CoreGraphics.CGSize boundsSize, System.Func<CoreGraphics.CGSize,UIKit.UIImage> requestHandler);
	// properties
	public virtual CoreGraphics.CGRect Bounds { get; }
	public override IntPtr ClassHandle { get; }
	public virtual CoreGraphics.CGRect ImageCropRectangle { get; }
	// methods
	public virtual UIKit.UIImage ImageWithSize (CoreGraphics.CGSize size);
}

New Type MediaPlayer.MPNowPlayingInfoMediaType

[Serializable]
public enum MPNowPlayingInfoMediaType {
	Audio = 1,
	None = 0,
	Video = 2,
}

New Type MediaPlayer.MPRepeatType

[Serializable]
public enum MPRepeatType {
	All = 2,
	Off = 0,
	One = 1,
}

New Type MediaPlayer.MPShuffleType

[Serializable]
public enum MPShuffleType {
	Collections = 2,
	Items = 1,
	Off = 0,
}

Namespace Metal

Type Changed: Metal.MTLArgument

Added properties:

	public virtual uint ArrayLength { get; }
	public virtual bool IsDepthTexture { get; }

Type Changed: Metal.MTLBlitCommandEncoder_Extensions

Added methods:

	public static void Update (IMTLBlitCommandEncoder This, IMTLFence fence);
	public static void Wait (IMTLBlitCommandEncoder This, IMTLFence fence);

Type Changed: Metal.MTLCommandBufferError

Added value:

	Memoryless = 10,

Type Changed: Metal.MTLComputeCommandEncoder_Extensions

Added methods:

	public static void SetStage (IMTLComputeCommandEncoder This, MTLRegion region);
	public static void Update (IMTLComputeCommandEncoder This, IMTLFence fence);
	public static void Wait (IMTLComputeCommandEncoder This, IMTLFence fence);

Type Changed: Metal.MTLComputePipelineDescriptor

Added property:

	public virtual MTLStageInputOutputDescriptor StageInputDescriptor { get; set; }

Type Changed: Metal.MTLDevice_Extensions

Added methods:

	public static IMTLFence CreateFence (IMTLDevice This);
	public static IMTLHeap CreateHeap (IMTLDevice This, MTLHeapDescriptor descriptor);
	public static IMTLLibrary CreateLibrary (IMTLDevice This, Foundation.NSBundle bundle, out Foundation.NSError error);
	public static MTLSizeAndAlign GetHeapBufferSizeAndAlignWithLength (IMTLDevice This, uint length, MTLResourceOptions options);
	public static MTLSizeAndAlign GetHeapTextureSizeAndAlign (IMTLDevice This, MTLTextureDescriptor desc);

Type Changed: Metal.MTLFeatureSet

Added values:

	OSX_GPUFamily1_v2 = 10001,
	OSX_ReadWriteTextureTier2 = 10002,
	iOS_GPUFamily1_v3 = 5,
	iOS_GPUFamily2_v3 = 6,
	iOS_GPUFamily3_v2 = 7,
	tvOS_GPUFamily1_v2 = 30001,

Type Changed: Metal.MTLLanguageVersion

Added value:

	v1_2 = 65538,

Type Changed: Metal.MTLLibraryError

Added values:

	FileNotFound = 6,
	FunctionNotFound = 5,

Type Changed: Metal.MTLPixelFormat

Added value:

	X32_Stencil8 = 261,

Type Changed: Metal.MTLRenderCommandEncoder_Extensions

Added methods:

	public static void DrawIndexedPatches (IMTLRenderCommandEncoder This, uint numberOfPatchControlPoints, uint patchStart, uint patchCount, IMTLBuffer patchIndexBuffer, uint patchIndexBufferOffset, IMTLBuffer controlPointIndexBuffer, uint controlPointIndexBufferOffset, uint instanceCount, uint baseInstance);
	public static void DrawPatches (IMTLRenderCommandEncoder This, uint numberOfPatchControlPoints, uint patchStart, uint patchCount, IMTLBuffer patchIndexBuffer, uint patchIndexBufferOffset, uint instanceCount, uint baseInstance);
	public static void SetColorStoreAction (IMTLRenderCommandEncoder This, MTLStoreAction storeAction, uint colorAttachmentIndex);
	public static void SetDepthStoreAction (IMTLRenderCommandEncoder This, MTLStoreAction storeAction);
	public static void SetStencilStoreAction (IMTLRenderCommandEncoder This, MTLStoreAction storeAction);
	public static void SetTessellationFactorBuffer (IMTLRenderCommandEncoder This, IMTLBuffer buffer, uint offset, uint instanceStride);
	public static void SetTessellationFactorScale (IMTLRenderCommandEncoder This, float scale);
	public static void Update (IMTLRenderCommandEncoder This, IMTLFence fence, MTLRenderStages stages);
	public static void Wait (IMTLRenderCommandEncoder This, IMTLFence fence, MTLRenderStages stages);

Type Changed: Metal.MTLRenderPipelineDescriptor

Added properties:

	public virtual bool IsTessellationFactorScaleEnabled { get; set; }
	public virtual uint MaxTessellationFactor { get; set; }
	public virtual MTLTessellationControlPointIndexType TessellationControlPointIndexType { get; set; }
	public virtual MTLTessellationFactorFormat TessellationFactorFormat { get; set; }
	public virtual MTLTessellationFactorStepFunction TessellationFactorStepFunction { get; set; }
	public virtual MTLWinding TessellationOutputWindingOrder { get; set; }
	public virtual MTLTessellationPartitionMode TessellationPartitionMode { get; set; }

Type Changed: Metal.MTLResourceOptions

Added values:

	HazardTrackingModeUntracked = 256,
	StorageModeMemoryless = 48,

Type Changed: Metal.MTLResource_Extensions

Added methods:

	public static IMTLHeap GetHeap (IMTLResource This);
	public static bool GetIsAliasable (IMTLResource This);
	public static void MakeAliasable (IMTLResource This);

Type Changed: Metal.MTLSamplerAddressMode

Added value:

	ClampToBorderColor = 5,

Type Changed: Metal.MTLStorageMode

Added value:

	Memoryless = 3,

Type Changed: Metal.MTLStoreAction

Added values:

	StoreAndMultisampleResolve = 3,
	Unknown = 4,

Type Changed: Metal.MTLVertexAttribute

Added properties:

	public virtual bool PatchControlPointData { get; }
	public virtual bool PatchData { get; }

Type Changed: Metal.MTLVertexDescriptor

Added method:

	public static MTLVertexDescriptor FromModelIO (ModelIO.MDLVertexDescriptor descriptor, out Foundation.NSError error);

Type Changed: Metal.MTLVertexStepFunction

Added values:

	PerPatch = 3,
	PerPatchControlPoint = 4,

New Type Metal.IMTLFence

public interface IMTLFence : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IMTLDevice Device { get; }
	public virtual string Label { get; set; }
}

New Type Metal.IMTLHeap

public interface IMTLHeap : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual MTLCpuCacheMode CpuCacheMode { get; }
	public virtual IMTLDevice Device { get; }
	public virtual string Label { get; set; }
	public virtual uint Size { get; }
	public virtual MTLStorageMode StorageMode { get; }
	public virtual uint UsedSize { get; }
	// methods
	public virtual IMTLBuffer CreateBuffer (uint length, MTLResourceOptions options);
	public virtual IMTLTexture CreateTexture (MTLTextureDescriptor desc);
	public virtual uint GetMaxAvailableSize (uint alignment);
	public virtual MTLPurgeableState SetPurgeableState (MTLPurgeableState state);
}

New Type Metal.MTLAttribute

public class MTLAttribute : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLAttribute ();
	protected MTLAttribute (Foundation.NSObjectFlag t);
	protected MTLAttribute (IntPtr handle);
	// properties
	public virtual bool Active { get; }
	public virtual uint AttributeIndex { get; }
	public virtual MTLDataType AttributeType { get; }
	public override IntPtr ClassHandle { get; }
	public virtual bool IsPatchControlPointData { get; }
	public virtual bool IsPatchData { get; }
	public virtual string Name { get; }
}

New Type Metal.MTLAttributeDescriptor

public class MTLAttributeDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLAttributeDescriptor ();
	protected MTLAttributeDescriptor (Foundation.NSObjectFlag t);
	protected MTLAttributeDescriptor (IntPtr handle);
	// properties
	public virtual uint BufferIndex { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual MTLAttributeFormat Format { get; set; }
	public virtual uint Offset { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type Metal.MTLAttributeDescriptorArray

public class MTLAttributeDescriptorArray : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLAttributeDescriptorArray ();
	protected MTLAttributeDescriptorArray (Foundation.NSObjectFlag t);
	protected MTLAttributeDescriptorArray (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public MTLAttributeDescriptor Item { get; set; }
}

New Type Metal.MTLAttributeFormat

[Serializable]
public enum MTLAttributeFormat {
	Char2 = 4,
	Char2Normalized = 10,
	Char3 = 5,
	Char3Normalized = 11,
	Char4 = 6,
	Char4Normalized = 12,
	Float = 28,
	Float2 = 29,
	Float3 = 30,
	Float4 = 31,
	Half2 = 25,
	Half3 = 26,
	Half4 = 27,
	Int = 32,
	Int1010102Normalized = 40,
	Int2 = 33,
	Int3 = 34,
	Int4 = 35,
	Invalid = 0,
	Short2 = 16,
	Short2Normalized = 22,
	Short3 = 17,
	Short3Normalized = 23,
	Short4 = 18,
	Short4Normalized = 24,
	UChar2 = 1,
	UChar2Normalized = 7,
	UChar3 = 2,
	UChar3Normalized = 8,
	UChar4 = 3,
	UChar4Normalized = 9,
	UInt = 36,
	UInt1010102Normalized = 41,
	UInt2 = 37,
	UInt3 = 38,
	UInt4 = 39,
	UShort2 = 13,
	UShort2Normalized = 19,
	UShort3 = 14,
	UShort3Normalized = 20,
	UShort4 = 15,
	UShort4Normalized = 21,
}

New Type Metal.MTLBufferLayoutDescriptor

public class MTLBufferLayoutDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLBufferLayoutDescriptor ();
	protected MTLBufferLayoutDescriptor (Foundation.NSObjectFlag t);
	protected MTLBufferLayoutDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MTLStepFunction StepFunction { get; set; }
	public virtual uint StepRate { get; set; }
	public virtual uint Stride { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type Metal.MTLBufferLayoutDescriptorArray

public class MTLBufferLayoutDescriptorArray : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLBufferLayoutDescriptorArray ();
	protected MTLBufferLayoutDescriptorArray (Foundation.NSObjectFlag t);
	protected MTLBufferLayoutDescriptorArray (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public MTLBufferLayoutDescriptor Item { get; set; }
}

New Type Metal.MTLBuffer_Extensions

public static class MTLBuffer_Extensions {
	// methods
	public static void AddDebugMarker (IMTLBuffer This, string marker, Foundation.NSRange range);
	public static void RemoveAllDebugMarkers (IMTLBuffer This);
}

New Type Metal.MTLDrawPatchIndirectArguments

public struct MTLDrawPatchIndirectArguments {
	// constructors
	public MTLDrawPatchIndirectArguments (uint pathCount, uint instanceCount, uint patchStart, uint baseInstance);
	// fields
	public uint BaseInstance;
	public uint InstanceCount;
	public uint PatchCount;
	public uint PatchStart;
}

New Type Metal.MTLFunctionConstant

public class MTLFunctionConstant : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLFunctionConstant ();
	protected MTLFunctionConstant (Foundation.NSObjectFlag t);
	protected MTLFunctionConstant (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint Index { get; }
	public virtual bool IsRequired { get; }
	public virtual string Name { get; }
	public virtual MTLDataType Type { get; }
}

New Type Metal.MTLFunctionConstantValues

public class MTLFunctionConstantValues : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MTLFunctionConstantValues (Foundation.NSObjectFlag t);
	protected MTLFunctionConstantValues (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void Reset ();
	public virtual void SetConstantValue (IntPtr value, MTLDataType type, string name);
	public virtual void SetConstantValue (IntPtr value, MTLDataType type, uint index);
	public virtual void SetConstantValues (IntPtr values, MTLDataType type, Foundation.NSRange range);
}

New Type Metal.MTLFunction_Extensions

public static class MTLFunction_Extensions {
	// methods
	public static Foundation.NSDictionary<Foundation.NSString,Metal.MTLFunctionConstant> GetFunctionConstants (IMTLFunction This);
	public static string GetLabel (IMTLFunction This);
	public static nint GetPatchControlPointCount (IMTLFunction This);
	public static MTLPatchType GetPatchType (IMTLFunction This);
	public static MTLAttribute[] GetStageInputAttributes (IMTLFunction This);
	public static void SetLabel (IMTLFunction This, string value);
}

New Type Metal.MTLHeapDescriptor

public class MTLHeapDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLHeapDescriptor ();
	protected MTLHeapDescriptor (Foundation.NSObjectFlag t);
	protected MTLHeapDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MTLCpuCacheMode CpuCacheMode { get; set; }
	public virtual uint Size { get; set; }
	public virtual MTLStorageMode StorageMode { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type Metal.MTLLibrary_Extensions

public static class MTLLibrary_Extensions {
	// methods
	public static void CreateFunction (IMTLLibrary This, string name, MTLFunctionConstantValues constantValues, System.Action<IMTLFunction,Foundation.NSError> completionHandler);
	public static IMTLFunction CreateFunction (IMTLLibrary This, string name, MTLFunctionConstantValues constantValues, out Foundation.NSError error);
}

New Type Metal.MTLParallelRenderCommandEncoder_Extensions

public static class MTLParallelRenderCommandEncoder_Extensions {
	// methods
	public static void SetColorStoreAction (IMTLParallelRenderCommandEncoder This, MTLStoreAction storeAction, uint colorAttachmentIndex);
	public static void SetDepthStoreAction (IMTLParallelRenderCommandEncoder This, MTLStoreAction storeAction);
	public static void SetStencilStoreAction (IMTLParallelRenderCommandEncoder This, MTLStoreAction storeAction);
}

New Type Metal.MTLPatchType

[Serializable]
public enum MTLPatchType {
	None = 0,
	Quad = 2,
	Triangle = 1,
}

New Type Metal.MTLQuadTessellationFactorsHalf

public struct MTLQuadTessellationFactorsHalf {
	// constructors
	public MTLQuadTessellationFactorsHalf (ushort[] edgeTessellationFactor, ushort[] insideTessellationFactor);
	// fields
	public ushort[] EdgeTessellationFactor;
	public ushort[] InsideTessellationFactor;
}

New Type Metal.MTLRenderStages

[Serializable]
public enum MTLRenderStages {
	Fragment = 2,
	Vertex = 1,
}

New Type Metal.MTLSamplerBorderColor

[Serializable]
public enum MTLSamplerBorderColor {
	OpaqueBlack = 1,
	OpaqueWhite = 2,
	TransparentBlack = 0,
}

New Type Metal.MTLSizeAndAlign

public struct MTLSizeAndAlign {
	// constructors
	public MTLSizeAndAlign (uint size, uint align);
	// fields
	public uint Align;
	public uint Size;
}

New Type Metal.MTLStageInputOutputDescriptor

public class MTLStageInputOutputDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLStageInputOutputDescriptor ();
	protected MTLStageInputOutputDescriptor (Foundation.NSObjectFlag t);
	protected MTLStageInputOutputDescriptor (IntPtr handle);
	// properties
	public virtual MTLAttributeDescriptorArray Attributes { get; }
	public override IntPtr ClassHandle { get; }
	public virtual uint IndexBufferIndex { get; set; }
	public virtual MTLIndexType IndexType { get; set; }
	public virtual MTLBufferLayoutDescriptorArray Layouts { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MTLStageInputOutputDescriptor Create ();
	public virtual void Reset ();
}

New Type Metal.MTLStepFunction

[Serializable]
public enum MTLStepFunction {
	Constant = 0,
	PerInstance = 2,
	PerPatch = 3,
	PerPatchControlPoint = 4,
	PerVertex = 1,
	ThreadPositionInGridX = 5,
	ThreadPositionInGridXIndexed = 7,
	ThreadPositionInGridY = 6,
	ThreadPositionInGridYIndexed = 8,
}

New Type Metal.MTLTessellationControlPointIndexType

[Serializable]
public enum MTLTessellationControlPointIndexType {
	None = 0,
	UInt16 = 1,
	UInt32 = 2,
}

New Type Metal.MTLTessellationFactorFormat

[Serializable]
public enum MTLTessellationFactorFormat {
	Half = 0,
}

New Type Metal.MTLTessellationFactorStepFunction

[Serializable]
public enum MTLTessellationFactorStepFunction {
	Constant = 0,
	PerInstance = 2,
	PerPatch = 1,
	PerPatchAndPerInstance = 3,
}

New Type Metal.MTLTessellationPartitionMode

[Serializable]
public enum MTLTessellationPartitionMode {
	FractionalEven = 3,
	FractionalOdd = 2,
	Integer = 1,
	Pow2 = 0,
}

New Type Metal.MTLTriangleTessellationFactorsHalf

public struct MTLTriangleTessellationFactorsHalf {
	// constructors
	public MTLTriangleTessellationFactorsHalf (ushort[] edgeTessellationFactor, ushort insideTessellationFactor);
	// fields
	public ushort[] EdgeTessellationFactor;
	public ushort InsideTessellationFactor;
}

Namespace MetalKit

Type Changed: MetalKit.MTKMeshBuffer

Added interface:

	ModelIO.IMDLNamed

Added property:

	public virtual string Name { get; set; }

Type Changed: MetalKit.MTKTextureLoader

Added methods:

	public virtual void FromName (string name, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary options, MTKTextureLoaderCallback completionHandler);
	public virtual Metal.IMTLTexture FromName (string name, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary options, out Foundation.NSError error);
	public void FromName (string name, nfloat scaleFactor, Foundation.NSBundle bundle, MTKTextureLoaderOptions options, MTKTextureLoaderCallback completionHandler);
	public Metal.IMTLTexture FromName (string name, nfloat scaleFactor, Foundation.NSBundle bundle, MTKTextureLoaderOptions options, out Foundation.NSError error);
	public virtual void FromNames (string[] names, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary options, MTKTextureLoaderArrayCallback completionHandler);
	public void FromNames (string[] names, nfloat scaleFactor, Foundation.NSBundle bundle, MTKTextureLoaderOptions options, MTKTextureLoaderArrayCallback completionHandler);
	public virtual void FromTexture (ModelIO.MDLTexture texture, Foundation.NSDictionary options, MTKTextureLoaderCallback completionHandler);
	public virtual Metal.IMTLTexture FromTexture (ModelIO.MDLTexture texture, Foundation.NSDictionary options, out Foundation.NSError error);
	public void FromTexture (ModelIO.MDLTexture texture, MTKTextureLoaderOptions options, MTKTextureLoaderCallback completionHandler);
	public Metal.IMTLTexture FromTexture (ModelIO.MDLTexture texture, MTKTextureLoaderOptions options, out Foundation.NSError error);
	public virtual void FromUrls (Foundation.NSUrl[] urls, Foundation.NSDictionary options, MTKTextureLoaderArrayCallback completionHandler);
	public virtual Metal.IMTLTexture[] FromUrls (Foundation.NSUrl[] urls, Foundation.NSDictionary options, out Foundation.NSError error);
	public void FromUrls (Foundation.NSUrl[] urls, MTKTextureLoaderOptions options, MTKTextureLoaderArrayCallback completionHandler);
	public Metal.IMTLTexture[] FromUrls (Foundation.NSUrl[] urls, MTKTextureLoaderOptions options, out Foundation.NSError error);

Type Changed: MetalKit.MTKTextureLoaderOptions

Modified properties:

public bool? AllocateMipmaps { get; set; }
public bool? Srgb { get; set; }

Added properties:

	public MTKTextureLoaderCubeLayout? CubeLayout { get; set; }
	public bool? GenerateMipmaps { get; }
	public MTKTextureLoaderOrigin? Origin { get; set; }
	public Metal.MTLStorageMode? TextureStorageMode { get; set; }

Type Changed: MetalKit.MTKView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Added methods:

	public virtual Foundation.NSObject ActionForLayer (CoreAnimation.CALayer layer, string eventKey);
	public virtual void DisplayLayer (CoreAnimation.CALayer layer);
	public virtual void DrawLayer (CoreAnimation.CALayer layer, CoreGraphics.CGContext context);
	public virtual void LayoutSublayersOfLayer (CoreAnimation.CALayer layer);
	public virtual void WillDrawLayer (CoreAnimation.CALayer layer);

New Type MetalKit.MTKTextureLoaderArrayCallback

public sealed delegate MTKTextureLoaderArrayCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public MTKTextureLoaderArrayCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (Metal.IMTLTexture[] textures, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (Metal.IMTLTexture[] textures, Foundation.NSError error);
}

New Type MetalKit.MTKTextureLoaderCubeLayout

[Serializable]
public enum MTKTextureLoaderCubeLayout {
	Vertical = 0,
}

New Type MetalKit.MTKTextureLoaderCubeLayoutExtensions

public static class MTKTextureLoaderCubeLayoutExtensions {
	// methods
	public static Foundation.NSString GetConstant (MTKTextureLoaderCubeLayout self);
	public static MTKTextureLoaderCubeLayout GetValue (Foundation.NSString constant);
}

New Type MetalKit.MTKTextureLoaderOrigin

[Serializable]
public enum MTKTextureLoaderOrigin {
	BottomLeft = 1,
	FlippedVertically = 2,
	TopLeft = 0,
}

New Type MetalKit.MTKTextureLoaderOriginExtensions

public static class MTKTextureLoaderOriginExtensions {
	// methods
	public static Foundation.NSString GetConstant (MTKTextureLoaderOrigin self);
	public static MTKTextureLoaderOrigin GetValue (Foundation.NSString constant);
}

Namespace MetalPerformanceShaders

New Type MetalPerformanceShaders.MPSAlphaType

[Serializable]
public enum MPSAlphaType {
	AlphaIsOne = 1,
	NonPremultiplied = 0,
	Premultiplied = 2,
}

New Type MetalPerformanceShaders.MPSCnnConvolution

public class MPSCnnConvolution : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnConvolution (Foundation.NSObjectFlag t);
	protected MPSCnnConvolution (IntPtr handle);
	public MPSCnnConvolution (Metal.IMTLDevice device, MPSCnnConvolutionDescriptor convolutionDescriptor, float[] kernelWeights, float[] biasTerms, MPSCnnConvolutionFlags flags);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint Groups { get; }
	public virtual uint InputFeatureChannels { get; }
	public virtual uint KernelHeight { get; }
	public virtual uint KernelWidth { get; }
	public virtual MPSCnnNeuron Neuron { get; }
	public virtual uint OutputFeatureChannels { get; }
	public virtual uint StrideInPixelsX { get; }
	public virtual uint StrideInPixelsY { get; }
}

New Type MetalPerformanceShaders.MPSCnnConvolutionDescriptor

public class MPSCnnConvolutionDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnConvolutionDescriptor (Foundation.NSObjectFlag t);
	protected MPSCnnConvolutionDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint Groups { get; set; }
	public virtual uint InputFeatureChannels { get; set; }
	public virtual uint KernelHeight { get; set; }
	public virtual uint KernelWidth { get; set; }
	public virtual MPSCnnNeuron Neuron { get; set; }
	public virtual uint OutputFeatureChannels { get; set; }
	public virtual uint StrideInPixelsX { get; set; }
	public virtual uint StrideInPixelsY { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MPSCnnConvolutionDescriptor GetConvolutionDescriptor (uint kernelWidth, uint kernelHeight, uint inputFeatureChannels, uint outputFeatureChannels, MPSCnnNeuron neuronFilter);
}

New Type MetalPerformanceShaders.MPSCnnConvolutionFlags

[Serializable]
[Flags]
public enum MPSCnnConvolutionFlags {
	None = 0,
}

New Type MetalPerformanceShaders.MPSCnnCrossChannelNormalization

public class MPSCnnCrossChannelNormalization : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnCrossChannelNormalization (Foundation.NSObjectFlag t);
	protected MPSCnnCrossChannelNormalization (IntPtr handle);
	public MPSCnnCrossChannelNormalization (Metal.IMTLDevice device, uint kernelSize);
	// properties
	public virtual float Alpha { get; set; }
	public virtual float Beta { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual float Delta { get; set; }
	public virtual uint KernelSize { get; }
}

New Type MetalPerformanceShaders.MPSCnnFullyConnected

public class MPSCnnFullyConnected : MetalPerformanceShaders.MPSCnnConvolution, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnFullyConnected (Foundation.NSObjectFlag t);
	protected MPSCnnFullyConnected (IntPtr handle);
	public MPSCnnFullyConnected (Metal.IMTLDevice device, MPSCnnConvolutionDescriptor convolutionDescriptor, float[] kernelWeights, float[] biasTerms, MPSCnnConvolutionFlags flags);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnKernel

public abstract class MPSCnnKernel : MetalPerformanceShaders.MPSKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnKernel (Foundation.NSObjectFlag t);
	public MPSCnnKernel (Metal.IMTLDevice device);
	protected MPSCnnKernel (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Metal.MTLRegion ClipRect { get; set; }
	public virtual uint DestinationFeatureChannelOffset { get; set; }
	public virtual MPSImageEdgeMode EdgeMode { get; set; }
	public virtual MPSOffset Offset { get; set; }
	// methods
	public virtual void EncodeToCommandBuffer (Metal.IMTLCommandBuffer commandBuffer, MPSImage sourceImage, MPSImage destinationImage);
	public virtual MPSRegion GetSourceRegion (Metal.MTLSize destinationSize);
}

New Type MetalPerformanceShaders.MPSCnnLocalContrastNormalization

public class MPSCnnLocalContrastNormalization : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnLocalContrastNormalization (Foundation.NSObjectFlag t);
	protected MPSCnnLocalContrastNormalization (IntPtr handle);
	public MPSCnnLocalContrastNormalization (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight);
	// properties
	public virtual float Alpha { get; set; }
	public virtual float Beta { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual float Delta { get; set; }
	public virtual uint KernelHeight { get; }
	public virtual uint KernelWidth { get; }
	public virtual float P0 { get; set; }
	public virtual float Pm { get; set; }
	public virtual float Ps { get; set; }
}

New Type MetalPerformanceShaders.MPSCnnLogSoftMax

public class MPSCnnLogSoftMax : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnLogSoftMax (Foundation.NSObjectFlag t);
	public MPSCnnLogSoftMax (Metal.IMTLDevice device);
	protected MPSCnnLogSoftMax (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuron

public abstract class MPSCnnNeuron : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuron (Foundation.NSObjectFlag t);
	public MPSCnnNeuron (Metal.IMTLDevice device);
	protected MPSCnnNeuron (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuronAbsolute

public class MPSCnnNeuronAbsolute : MetalPerformanceShaders.MPSCnnNeuron, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuronAbsolute (Foundation.NSObjectFlag t);
	public MPSCnnNeuronAbsolute (Metal.IMTLDevice device);
	protected MPSCnnNeuronAbsolute (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuronLinear

public class MPSCnnNeuronLinear : MetalPerformanceShaders.MPSCnnNeuron, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuronLinear (Foundation.NSObjectFlag t);
	protected MPSCnnNeuronLinear (IntPtr handle);
	public MPSCnnNeuronLinear (Metal.IMTLDevice device, float a, float b);
	// properties
	public virtual float A { get; }
	public virtual float B { get; }
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuronReLU

public class MPSCnnNeuronReLU : MetalPerformanceShaders.MPSCnnNeuron, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuronReLU (Foundation.NSObjectFlag t);
	protected MPSCnnNeuronReLU (IntPtr handle);
	public MPSCnnNeuronReLU (Metal.IMTLDevice device, float a);
	// properties
	public virtual float A { get; }
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuronSigmoid

public class MPSCnnNeuronSigmoid : MetalPerformanceShaders.MPSCnnNeuron, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuronSigmoid (Foundation.NSObjectFlag t);
	public MPSCnnNeuronSigmoid (Metal.IMTLDevice device);
	protected MPSCnnNeuronSigmoid (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuronTanH

public class MPSCnnNeuronTanH : MetalPerformanceShaders.MPSCnnNeuron, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuronTanH (Foundation.NSObjectFlag t);
	protected MPSCnnNeuronTanH (IntPtr handle);
	public MPSCnnNeuronTanH (Metal.IMTLDevice device, float a, float b);
	// properties
	public virtual float A { get; }
	public virtual float B { get; }
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnPooling

public class MPSCnnPooling : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnPooling (Foundation.NSObjectFlag t);
	protected MPSCnnPooling (IntPtr handle);
	public MPSCnnPooling (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight);
	public MPSCnnPooling (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight, uint strideInPixelsX, uint strideInPixelsY);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint KernelHeight { get; }
	public virtual uint KernelWidth { get; }
	public virtual uint StrideInPixelsX { get; }
	public virtual uint StrideInPixelsY { get; }
}

New Type MetalPerformanceShaders.MPSCnnPoolingAverage

public class MPSCnnPoolingAverage : MetalPerformanceShaders.MPSCnnPooling, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnPoolingAverage (Foundation.NSObjectFlag t);
	protected MPSCnnPoolingAverage (IntPtr handle);
	public MPSCnnPoolingAverage (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight, uint strideInPixelsX, uint strideInPixelsY);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnPoolingMax

public class MPSCnnPoolingMax : MetalPerformanceShaders.MPSCnnPooling, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnPoolingMax (Foundation.NSObjectFlag t);
	protected MPSCnnPoolingMax (IntPtr handle);
	public MPSCnnPoolingMax (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight, uint strideInPixelsX, uint strideInPixelsY);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnSoftMax

public class MPSCnnSoftMax : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnSoftMax (Foundation.NSObjectFlag t);
	public MPSCnnSoftMax (Metal.IMTLDevice device);
	protected MPSCnnSoftMax (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnSpatialNormalization

public class MPSCnnSpatialNormalization : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnSpatialNormalization (Foundation.NSObjectFlag t);
	protected MPSCnnSpatialNormalization (IntPtr handle);
	public MPSCnnSpatialNormalization (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight);
	// properties
	public virtual float Alpha { get; set; }
	public virtual float Beta { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual float Delta { get; set; }
	public virtual uint KernelHeight { get; }
	public virtual uint KernelWidth { get; }
}

New Type MetalPerformanceShaders.MPSDataType

[Serializable]
public enum MPSDataType {
	Float32 = 268435488,
	FloatBit = 268435456,
}

New Type MetalPerformanceShaders.MPSImage

public class MPSImage : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImage (Foundation.NSObjectFlag t);
	protected MPSImage (IntPtr handle);
	public MPSImage (Metal.IMTLDevice device, MPSImageDescriptor imageDescriptor);
	public MPSImage (Metal.IMTLTexture texture, uint featureChannels);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Metal.IMTLDevice Device { get; }
	public virtual uint FeatureChannels { get; }
	public virtual uint Height { get; }
	public virtual string Label { get; set; }
	public virtual uint NumberOfImages { get; }
	public virtual Metal.MTLPixelFormat PixelFormat { get; }
	public virtual uint PixelSize { get; }
	public virtual uint Precision { get; }
	public virtual Metal.IMTLTexture Texture { get; }
	public virtual Metal.MTLTextureType TextureType { get; }
	public virtual Metal.MTLTextureUsage Usage { get; }
	public virtual uint Width { get; }
	// methods
	public virtual MPSPurgeableState SetPurgeableState (MPSPurgeableState state);
}

New Type MetalPerformanceShaders.MPSImageConversion

public class MPSImageConversion : MetalPerformanceShaders.MPSUnaryImageKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImageConversion (Foundation.NSObjectFlag t);
	protected MPSImageConversion (IntPtr handle);
	public MPSImageConversion (Metal.IMTLDevice device, MPSAlphaType srcAlpha, MPSAlphaType destAlpha, nfloat[] backgroundColor, CoreGraphics.CGColorConversionInfo conversionInfo);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPSAlphaType DestinationAlpha { get; }
	public virtual MPSAlphaType SourceAlpha { get; }
}

New Type MetalPerformanceShaders.MPSImageDescriptor

public class MPSImageDescriptor : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImageDescriptor (Foundation.NSObjectFlag t);
	protected MPSImageDescriptor (IntPtr handle);
	// properties
	public virtual MPSImageFeatureChannelFormat ChannelFormat { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual Metal.MTLCpuCacheMode CpuCacheMode { get; set; }
	public virtual uint FeatureChannels { get; set; }
	public virtual uint Height { get; set; }
	public virtual uint NumberOfImages { get; set; }
	public virtual Metal.MTLPixelFormat PixelFormat { get; }
	public virtual Metal.MTLStorageMode StorageMode { get; set; }
	public virtual Metal.MTLTextureUsage Usage { get; set; }
	public virtual uint Width { get; set; }
	// methods
	public static MPSImageDescriptor GetImageDescriptor (MPSImageFeatureChannelFormat channelFormat, uint width, uint height, uint featureChannels);
	public static MPSImageDescriptor GetImageDescriptor (MPSImageFeatureChannelFormat channelFormat, uint width, uint height, uint featureChannels, uint numberOfImages, Metal.MTLTextureUsage usage);
}

New Type MetalPerformanceShaders.MPSImageFeatureChannelFormat

[Serializable]
public enum MPSImageFeatureChannelFormat {
	Float16 = 3,
	Float32 = 4,
	Invalid = 0,
	Unorm16 = 2,
	Unorm8 = 1,
}

New Type MetalPerformanceShaders.MPSImageGaussianPyramid

public class MPSImageGaussianPyramid : MetalPerformanceShaders.MPSImagePyramid, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImageGaussianPyramid (Foundation.NSObjectFlag t);
	protected MPSImageGaussianPyramid (IntPtr handle);
	public MPSImageGaussianPyramid (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight, float[] kernelWeights);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSImageLaplacian

public class MPSImageLaplacian : MetalPerformanceShaders.MPSUnaryImageKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImageLaplacian (Foundation.NSObjectFlag t);
	public MPSImageLaplacian (Metal.IMTLDevice device);
	protected MPSImageLaplacian (IntPtr handle);
	// properties
	public virtual float Bias { get; set; }
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSImagePyramid

public class MPSImagePyramid : MetalPerformanceShaders.MPSUnaryImageKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImagePyramid (Foundation.NSObjectFlag t);
	public MPSImagePyramid (Metal.IMTLDevice device);
	protected MPSImagePyramid (IntPtr handle);
	public MPSImagePyramid (Metal.IMTLDevice device, float centerWeight);
	public MPSImagePyramid (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight, float[] kernelWeights);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint KernelHeight { get; }
	public virtual uint KernelWidth { get; }
}

New Type MetalPerformanceShaders.MPSMatrix

public class MPSMatrix : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSMatrix (Foundation.NSObjectFlag t);
	protected MPSMatrix (IntPtr handle);
	public MPSMatrix (Metal.IMTLBuffer buffer, MPSMatrixDescriptor descriptor);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint Columns { get; }
	public virtual Metal.IMTLBuffer Data { get; }
	public virtual MPSDataType DataType { get; }
	public virtual Metal.IMTLDevice Device { get; }
	public virtual uint RowBytes { get; }
	public virtual uint Rows { get; }
}

New Type MetalPerformanceShaders.MPSMatrixDescriptor

public class MPSMatrixDescriptor : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSMatrixDescriptor (Foundation.NSObjectFlag t);
	protected MPSMatrixDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint Columns { get; set; }
	public virtual MPSDataType DataType { get; set; }
	public virtual uint RowBytes { get; set; }
	public virtual uint Rows { get; set; }
	// methods
	public static MPSMatrixDescriptor Create (uint rows, uint columns, uint rowBytes, MPSDataType dataType);
	public static uint GetRowBytes (uint columns, MPSDataType dataType);
}

New Type MetalPerformanceShaders.MPSMatrixMultiplication

public class MPSMatrixMultiplication : MetalPerformanceShaders.MPSKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSMatrixMultiplication (Foundation.NSObjectFlag t);
	protected MPSMatrixMultiplication (IntPtr handle);
	public MPSMatrixMultiplication (Metal.IMTLDevice device, bool transposeLeft, bool transposeRight, uint resultRows, uint resultColumns, uint interiorColumns, double alpha, double beta);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Metal.MTLOrigin LeftMatrixOrigin { get; set; }
	public virtual Metal.MTLOrigin ResultMatrixOrigin { get; set; }
	public virtual Metal.MTLOrigin RightMatrixOrigin { get; set; }
	// methods
	public virtual void EncodeToCommandBuffer (Metal.IMTLCommandBuffer commandBuffer, MPSMatrix leftMatrix, MPSMatrix rightMatrix, MPSMatrix resultMatrix);
}

New Type MetalPerformanceShaders.MPSPurgeableState

[Serializable]
[Flags]
public enum MPSPurgeableState {
	AllocationDeferred = 0,
	Empty = 4,
	KeepCurrent = 1,
	NonVolatile = 2,
	Volatile = 3,
}

New Type MetalPerformanceShaders.MPSTemporaryImage

public class MPSTemporaryImage : MetalPerformanceShaders.MPSImage, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSTemporaryImage (Foundation.NSObjectFlag t);
	protected MPSTemporaryImage (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint ReadCount { get; set; }
	// methods
	public static MPSTemporaryImage GetTemporaryImage (Metal.IMTLCommandBuffer commandBuffer, Metal.MTLTextureDescriptor textureDescriptor);
	public static MPSTemporaryImage GetTemporaryImage (Metal.IMTLCommandBuffer commandBuffer, MPSImageDescriptor imageDescriptor);
	public static void PrefetchStorage (Metal.IMTLCommandBuffer commandBuffer, MPSImageDescriptor[] descriptorList);
}

Namespace MobileCoreServices

Type Changed: MobileCoreServices.UTType

Added property:

	public static Foundation.NSString UniversalSceneDescription { get; }

Namespace ModelIO

Type Changed: ModelIO.MDLAsset

Added constructor:

	public MDLAsset (IMDLMeshBufferAllocator bufferAllocator);

Added property:

	public virtual IMDLObjectContainerComponent Masters { get; set; }

Added methods:

	public static MDLAsset FromScene (SceneKit.SCNScene scene, IMDLMeshBufferAllocator bufferAllocator);
	public virtual MDLObject[] GetChildObjects (ObjCRuntime.Class objectClass);

Type Changed: ModelIO.MDLCamera

Added property:

	public virtual MDLCameraProjection Projection { get; set; }

Type Changed: ModelIO.MDLLight

Added property:

	public virtual Foundation.NSString ColorSpace { get; set; }

Type Changed: ModelIO.MDLMaterial

Added property:

	public virtual MDLMaterialFace MaterialFace { get; set; }

Type Changed: ModelIO.MDLMaterialProperty

Added interface:

	Foundation.INSCopying

Added property:

	public virtual float Luminance { get; set; }

Added method:

	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);

Type Changed: ModelIO.MDLMesh

Added constructor:

	public MDLMesh (IMDLMeshBufferAllocator bufferAllocator);

Modified properties:

public virtual Foundation.NSMutableArray<MDLSubmesh> Submeshes { get; set; }
public virtual uint VertexCount { get; set; }

Added property:

	public virtual IMDLMeshBufferAllocator Allocator { get; }

Added methods:

	public virtual void AddAttribute (string name, MDLVertexFormat format, string type, Foundation.NSData data, nint stride);
	public virtual void AddAttribute (string name, MDLVertexFormat format, string type, Foundation.NSData data, nint stride, double time);
	public virtual void AddUnwrappedTextureCoordinates (string textureCoordinateAttributeName);
	public static MDLMesh CreateCapsule (OpenTK.Vector3 dimensions, OpenTK.Vector2i segments, MDLGeometryType geometryType, bool inwardNormals, int hemisphereSegments, IMDLMeshBufferAllocator allocator);
	public static MDLMesh CreateCone (OpenTK.Vector3 dimensions, OpenTK.Vector2i segments, MDLGeometryType geometryType, bool inwardNormals, bool cap, IMDLMeshBufferAllocator allocator);
	public static MDLMesh CreateHemisphere (OpenTK.Vector3 dimensions, OpenTK.Vector2i segments, MDLGeometryType geometryType, bool inwardNormals, bool cap, IMDLMeshBufferAllocator allocator);
	public static MDLMesh CreateSphere (OpenTK.Vector3 dimensions, OpenTK.Vector2i segments, MDLGeometryType geometryType, bool inwardNormals, IMDLMeshBufferAllocator allocator);
	public static MDLMesh CreateSubdividedMesh (MDLMesh mesh, int submeshIndex, uint subdivisionLevels, IMDLMeshBufferAllocator allocator);
	public static MDLMesh FromGeometry (SceneKit.SCNGeometry geometry, IMDLMeshBufferAllocator bufferAllocator);
	public virtual MDLVertexAttributeData GetVertexAttributeData (string attributeName, MDLVertexFormat format);
	public virtual void RemoveAttribute (string name);
	public virtual void ReplaceAttribute (string name, MDLVertexAttributeData newData);
	public virtual void UpdateAttribute (string name, MDLVertexAttributeData newData);

Type Changed: ModelIO.MDLObject

Added properties:

	public virtual bool Hidden { get; set; }
	public virtual MDLObject Instance { get; set; }
	public virtual string Path { get; }

Added methods:

	public static MDLObject FromNode (SceneKit.SCNNode node, IMDLMeshBufferAllocator bufferAllocator);
	public virtual MDLObject GetObject (string path);

Type Changed: ModelIO.MDLSubmesh

Added methods:

	public static MDLSubmesh FromGeometryElement (SceneKit.SCNGeometryElement element, IMDLMeshBufferAllocator bufferAllocator);
	public virtual IMDLMeshBuffer GetIndexBuffer (MDLIndexBitDepth indexType);

Type Changed: ModelIO.MDLTexture

Added property:

	public virtual bool HasAlphaValues { get; set; }

Type Changed: ModelIO.MDLTransform

Added constructors:

	public MDLTransform (IMDLTransformComponent component, bool resetsTransform);
	public MDLTransform (OpenTK.Matrix4 matrix, bool resetsTransform);

Added interface:

	Foundation.INSCopying

Added properties:

	public virtual Foundation.NSNumber[] KeyTimes { get; }
	public virtual bool ResetsTransform { get; set; }

Added method:

	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);

Type Changed: ModelIO.MDLTransformComponent_Extensions

Added methods:

	public static Foundation.NSNumber[] GetKeyTimes (IMDLTransformComponent This);
	public static bool GetResetsTransform (IMDLTransformComponent This);
	public static void SetResetsTransform (IMDLTransformComponent This, bool value);

Type Changed: ModelIO.MDLVertexAttribute

Added property:

	public virtual double Time { get; set; }

Type Changed: ModelIO.MDLVertexBufferLayout

Added constructor:

	public MDLVertexBufferLayout (uint stride);

Type Changed: ModelIO.MDLVertexDescriptor

Added methods:

	public static MDLVertexDescriptor FromMetal (Metal.MTLVertexDescriptor descriptor, out Foundation.NSError error);
	public virtual void RemoveAttribute (string name);

Type Changed: ModelIO.MDLVoxelArray

Modified base type: Foundation.NSObject ModelIO.MDLObject

Added constructor:

	public MDLVoxelArray (MDLAsset asset, int divisions, float patchRadius);

Added interface:

	IMDLNamed

Added properties:

	public virtual bool IsValidSignedShellField { get; }
	public virtual float ShellFieldExteriorThickness { get; set; }
	public virtual float ShellFieldInteriorThickness { get; set; }

Added methods:

	public virtual void ConvertToSignedShellField ();
	public virtual MDLMesh GetCoarseMesh ();
	public virtual MDLMesh GetCoarseMeshUsingAllocator (IMDLMeshBufferAllocator allocator);
	public virtual void SetVoxels (MDLMesh mesh, int divisions, float patchRadius);

New Type ModelIO.IMDLLightProbeIrradianceDataSource

public interface IMDLLightProbeIrradianceDataSource : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual MDLAxisAlignedBoundingBox BoundingBox { get; set; }
}

New Type ModelIO.MDLCameraProjection

[Serializable]
public enum MDLCameraProjection {
	Orthographic = 1,
	Perspective = 0,
}

New Type ModelIO.MDLLightProbeIrradianceDataSource

public abstract class MDLLightProbeIrradianceDataSource : Foundation.NSObject, Foundation.INSObjectProtocol, IMDLLightProbeIrradianceDataSource, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MDLLightProbeIrradianceDataSource ();
	protected MDLLightProbeIrradianceDataSource (Foundation.NSObjectFlag t);
	protected MDLLightProbeIrradianceDataSource (IntPtr handle);
	// properties
	public virtual MDLAxisAlignedBoundingBox BoundingBox { get; set; }
	public virtual uint SphericalHarmonicsLevel { get; set; }
	// methods
	public virtual Foundation.NSData GetSphericalHarmonicsCoefficients (OpenTK.Vector3 position);
}

New Type ModelIO.MDLLightProbeIrradianceDataSource_Extensions

public static class MDLLightProbeIrradianceDataSource_Extensions {
	// methods
	public static Foundation.NSData GetSphericalHarmonicsCoefficients (IMDLLightProbeIrradianceDataSource This, OpenTK.Vector3 position);
	public static uint GetSphericalHarmonicsLevel (IMDLLightProbeIrradianceDataSource This);
	public static void SetSphericalHarmonicsLevel (IMDLLightProbeIrradianceDataSource This, uint value);
}

New Type ModelIO.MDLMaterialFace

[Serializable]
public enum MDLMaterialFace {
	Back = 1,
	DoubleSided = 2,
	Front = 0,
}

New Type ModelIO.MDLMaterialPropertyConnection

public class MDLMaterialPropertyConnection : Foundation.NSObject, Foundation.INSObjectProtocol, IMDLNamed, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MDLMaterialPropertyConnection (Foundation.NSObjectFlag t);
	protected MDLMaterialPropertyConnection (IntPtr handle);
	public MDLMaterialPropertyConnection (MDLMaterialProperty output, MDLMaterialProperty input);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MDLMaterialProperty Input { get; }
	public virtual string Name { get; set; }
	public virtual MDLMaterialProperty Output { get; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type ModelIO.MDLMaterialPropertyGraph

public class MDLMaterialPropertyGraph : ModelIO.MDLMaterialPropertyNode, Foundation.INSObjectProtocol, IMDLNamed, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MDLMaterialPropertyGraph (Foundation.NSObjectFlag t);
	protected MDLMaterialPropertyGraph (IntPtr handle);
	public MDLMaterialPropertyGraph (MDLMaterialPropertyNode[] nodes, MDLMaterialPropertyConnection[] connections);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MDLMaterialPropertyConnection[] Connections { get; }
	public virtual MDLMaterialPropertyNode[] Nodes { get; }
	// methods
	public virtual void Evaluate ();
}

New Type ModelIO.MDLMaterialPropertyNode

public class MDLMaterialPropertyNode : Foundation.NSObject, Foundation.INSObjectProtocol, IMDLNamed, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MDLMaterialPropertyNode (Foundation.NSObjectFlag t);
	protected MDLMaterialPropertyNode (IntPtr handle);
	public MDLMaterialPropertyNode (MDLMaterialProperty[] inputs, MDLMaterialProperty[] outputs, System.Action<MDLMaterialPropertyNode> function);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<MDLMaterialPropertyNode> EvaluationFunction { get; set; }
	public virtual MDLMaterialProperty[] Inputs { get; }
	public virtual string Name { get; set; }
	public virtual MDLMaterialProperty[] Outputs { get; }
}

New Type ModelIO.MDLProbePlacement

[Serializable]
public enum MDLProbePlacement {
	IrradianceDistribution = 1,
	UniformGrid = 0,
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

public const string SdkVersion = "9.2" "10.0";
public const string Version = "9.8.2" "10.0.0";

Added fields:

	public static const string ExternalAccessoryLibrary = "/System/Library/Frameworks/ExternalAccessory.framework/ExternalAccessory";
	public static const string HomeKitLibrary = "/System/Library/Frameworks/HomeKit.framework/HomeKit";
	public static const string MultipeerConnectivityLibrary = "/System/Library/Frameworks/MultipeerConnectivity.framework/MultipeerConnectivity";
	public static const string PhotosLibrary = "/System/Library/Frameworks/Photos.framework/Photos";
	public static const string ReplayKitLibrary = "/System/Library/Frameworks/ReplayKit.framework/ReplayKit";
	public static const string UserNotificationsLibrary = "/System/Library/Frameworks/UserNotifications.framework/UserNotifications";
	public static const string VideoSubscriberAccountLibrary = "/System/Library/Frameworks/VideoSubscriberAccount.framework/VideoSubscriberAccount";

Type Changed: ObjCRuntime.Runtime

Added events:

	public event MarshalManagedExceptionHandler MarshalManagedException;
	public event MarshalObjectiveCExceptionHandler MarshalObjectiveCException;

New Type ObjCRuntime.MarshalManagedExceptionEventArgs

public class MarshalManagedExceptionEventArgs {
	// constructors
	public MarshalManagedExceptionEventArgs ();
	// properties
	public System.Exception Exception { get; set; }
	public MarshalManagedExceptionMode ExceptionMode { get; set; }
}

New Type ObjCRuntime.MarshalManagedExceptionHandler

public sealed delegate MarshalManagedExceptionHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public MarshalManagedExceptionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (object sender, MarshalManagedExceptionEventArgs args, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (object sender, MarshalManagedExceptionEventArgs args);
}

New Type ObjCRuntime.MarshalManagedExceptionMode

[Serializable]
public enum MarshalManagedExceptionMode {
	Abort = 3,
	Default = 0,
	Disable = 4,
	ThrowObjectiveCException = 2,
	UnwindNativeCode = 1,
}

New Type ObjCRuntime.MarshalObjectiveCExceptionEventArgs

public class MarshalObjectiveCExceptionEventArgs {
	// constructors
	public MarshalObjectiveCExceptionEventArgs ();
	// properties
	public Foundation.NSException Exception { get; set; }
	public MarshalObjectiveCExceptionMode ExceptionMode { get; set; }
}

New Type ObjCRuntime.MarshalObjectiveCExceptionHandler

public sealed delegate MarshalObjectiveCExceptionHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public MarshalObjectiveCExceptionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (object sender, MarshalObjectiveCExceptionEventArgs args, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (object sender, MarshalObjectiveCExceptionEventArgs args);
}

New Type ObjCRuntime.MarshalObjectiveCExceptionMode

[Serializable]
public enum MarshalObjectiveCExceptionMode {
	Abort = 3,
	Default = 0,
	Disable = 4,
	ThrowManagedException = 2,
	UnwindManagedCode = 1,
}

New Type ObjCRuntime.UserDelegateTypeAttribute

public sealed class UserDelegateTypeAttribute : System.Attribute {
	// constructors
	public UserDelegateTypeAttribute (System.Type userDelegateType);
	// properties
	public System.Type UserDelegateType { get; }
}

Namespace OpenGLES

Type Changed: OpenGLES.EAGLContext

Added method:

	public virtual bool PresentRenderBuffer (uint target, double presentationTime);

Namespace SceneKit

Type Changed: SceneKit.SCNAnimatable

Added method:

	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);

Type Changed: SceneKit.SCNCamera

Added properties:

	public virtual nfloat AverageGray { get; set; }
	public virtual nfloat BloomBlurRadius { get; set; }
	public virtual nfloat BloomIntensity { get; set; }
	public virtual nfloat BloomThreshold { get; set; }
	public virtual nfloat ColorFringeIntensity { get; set; }
	public virtual nfloat ColorFringeStrength { get; set; }
	public virtual SCNMaterialProperty ColorGrading { get; }
	public virtual nfloat Contrast { get; set; }
	public virtual nfloat ExposureAdaptationBrighteningSpeedFactor { get; set; }
	public virtual nfloat ExposureAdaptationDarkeningSpeedFactor { get; set; }
	public virtual nfloat ExposureOffset { get; set; }
	public virtual nfloat MaximumExposure { get; set; }
	public virtual nfloat MinimumExposure { get; set; }
	public virtual nfloat MotionBlurIntensity { get; set; }
	public virtual nfloat Saturation { get; set; }
	public virtual nfloat VignettingIntensity { get; set; }
	public virtual nfloat VignettingPower { get; set; }
	public virtual bool WantsExposureAdaptation { get; set; }
	public virtual bool WantsHdr { get; set; }
	public virtual nfloat WhitePoint { get; set; }

Added method:

	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);

Type Changed: SceneKit.SCNConstraint

Added method:

	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);

Type Changed: SceneKit.SCNFloor

Added properties:

	public virtual nfloat Length { get; set; }
	public virtual uint ReflectionCategoryBitMask { get; set; }
	public virtual nfloat Width { get; set; }

Type Changed: SceneKit.SCNGeometry

Added method:

	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);

Type Changed: SceneKit.SCNGeometryPrimitiveType

Added value:

	Polygon = 4,

Type Changed: SceneKit.SCNGeometrySourceSemantic

Added property:

	public static Foundation.NSString Tangent { get; }

Type Changed: SceneKit.SCNHitTest

Added property:

	public static Foundation.NSString OptionCategoryBitMaskKey { get; }

Type Changed: SceneKit.SCNHitTestResult

Added property:

	public virtual SCNNode BoneNode { get; }

Type Changed: SceneKit.SCNLight

Added properties:

	public virtual Foundation.NSUrl IesProfileUrl { get; set; }
	public virtual nfloat Intensity { get; set; }
	public virtual nfloat Temperature { get; set; }

Added method:

	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);

Type Changed: SceneKit.SCNLightType

Added properties:

	public static Foundation.NSString Ies { get; }
	public static Foundation.NSString Probe { get; }

Type Changed: SceneKit.SCNLightingModel

Added property:

	public static Foundation.NSString PhysicallyBased { get; }

Type Changed: SceneKit.SCNLookAtConstraint

Modified properties:

public virtual SCNNode Target { get; set; }

Type Changed: SceneKit.SCNMaterial

Added properties:

	public virtual SCNMaterialProperty Metalness { get; }
	public virtual SCNMaterialProperty Roughness { get; }

Added method:

	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);

Type Changed: SceneKit.SCNMaterialProperty

Added method:

	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);

Type Changed: SceneKit.SCNMorpher

Added method:

	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);

Type Changed: SceneKit.SCNNode

Added property:

	public virtual SCNMovabilityHint MovabilityHint { get; set; }

Obsoleted methods:

[Obsolete ("Use the overload that takes a SCNNodeHandler instead")] public virtual void EnumerateChildNodes (SCNNodePredicate predicate);

Added methods:

	public virtual void EnumerateChildNodes (SCNNodeHandler handler);
	public virtual void EnumerateHierarchy (SCNNodeHandler handler);
	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);

Type Changed: SceneKit.SCNParticleProperty

Added properties:

	public static Foundation.NSString ContactNormal { get; }
	public static Foundation.NSString ContactPoint { get; }

Type Changed: SceneKit.SCNParticleSystem

Added method:

	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);

Type Changed: SceneKit.SCNPhysicsShapeOptionsKeys

Added property:

	public static Foundation.NSString CollisionMargin { get; }

Type Changed: SceneKit.SCNRenderer

Added methods:

	public virtual UIKit.UIImage GetSnapshot (double time, CoreGraphics.CGSize size, SCNAntialiasingMode antialiasingMode);
	public virtual void Update (SCNNode[] lightProbes, double time);

Type Changed: SceneKit.SCNScene

Added property:

	public virtual SCNMaterialProperty LightingEnvironment { get; }

Added methods:

	public virtual bool WriteToUrl (Foundation.NSUrl url, Foundation.NSDictionary options, ISCNSceneExportDelegate aDelegate, SCNSceneExportProgressHandler exportProgressHandler);
	public bool WriteToUrl (Foundation.NSUrl url, SCNSceneLoadingOptions options, ISCNSceneExportDelegate handler, SCNSceneExportProgressHandler exportProgressHandler);

Type Changed: SceneKit.SCNSceneLoadingOptions

Added property:

	public bool? PreserveOriginalTopology { get; set; }

Type Changed: SceneKit.SCNSceneSourceLoading

Added property:

	public static Foundation.NSString OptionPreserveOriginalTopology { get; }

Type Changed: SceneKit.SCNSceneSourceProperties

Added properties:

	public static Foundation.NSString AssetAuthorKey { get; }
	public static Foundation.NSString AssetAuthoringToolKey { get; }
	public static Foundation.NSString AssetUnitMeterKey { get; }
	public static Foundation.NSString AssetUnitNameKey { get; }

Type Changed: SceneKit.SCNTechnique

Added method:

	public virtual void SetSpeed (nfloat speed, Foundation.NSString key);

Type Changed: SceneKit.SCNView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

New Type SceneKit.ISCNSceneExportDelegate

public interface ISCNSceneExportDelegate : ObjCRuntime.INativeObject, System.IDisposable {
}

New Type SceneKit.SCNAnimatable_Extensions

public static class SCNAnimatable_Extensions {
	// methods
	public static void SetSpeed (ISCNAnimatable This, nfloat speed, Foundation.NSString key);
}

New Type SceneKit.SCNMovabilityHint

[Serializable]
public enum SCNMovabilityHint {
	Fixed = 0,
	Movable = 1,
}

New Type SceneKit.SCNNodeHandler

public sealed delegate SCNNodeHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public SCNNodeHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (SCNNode node, out bool stop, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (out bool stop, System.IAsyncResult result);
	public virtual void Invoke (SCNNode node, out bool stop);
}

New Type SceneKit.SCNSceneExportDelegate

public class SCNSceneExportDelegate : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, ISCNSceneExportDelegate, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SCNSceneExportDelegate ();
	protected SCNSceneExportDelegate (Foundation.NSObjectFlag t);
	protected SCNSceneExportDelegate (IntPtr handle);
	// methods
	public virtual Foundation.NSUrl WriteImage (UIKit.UIImage image, Foundation.NSUrl documentUrl, Foundation.NSUrl originalImageUrl);
}

New Type SceneKit.SCNSceneExportDelegate_Extensions

public static class SCNSceneExportDelegate_Extensions {
	// methods
	public static Foundation.NSUrl WriteImage (ISCNSceneExportDelegate This, UIKit.UIImage image, Foundation.NSUrl documentUrl, Foundation.NSUrl originalImageUrl);
}

New Type SceneKit.SCNSceneExportProgressHandler

public sealed delegate SCNSceneExportProgressHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public SCNSceneExportProgressHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (float totalProgress, Foundation.NSError error, out bool stop, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (out bool stop, System.IAsyncResult result);
	public virtual void Invoke (float totalProgress, Foundation.NSError error, out bool stop);
}

Namespace Security

Type Changed: Security.SecKey

Added methods:

	public static SecKey Create (Foundation.NSData keyData, Foundation.NSDictionary parameters, out Foundation.NSError error);
	public static SecKey Create (Foundation.NSData keyData, SecKeyType keyType, SecKeyClass keyClass, int keySizeInBits, Foundation.NSDictionary parameters, out Foundation.NSError error);
	public Foundation.NSData CreateDecryptedData (SecKeyAlgorithm algorithm, Foundation.NSData ciphertext, out Foundation.NSError error);
	public Foundation.NSData CreateEncryptedData (SecKeyAlgorithm algorithm, Foundation.NSData plaintext, out Foundation.NSError error);
	public static SecKey CreateRandomKey (Foundation.NSDictionary parameters, out Foundation.NSError error);
	public static SecKey CreateRandomKey (SecKeyType keyType, int keySizeInBits, Foundation.NSDictionary parameters, out Foundation.NSError error);
	public Foundation.NSData CreateSignature (SecKeyAlgorithm algorithm, Foundation.NSData dataToSign, out Foundation.NSError error);
	public Foundation.NSDictionary GetAttributes ();
	public Foundation.NSData GetExternalRepresentation ();
	public Foundation.NSData GetExternalRepresentation (out Foundation.NSError error);
	public Foundation.NSData GetKeyExchangeResult (SecKeyAlgorithm algorithm, SecKey publicKey, Foundation.NSDictionary parameters, out Foundation.NSError error);
	public Foundation.NSData GetKeyExchangeResult (SecKeyAlgorithm algorithm, SecKey publicKey, SecKeyKeyExchangeParameter parameters, out Foundation.NSError error);
	public SecKey GetPublicKey ();
	public bool IsAlgorithmSupported (SecKeyOperationType operation, SecKeyAlgorithm algorithm);
	public bool VerifySignature (SecKeyAlgorithm algorithm, Foundation.NSData signedData, Foundation.NSData signature, out Foundation.NSError error);

Type Changed: Security.SecKeyType

Added value:

	ECSecPrimeRandom = 2,

Type Changed: Security.SecPolicyIdentifier

Added property:

	public static Foundation.NSString ApplePassbookSigning { get; }

Type Changed: Security.SecPolicyPropertyKey

Added property:

	public static Foundation.NSString TeamIdentifier { get; }

Type Changed: Security.SecStatusCode

Added value:

	VerifyFailed = -67808,

Type Changed: Security.SecTrustResultKey

Added property:

	public static Foundation.NSString CertificateTransparencyWhiteList { get; }

Type Changed: Security.SslContext

Obsoleted methods:

[Obsolete ("SetSessionStrengthPolicy is not available anymore.")] public SslStatus SetSessionStrengthPolicy (SslSessionStrengthPolicy policyStrength);

Added methods:

	public string GetRequestedPeerName ();
	public int ReHandshake ();
	public int SetSessionConfig (Foundation.NSString config);
	public int SetSessionConfig (SslSessionConfig config);

Type Changed: Security.SslSessionOption

Added value:

	AllowRenegotiation = 8,

New Type Security.SecKeyAlgorithm

[Serializable]
public enum SecKeyAlgorithm {
	EcdhKeyExchangeCofactor = 52,
	EcdhKeyExchangeCofactorX963Sha1 = 53,
	EcdhKeyExchangeCofactorX963Sha224 = 54,
	EcdhKeyExchangeCofactorX963Sha256 = 55,
	EcdhKeyExchangeCofactorX963Sha384 = 56,
	EcdhKeyExchangeCofactorX963Sha512 = 57,
	EcdhKeyExchangeStandard = 46,
	EcdhKeyExchangeStandardX963Sha1 = 47,
	EcdhKeyExchangeStandardX963Sha224 = 48,
	EcdhKeyExchangeStandardX963Sha256 = 49,
	EcdhKeyExchangeStandardX963Sha384 = 50,
	EcdhKeyExchangeStandardX963Sha512 = 51,
	EcdsaSignatureDigestX962 = 13,
	EcdsaSignatureDigestX962Sha1 = 14,
	EcdsaSignatureDigestX962Sha224 = 15,
	EcdsaSignatureDigestX962Sha256 = 16,
	EcdsaSignatureDigestX962Sha384 = 17,
	EcdsaSignatureDigestX962Sha512 = 18,
	EcdsaSignatureMessageX962Sha1 = 19,
	EcdsaSignatureMessageX962Sha224 = 20,
	EcdsaSignatureMessageX962Sha256 = 21,
	EcdsaSignatureMessageX962Sha384 = 22,
	EcdsaSignatureMessageX962Sha512 = 23,
	EcdsaSignatureRfc4754 = 12,
	EciesEncryptionCofactorX963Sha1AesGcm = 41,
	EciesEncryptionCofactorX963Sha224AesGcm = 42,
	EciesEncryptionCofactorX963Sha256AesGcm = 43,
	EciesEncryptionCofactorX963Sha384AesGcm = 44,
	EciesEncryptionCofactorX963Sha512AesGcm = 45,
	EciesEncryptionStandardX963Sha1AesGcm = 36,
	EciesEncryptionStandardX963Sha224AesGcm = 37,
	EciesEncryptionStandardX963Sha256AesGcm = 38,
	EciesEncryptionStandardX963Sha384AesGcm = 39,
	EciesEncryptionStandardX963Sha512AesGcm = 40,
	RsaEncryptionOaepSha1 = 26,
	RsaEncryptionOaepSha1AesCgm = 31,
	RsaEncryptionOaepSha224 = 27,
	RsaEncryptionOaepSha224AesGcm = 32,
	RsaEncryptionOaepSha256 = 28,
	RsaEncryptionOaepSha256AesGcm = 33,
	RsaEncryptionOaepSha384 = 29,
	RsaEncryptionOaepSha384AesGcm = 34,
	RsaEncryptionOaepSha512 = 30,
	RsaEncryptionOaepSha512AesGcm = 35,
	RsaEncryptionPkcs1 = 25,
	RsaEncryptionRaw = 24,
	RsaSignatureDigestPkcs1v15Raw = 1,
	RsaSignatureDigestPkcs1v15Sha1 = 2,
	RsaSignatureDigestPkcs1v15Sha224 = 3,
	RsaSignatureDigestPkcs1v15Sha256 = 4,
	RsaSignatureDigestPkcs1v15Sha384 = 5,
	RsaSignatureDigestPkcs1v15Sha512 = 6,
	RsaSignatureMessagePkcs1v15Sha1 = 7,
	RsaSignatureMessagePkcs1v15Sha224 = 8,
	RsaSignatureMessagePkcs1v15Sha256 = 9,
	RsaSignatureMessagePkcs1v15Sha384 = 10,
	RsaSignatureMessagePkcs1v15Sha512 = 11,
	RsaSignatureRaw = 0,
}

New Type Security.SecKeyAlgorithmExtensions

public static class SecKeyAlgorithmExtensions {
	// methods
	public static Foundation.NSString GetConstant (SecKeyAlgorithm self);
	public static SecKeyAlgorithm GetValue (Foundation.NSString constant);
}

New Type Security.SecKeyClassExtensions

public static class SecKeyClassExtensions {
	// methods
	public static Foundation.NSString GetConstant (SecKeyClass self);
	public static SecKeyClass GetValue (Foundation.NSString constant);
}

New Type Security.SecKeyKeyExchangeParameter

public class SecKeyKeyExchangeParameter : Foundation.DictionaryContainer {
	// constructors
	public SecKeyKeyExchangeParameter ();
	public SecKeyKeyExchangeParameter (Foundation.NSDictionary dictionary);
	// properties
	public int? RequestedSize { get; set; }
	public Foundation.NSData SharedInfo { get; set; }
}

New Type Security.SecKeyOperationType

[Serializable]
public enum SecKeyOperationType {
	Decrypt = 3,
	Encrypt = 2,
	KeyExchange = 4,
	Sign = 0,
	Verify = 1,
}

New Type Security.SecKeyTypeExtensions

public static class SecKeyTypeExtensions {
	// methods
	public static Foundation.NSString GetConstant (SecKeyType self);
	public static SecKeyType GetValue (Foundation.NSString constant);
}

New Type Security.SslSessionConfig

[Serializable]
public enum SslSessionConfig {
	Anonymous = 9,
	Ats1 = 1,
	Ats1NoPfs = 2,
	Default = 0,
	Legacy = 7,
	LegacyDhe = 8,
	RC4Fallback = 4,
	Standard = 3,
	Tls1Fallback = 5,
	Tls1RC4Fallback = 6,
}

New Type Security.SslSessionConfigExtensions

public static class SslSessionConfigExtensions {
	// methods
	public static Foundation.NSString GetConstant (SslSessionConfig self);
	public static SslSessionConfig GetValue (Foundation.NSString constant);
}

Namespace SpriteKit

Type Changed: SpriteKit.SK3DNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Type Changed: SpriteKit.SKAction

Added methods:

	public static SKAction Animate (SKWarpGeometry[] warps, Foundation.NSNumber[] times);
	public static SKAction Animate (SKWarpGeometry[] warps, Foundation.NSNumber[] times, bool restore);
	public static SKAction ScaleTo (CoreGraphics.CGSize size, double sec);
	public static SKAction WarpTo (SKWarpGeometry warp, double duration);

Type Changed: SpriteKit.SKAudioNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Type Changed: SpriteKit.SKCameraNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Type Changed: SpriteKit.SKCropNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Type Changed: SpriteKit.SKEffectNode

Added interfaces:

	ISKWarpable
	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Added properties:

	public virtual nint SubdivisionLevels { get; set; }
	public virtual SKWarpGeometry WarpGeometry { get; set; }

Added method:

	protected override void Dispose (bool disposing);

Type Changed: SpriteKit.SKEmitterNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Type Changed: SpriteKit.SKFieldNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Type Changed: SpriteKit.SKLabelNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Type Changed: SpriteKit.SKLightNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Type Changed: SpriteKit.SKNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Added properties:

	public virtual Foundation.NSDictionary<Foundation.NSString,SpriteKit.SKAttributeValue> AttributeValues { get; set; }
	public virtual bool CanBecomeFocused { get; }
	public virtual UIKit.IUIFocusEnvironment[] PreferredFocusEnvironments { get; }
	public virtual UIKit.UIView PreferredFocusedView { get; }

Added methods:

	public virtual void DidUpdateFocus (UIKit.UIFocusUpdateContext context, UIKit.UIFocusAnimationCoordinator coordinator);
	protected override void Dispose (bool disposing);
	public static GameplayKit.GKPolygonObstacle[] GetObstaclesFromNodeBounds (SKNode[] nodes);
	public static GameplayKit.GKPolygonObstacle[] GetObstaclesFromNodePhysicsBodies (SKNode[] nodes);
	public static GameplayKit.GKPolygonObstacle[] GetObstaclesFromSpriteTextures (SKNode[] sprites, float accuracy);
	public virtual SKAttributeValue GetValue (string key);
	public virtual void SetNeedsFocusUpdate ();
	public virtual void SetValue (SKAttributeValue value, string key);
	public virtual bool ShouldUpdateFocus (UIKit.UIFocusUpdateContext context);
	public virtual void UpdateFocusIfNeeded ();

Type Changed: SpriteKit.SKReferenceNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Type Changed: SpriteKit.SKScene

Added interfaces:

	ISKWarpable
	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Added method:

	public virtual void SceneDidLoad ();

Type Changed: SpriteKit.SKShader

Added property:

	public virtual SKAttribute[] Attributes { get; set; }

Type Changed: SpriteKit.SKShapeNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Type Changed: SpriteKit.SKSpriteNode

Added interfaces:

	ISKWarpable
	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Added properties:

	public virtual nint SubdivisionLevels { get; set; }
	public virtual SKWarpGeometry WarpGeometry { get; set; }

Added methods:

	protected override void Dispose (bool disposing);
	public virtual void ScaleTo (CoreGraphics.CGSize size);

Type Changed: SpriteKit.SKTexture

Added method:

	public static SKTexture FromNoiseMap (GameplayKit.GKNoiseMap noiseMap);

Type Changed: SpriteKit.SKVideoNode

Added interfaces:

	UIKit.IUIFocusEnvironment
	UIKit.IUIFocusItem

Modified methods:

public SKVideoNode FromUrl (Foundation.NSUrl videoURL videoUrl)

Type Changed: SpriteKit.SKView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Added properties:

	public virtual ISKViewDelegate Delegate { get; set; }
	public virtual nint PreferredFramesPerSecond { get; set; }

Added method:

	protected override void Dispose (bool disposing);

New Type SpriteKit.ISKViewDelegate

public interface ISKViewDelegate : ObjCRuntime.INativeObject, System.IDisposable {
}

New Type SpriteKit.ISKWarpable

public interface ISKWarpable : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual nint SubdivisionLevels { get; set; }
	public virtual SKWarpGeometry WarpGeometry { get; set; }
}

New Type SpriteKit.SKAttribute

public class SKAttribute : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SKAttribute (Foundation.NSCoder coder);
	protected SKAttribute (Foundation.NSObjectFlag t);
	protected SKAttribute (IntPtr handle);
	public SKAttribute (string name, SKAttributeType type);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string Name { get; }
	public virtual SKAttributeType Type { get; }
	// methods
	public static SKAttribute Create (string name, SKAttributeType type);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type SpriteKit.SKAttributeType

[Serializable]
public enum SKAttributeType {
	Float = 1,
	HalfFloat = 5,
	None = 0,
	VectorFloat2 = 2,
	VectorFloat3 = 3,
	VectorFloat4 = 4,
	VectorHalfFloat2 = 6,
	VectorHalfFloat3 = 7,
	VectorHalfFloat4 = 8,
}

New Type SpriteKit.SKAttributeValue

public class SKAttributeValue : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SKAttributeValue ();
	public SKAttributeValue (Foundation.NSCoder coder);
	protected SKAttributeValue (Foundation.NSObjectFlag t);
	protected SKAttributeValue (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float FloatValue { get; set; }
	public virtual OpenTK.Vector2 VectorFloat2Value { get; set; }
	public virtual OpenTK.Vector3 VectorFloat3Value { get; set; }
	public virtual OpenTK.Vector4 VectorFloat4Value { get; set; }
	// methods
	public static SKAttributeValue Create (OpenTK.Vector2 value);
	public static SKAttributeValue Create (OpenTK.Vector3 value);
	public static SKAttributeValue Create (OpenTK.Vector4 value);
	public static SKAttributeValue Create (float value);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type SpriteKit.SKTileAdjacencyMask

[Serializable]
public enum SKTileAdjacencyMask {
	All = 255,
	Down = 16,
	DownEdge = 199,
	HexFlatAll = 63,
	HexFlatDown = 8,
	HexFlatLowerLeft = 16,
	HexFlatLowerRight = 4,
	HexFlatUp = 1,
	HexFlatUpperLeft = 32,
	HexFlatUpperRight = 2,
	HexPointyAll = 63,
	HexPointyLeft = 32,
	HexPointyLowerLeft = 16,
	HexPointyLowerRight = 8,
	HexPointyRight = 4,
	HexPointyUpperLeft = 1,
	HexPointyUpperRight = 2,
	Left = 64,
	LeftEdge = 31,
	LowerLeft = 32,
	LowerLeftCorner = 253,
	LowerLeftEdge = 7,
	LowerRight = 8,
	LowerRightCorner = 127,
	LowerRightEdge = 193,
	Right = 4,
	RightEdge = 241,
	Up = 1,
	UpEdge = 124,
	UpperLeft = 128,
	UpperLeftCorner = 247,
	UpperLeftEdge = 28,
	UpperRight = 2,
	UpperRightCorner = 223,
	UpperRightEdge = 112,
}

New Type SpriteKit.SKTileDefinition

public class SKTileDefinition : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SKTileDefinition (Foundation.NSCoder coder);
	protected SKTileDefinition (Foundation.NSObjectFlag t);
	public SKTileDefinition (SKTexture texture);
	protected SKTileDefinition (IntPtr handle);
	public SKTileDefinition (SKTexture texture, CoreGraphics.CGSize size);
	public SKTileDefinition (SKTexture texture, SKTexture normalTexture, CoreGraphics.CGSize size);
	public SKTileDefinition (SKTexture[] textures, CoreGraphics.CGSize size, nfloat timePerFrame);
	public SKTileDefinition (SKTexture[] textures, SKTexture[] normalTextures, CoreGraphics.CGSize size, nfloat timePerFrame);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool FlipHorizontally { get; set; }
	public virtual bool FlipVertically { get; set; }
	public virtual string Name { get; set; }
	public virtual SKTexture[] NormalTextures { get; set; }
	public virtual uint PlacementWeight { get; set; }
	public virtual SKTileDefinitionRotation Rotation { get; set; }
	public virtual CoreGraphics.CGSize Size { get; set; }
	public virtual SKTexture[] Textures { get; set; }
	public virtual nfloat TimePerFrame { get; set; }
	public virtual Foundation.NSMutableDictionary UserData { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static SKTileDefinition Create (SKTexture texture);
	public static SKTileDefinition Create (SKTexture texture, CoreGraphics.CGSize size);
	public static SKTileDefinition Create (SKTexture texture, SKTexture normalTexture, CoreGraphics.CGSize size);
	public static SKTileDefinition Create (SKTexture[] textures, CoreGraphics.CGSize size, nfloat timePerFrame);
	public static SKTileDefinition Create (SKTexture[] textures, SKTexture[] normalTextures, CoreGraphics.CGSize size, nfloat timePerFrame);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type SpriteKit.SKTileDefinitionRotation

[Serializable]
public enum SKTileDefinitionRotation {
	Angle0 = 0,
	Angle180 = 2,
	Angle270 = 3,
	Angle90 = 1,
}

New Type SpriteKit.SKTileGroup

public class SKTileGroup : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SKTileGroup ();
	public SKTileGroup (Foundation.NSCoder coder);
	protected SKTileGroup (Foundation.NSObjectFlag t);
	public SKTileGroup (SKTileDefinition tileDefinition);
	public SKTileGroup (SKTileGroupRule[] rules);
	protected SKTileGroup (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string Name { get; set; }
	public virtual SKTileGroupRule[] Rules { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static SKTileGroup Create (SKTileDefinition tileDefinition);
	public static SKTileGroup Create (SKTileGroupRule[] rules);
	public static SKTileGroup CreateEmpty ();
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type SpriteKit.SKTileGroupRule

public class SKTileGroupRule : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SKTileGroupRule ();
	public SKTileGroupRule (Foundation.NSCoder coder);
	protected SKTileGroupRule (Foundation.NSObjectFlag t);
	protected SKTileGroupRule (IntPtr handle);
	public SKTileGroupRule (SKTileAdjacencyMask adjacency, SKTileDefinition[] tileDefinitions);
	// properties
	public virtual SKTileAdjacencyMask Adjacency { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual string Name { get; set; }
	public virtual SKTileDefinition[] TileDefinitions { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static SKTileGroupRule Create (SKTileAdjacencyMask adjacency, SKTileDefinition[] tileDefinitions);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type SpriteKit.SKTileMapNode

public class SKTileMapNode : SpriteKit.SKNode, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.Collections.Generic.IEnumerable<SKNode>, System.Collections.IEnumerable, System.IDisposable, System.IEquatable<Foundation.NSObject>, UIKit.IUIFocusEnvironment, UIKit.IUIFocusItem {
	// constructors
	public SKTileMapNode ();
	public SKTileMapNode (Foundation.NSCoder coder);
	protected SKTileMapNode (Foundation.NSObjectFlag t);
	protected SKTileMapNode (IntPtr handle);
	public SKTileMapNode (SKTileSet tileSet, uint columns, uint rows, CoreGraphics.CGSize tileSize);
	public SKTileMapNode (SKTileSet tileSet, uint columns, uint rows, CoreGraphics.CGSize tileSize, SKTileGroup tileGroup);
	public SKTileMapNode (SKTileSet tileSet, uint columns, uint rows, CoreGraphics.CGSize tileSize, SKTileGroup[] tileGroupLayout);
	// properties
	public virtual CoreGraphics.CGPoint AnchorPoint { get; set; }
	public virtual SKBlendMode BlendMode { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual UIKit.UIColor Color { get; set; }
	public virtual nfloat ColorBlendFactor { get; set; }
	public virtual bool EnableAutomapping { get; set; }
	public virtual uint LightingBitMask { get; set; }
	public virtual CoreGraphics.CGSize MapSize { get; }
	public virtual uint NumberOfColumns { get; set; }
	public virtual uint NumberOfRows { get; set; }
	public virtual SKShader Shader { get; set; }
	public virtual SKTileSet TileSet { get; set; }
	public virtual CoreGraphics.CGSize TileSize { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static SKTileMapNode Create (SKTileSet tileSet, uint columns, uint rows, CoreGraphics.CGSize tileSize);
	public static SKTileMapNode Create (SKTileSet tileSet, uint columns, uint rows, CoreGraphics.CGSize tileSize, SKTileGroup tileGroup);
	public static SKTileMapNode Create (SKTileSet tileSet, uint columns, uint rows, CoreGraphics.CGSize tileSize, SKTileGroup[] tileGroupLayout);
	protected override void Dispose (bool disposing);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual void Fill (SKTileGroup tileGroup);
	public static SKTileMapNode[] FromTileSet (SKTileSet tileSet, uint columns, uint rows, CoreGraphics.CGSize tileSize, GameplayKit.GKNoiseMap noiseMap, Foundation.NSNumber[] thresholds);
	public virtual CoreGraphics.CGPoint GetCenterOfTile (uint column, uint row);
	public virtual uint GetTileColumnIndex (CoreGraphics.CGPoint position);
	public virtual SKTileDefinition GetTileDefinition (uint column, uint row);
	public virtual SKTileGroup GetTileGroup (uint column, uint row);
	public virtual uint GetTileRowIndex (CoreGraphics.CGPoint position);
	public virtual void SetTileGroup (SKTileGroup tileGroup, uint column, uint row);
	public virtual void SetTileGroup (SKTileGroup tileGroup, SKTileDefinition tileDefinition, uint column, uint row);
}

New Type SpriteKit.SKTileSet

public class SKTileSet : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SKTileSet ();
	public SKTileSet (Foundation.NSCoder coder);
	protected SKTileSet (Foundation.NSObjectFlag t);
	public SKTileSet (SKTileGroup[] tileGroups);
	protected SKTileSet (IntPtr handle);
	public SKTileSet (SKTileGroup[] tileGroups, SKTileSetType tileSetType);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual SKTileGroup DefaultTileGroup { get; set; }
	public virtual CoreGraphics.CGSize DefaultTileSize { get; set; }
	public virtual string Name { get; set; }
	public virtual SKTileGroup[] TileGroups { get; set; }
	public virtual SKTileSetType Type { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static SKTileSet Create (SKTileGroup[] tileGroups);
	public static SKTileSet Create (SKTileGroup[] tileGroups, SKTileSetType tileSetType);
	protected override void Dispose (bool disposing);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static SKTileSet FromName (string name);
	public static SKTileSet FromUrl (Foundation.NSUrl url);
}

New Type SpriteKit.SKTileSetType

[Serializable]
public enum SKTileSetType {
	Grid = 0,
	HexagonalFlat = 2,
	HexagonalPointy = 3,
	Isometric = 1,
}

New Type SpriteKit.SKViewDelegate

public class SKViewDelegate : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, ISKViewDelegate, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SKViewDelegate ();
	protected SKViewDelegate (Foundation.NSObjectFlag t);
	protected SKViewDelegate (IntPtr handle);
	// methods
	public virtual bool ShouldRender (SKView view, double time);
}

New Type SpriteKit.SKViewDelegate_Extensions

public static class SKViewDelegate_Extensions {
	// methods
	public static bool ShouldRender (ISKViewDelegate This, SKView view, double time);
}

New Type SpriteKit.SKWarpGeometry

public class SKWarpGeometry : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SKWarpGeometry ();
	public SKWarpGeometry (Foundation.NSCoder coder);
	protected SKWarpGeometry (Foundation.NSObjectFlag t);
	protected SKWarpGeometry (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type SpriteKit.SKWarpGeometryGrid

public class SKWarpGeometryGrid : SpriteKit.SKWarpGeometry, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public SKWarpGeometryGrid (Foundation.NSCoder coder);
	protected SKWarpGeometryGrid (Foundation.NSObjectFlag t);
	protected SKWarpGeometryGrid (IntPtr handle);
	public SKWarpGeometryGrid (nint cols, nint rows, OpenTK.Vector2[] sourcePositions, OpenTK.Vector2[] destPositions);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual nint NumberOfColumns { get; }
	public virtual nint NumberOfRows { get; }
	public virtual nint VertexCount { get; }
	// methods
	public static SKWarpGeometryGrid Create (nint cols, nint rows);
	public static SKWarpGeometryGrid Create (nint cols, nint rows, OpenTK.Vector2[] sourcePositions, OpenTK.Vector2[] destPositions);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual OpenTK.Vector2 GetDestPosition (nint index);
	public static SKWarpGeometryGrid GetGrid ();
	public SKWarpGeometryGrid GetGridByReplacingDestPositions (OpenTK.Vector2[] destPositions);
	public SKWarpGeometryGrid GetGridByReplacingSourcePositions (OpenTK.Vector2[] sourcePositions);
	public virtual OpenTK.Vector2 GetSourcePosition (nint index);
}

Namespace TVMLKit

Type Changed: TVMLKit.TVElementUpdateType

Added value:

	Styles = 4,

Type Changed: TVMLKit.TVInterfaceCreating_Extensions

Added method:

	public static ObjCRuntime.Class GetCollectionViewCellClass (ITVInterfaceCreating This, TVViewElement element);

Type Changed: TVMLKit.TVInterfaceFactory

Added method:

	public virtual ObjCRuntime.Class GetCollectionViewCellClass (TVViewElement element);

Type Changed: TVMLKit.TVViewElementStyle

Added property:

	public virtual UIKit.UIEdgeInsets FocusMargin { get; }

Namespace UIKit

Type Changed: UIKit.NSLayoutConstraint

Added methods:

	public UIKit.NSLayoutAnchor<AnchorType> FirstAnchor<AnchorType> ();
	public UIKit.NSLayoutAnchor<AnchorType> SecondAnchor<AnchorType> ();

Type Changed: UIKit.NSTextTab

Added interface:

	Foundation.INSSecureCoding

Type Changed: UIKit.UIAccessibility

Added property:

	public static bool IsAssistiveTouchRunning { get; }

Type Changed: UIKit.UIAccessibilityElement

Added property:

	public virtual CoreGraphics.CGRect AccessibilityFrameInContainerSpace { get; set; }

Type Changed: UIKit.UIActivityIndicatorView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UIApplication

Added property:

	public virtual nint ApplicationIconBadgeNumber { get; set; }

Added methods:

	public virtual void OpenUrl (Foundation.NSUrl url, Foundation.NSDictionary options, System.Action<bool> completion);
	public void OpenUrl (Foundation.NSUrl url, UIApplicationOpenUrlOptions options, System.Action<bool> completion);

Type Changed: UIKit.UIApplicationDelegate

Added methods:

	public virtual void DidReceiveRemoteNotification (UIApplication application, Foundation.NSDictionary userInfo, System.Action<UIBackgroundFetchResult> completionHandler);
	public virtual void UserDidAcceptCloudKitShare (UIApplication application, CloudKit.CKShareMetadata cloudKitShareMetadata);

Type Changed: UIKit.UIApplicationDelegate_Extensions

Added methods:

	public static void DidReceiveRemoteNotification (IUIApplicationDelegate This, UIApplication application, Foundation.NSDictionary userInfo, System.Action<UIBackgroundFetchResult> completionHandler);
	public static void UserDidAcceptCloudKitShare (IUIApplicationDelegate This, UIApplication application, CloudKit.CKShareMetadata cloudKitShareMetadata);

Type Changed: UIKit.UIApplicationOpenUrlOptions

Added property:

	public bool? UniversalLinksOnly { get; set; }

Type Changed: UIKit.UIBarItem

Added properties:

	public static Foundation.NSString AssistiveTouchStatusDidChangeNotification { get; }
	public static long TraitTabBar { get; }

Type Changed: UIKit.UIBarItem.Notifications

Added method:

	public static Foundation.NSObject ObserveAssistiveTouchStatusDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler);

Type Changed: UIKit.UIBlurEffectStyle

Added values:

	ExtraDark = 3,
	Prominent = 5,
	Regular = 4,

Type Changed: UIKit.UIButton

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UICollectionReusableView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UICollectionView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Added properties:

	public virtual IUICollectionViewDataSourcePrefetching PrefetchDataSource { get; set; }
	public virtual bool PrefetchingEnabled { get; set; }

Type Changed: UIKit.UICollectionViewCell

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UICollectionViewFlowLayout

Added property:

	public static CoreGraphics.CGSize AutomaticSize { get; }

Type Changed: UIKit.UIColor

Added method:

	public static UIColor FromDisplayP3 (nfloat red, nfloat green, nfloat blue, nfloat alpha);

Type Changed: UIKit.UIContentSizeCategory

Modified fields:

ExtraExtraExtraLarge = 6 7
ExtraExtraLarge = 5 6
ExtraLarge = 4 5
ExtraSmall = 0 1
Large = 3 4
Medium = 2 3
Small = 1 2

Added values:

	AccessibilityExtraExtraExtraLarge = 12,
	AccessibilityExtraExtraLarge = 11,
	AccessibilityExtraLarge = 10,
	AccessibilityLarge = 9,
	AccessibilityMedium = 8,
	Unspecified = 0,

Type Changed: UIKit.UIControl

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UIFocusGuide

Added property:

	public virtual IUIFocusEnvironment[] PreferredFocusEnvironments { get; set; }

Type Changed: UIKit.UIFocusHeading

Added value:

	None = 0,

Type Changed: UIKit.UIFocusUpdateContext

Added properties:

	public virtual IUIFocusItem NextFocusedItem { get; }
	public virtual IUIFocusItem PreviouslyFocusedItem { get; }

Type Changed: UIKit.UIFont

Added method:

	public static UIFont GetPreferredFontForTextStyle (Foundation.NSString uiFontTextStyle, UITraitCollection traitCollection);

Type Changed: UIKit.UIFontDescriptor

Added method:

	public static UIFontDescriptor GetPreferredDescriptorForTextStyle (Foundation.NSString uiFontTextStyle, UITraitCollection traitCollection);

Type Changed: UIKit.UIGestureRecognizer

Added property:

	public virtual bool RequiresExclusiveTouchType { get; set; }

Type Changed: UIKit.UIImage

Added properties:

	public static Foundation.NSString AssistiveTouchStatusDidChangeNotification { get; }
	public virtual UIGraphicsImageRendererFormat ImageRendererFormat { get; }
	public static long TraitTabBar { get; }

Added method:

	public virtual UIImage GetImageWithHorizontallyFlippedOrientation ();

Type Changed: UIKit.UIImage.Notifications

Added method:

	public static Foundation.NSObject ObserveAssistiveTouchStatusDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler);

Type Changed: UIKit.UIImageView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UIInputView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UIInputViewController

Added method:

	public virtual void HandleInputModeList (UIView fromView, UIEvent withEvent);

Type Changed: UIKit.UIKeyboardType

Added values:

	AsciiCapable = 1,
	AsciiCapableNumberPad = 11,

Type Changed: UIKit.UILabel

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIContentSizeCategoryAdjusting
	IUIFocusItem

Added property:

	public virtual bool AdjustsFontForContentSizeCategory { get; set; }

Type Changed: UIKit.UINavigationBar

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UIPageControl

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UIPercentDrivenInteractiveTransition

Added properties:

	public virtual IUITimingCurveProvider TimingCurve { get; set; }
	public virtual bool WantsInteractiveStart { get; set; }

Added method:

	public virtual void PauseInteractiveTransition ();

Type Changed: UIKit.UIPopoverBackgroundView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UIPresentationController

Obsoleted constructors:

[Obsolete ("Removed in iOS10. Use .ctor(UIViewController,UIViewController)")] public UIPresentationController ();

Added property:

	public virtual IUIFocusEnvironment[] PreferredFocusEnvironments { get; }

Type Changed: UIKit.UIProgressView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UIScreen

Added property:

	public virtual IUIFocusItem FocusedItem { get; }

Type Changed: UIKit.UIScrollView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UISearchBar

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Added property:

	public virtual Foundation.NSString TextContentType { get; set; }

Type Changed: UIKit.UISearchController

Added method:

	public virtual IUIViewImplicitlyAnimating GetInterruptibleAnimator (IUIViewControllerContextTransitioning transitionContext);

Type Changed: UIKit.UISegmentedControl

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UIStackView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UITabBar

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Added property:

	public virtual UIColor UnselectedItemTintColor { get; set; }

Type Changed: UIKit.UITabBarItem

Added property:

	public virtual UIColor BadgeColor { get; set; }

Added methods:

	public UIStringAttributes GetBadgeTextAttributes (UIControlState state);
	public void SetBadgeTextAttributes (UIStringAttributes textAttributes, UIControlState state);

Type Changed: UIKit.UITableView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Added property:

	public virtual IUITableViewDataSourcePrefetching PrefetchDataSource { get; set; }

Type Changed: UIKit.UITableViewCell

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UITableViewHeaderFooterView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UITextDocumentProxy

Added properties:

	public virtual UITextInputMode DocumentInputMode { get; }
	public virtual Foundation.NSString TextContentType { get; set; }

Type Changed: UIKit.UITextField

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIContentSizeCategoryAdjusting
	IUIFocusItem

Added properties:

	public virtual bool AdjustsFontForContentSizeCategory { get; set; }
	public static Foundation.NSString DidEndEditingReasonKey { get; }
	public virtual Foundation.NSString TextContentType { get; set; }

Type Changed: UIKit.UITextView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIContentSizeCategoryAdjusting
	IUIFocusItem

Added properties:

	public virtual bool AdjustsFontForContentSizeCategory { get; set; }
	public virtual Foundation.NSString TextContentType { get; set; }

Type Changed: UIKit.UITraitCollection

Added properties:

	public virtual UIDisplayGamut DisplayGamut { get; }
	public virtual UITraitEnvironmentLayoutDirection LayoutDirection { get; }
	public virtual string PreferredContentSizeCategory { get; }
	public virtual UIUserInterfaceStyle UserInterfaceStyle { get; }

Added methods:

	public static UITraitCollection FromDisplayGamut (UIDisplayGamut displayGamut);
	public static UITraitCollection FromLayoutDirection (UITraitEnvironmentLayoutDirection layoutDirection);
	public UITraitCollection FromPreferredContentSizeCategory (UIContentSizeCategory category);
	public static UITraitCollection FromUserInterfaceStyle (UIUserInterfaceStyle userInterfaceStyle);

Type Changed: UIKit.UIView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Added properties:

	public static Foundation.NSString AssistiveTouchStatusDidChangeNotification { get; }
	public virtual UIUserInterfaceLayoutDirection EffectiveUserInterfaceLayoutDirection { get; }
	public virtual IUIFocusEnvironment[] PreferredFocusEnvironments { get; }
	public static long TraitTabBar { get; }

Added methods:

	public virtual Foundation.NSObject ActionForLayer (CoreAnimation.CALayer layer, string eventKey);
	public UIImage Capture (bool afterScreenUpdates);
	public virtual void DisplayLayer (CoreAnimation.CALayer layer);
	public virtual void DrawLayer (CoreAnimation.CALayer layer, CoreGraphics.CGContext context);
	public static UIUserInterfaceLayoutDirection GetUserInterfaceLayoutDirection (UISemanticContentAttribute semanticContentAttribute, UIUserInterfaceLayoutDirection layoutDirection);
	public virtual void LayoutSublayersOfLayer (CoreAnimation.CALayer layer);
	public virtual void WillDrawLayer (CoreAnimation.CALayer layer);

Type Changed: UIKit.UIView.Notifications

Added method:

	public static Foundation.NSObject ObserveAssistiveTouchStatusDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler);

Type Changed: UIKit.UIViewController

Added properties:

	public virtual IUIFocusEnvironment[] PreferredFocusEnvironments { get; }
	public virtual bool RestoresFocusAfterTransition { get; set; }

Type Changed: UIKit.UIViewControllerAnimatedTransitioning

Added method:

	public virtual IUIViewImplicitlyAnimating GetInterruptibleAnimator (IUIViewControllerContextTransitioning transitionContext);

Type Changed: UIKit.UIViewControllerAnimatedTransitioning_Extensions

Added method:

	public static IUIViewImplicitlyAnimating GetInterruptibleAnimator (IUIViewControllerAnimatedTransitioning This, IUIViewControllerContextTransitioning transitionContext);

Type Changed: UIKit.UIViewControllerContextTransitioning

Added method:

	public virtual void PauseInteractiveTransition ();

Type Changed: UIKit.UIViewControllerInteractiveTransitioning

Added property:

	public virtual bool WantsInteractiveStart { get; }

Type Changed: UIKit.UIViewControllerInteractiveTransitioning_Extensions

Added method:

	public static bool GetWantsInteractiveStart (IUIViewControllerInteractiveTransitioning This);

Type Changed: UIKit.UIViewControllerTransitionCoordinatorContext_Extensions

Added method:

	public static bool GetIsInterruptible (IUIViewControllerTransitionCoordinatorContext This);

Type Changed: UIKit.UIVisualEffectView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

Type Changed: UIKit.UIWindow

Added interfaces:

	CoreAnimation.ICALayerDelegate
	IUIFocusItem

New Type UIKit.IUICollectionViewDataSourcePrefetching

public interface IUICollectionViewDataSourcePrefetching : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void PrefetchItems (UICollectionView collectionView, Foundation.NSIndexPath[] indexPaths);
}

New Type UIKit.IUIContentSizeCategoryAdjusting

public interface IUIContentSizeCategoryAdjusting : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual bool AdjustsFontForContentSizeCategory { get; set; }
}

New Type UIKit.IUIFocusItem

public interface IUIFocusItem : ObjCRuntime.INativeObject, System.IDisposable, IUIFocusEnvironment {
	// properties
	public virtual bool CanBecomeFocused { get; }
}

New Type UIKit.IUITableViewDataSourcePrefetching

public interface IUITableViewDataSourcePrefetching : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void PrefetchRows (UITableView tableView, Foundation.NSIndexPath[] indexPaths);
}

New Type UIKit.IUITimingCurveProvider

public interface IUITimingCurveProvider : Foundation.INSCoding, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual UICubicTimingParameters CubicTimingParameters { get; }
	public virtual UISpringTimingParameters SpringTimingParameters { get; }
	public virtual UITimingCurveType TimingCurveType { get; }
}

New Type UIKit.IUIViewAnimating

public interface IUIViewAnimating : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual nfloat FractionComplete { get; set; }
	public virtual bool Reversed { get; set; }
	public virtual bool Running { get; }
	public virtual UIViewAnimatingState State { get; }
	// methods
	public virtual void FinishAnimation (UIViewAnimatingPosition finalPosition);
	public virtual void PauseAnimation ();
	public virtual void StartAnimation ();
	public virtual void StartAnimation (double delay);
	public virtual void StopAnimation (bool withoutFinishing);
}

New Type UIKit.IUIViewImplicitlyAnimating

public interface IUIViewImplicitlyAnimating : ObjCRuntime.INativeObject, System.IDisposable, IUIViewAnimating {
}

New Type UIKit.NSObject_UIAccessibilityCustomRotor

public static class NSObject_UIAccessibilityCustomRotor {
	// methods
	public static UIAccessibilityCustomRotor[] GetAccessibilityCustomRotors (Foundation.NSObject This);
	public static void SetAccessibilityCustomRotors (Foundation.NSObject This, UIAccessibilityCustomRotor[] customRotors);
}

New Type UIKit.UIAccessibilityCustomRotor

public class UIAccessibilityCustomRotor : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public UIAccessibilityCustomRotor ();
	protected UIAccessibilityCustomRotor (Foundation.NSObjectFlag t);
	protected UIAccessibilityCustomRotor (IntPtr handle);
	public UIAccessibilityCustomRotor (string name, UIAccessibilityCustomRotorSearch itemSearchHandler);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual UIAccessibilityCustomRotorSearch ItemSearchHandler { get; set; }
	public virtual string Name { get; set; }
}

New Type UIKit.UIAccessibilityCustomRotorDirection

[Serializable]
public enum UIAccessibilityCustomRotorDirection {
	Next = 1,
	Previous = 0,
}

New Type UIKit.UIAccessibilityCustomRotorItemResult

public class UIAccessibilityCustomRotorItemResult : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public UIAccessibilityCustomRotorItemResult ();
	protected UIAccessibilityCustomRotorItemResult (Foundation.NSObjectFlag t);
	protected UIAccessibilityCustomRotorItemResult (IntPtr handle);
	public UIAccessibilityCustomRotorItemResult (Foundation.NSObject targetElement, UITextRange targetRange);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSObject TargetElement { get; set; }
	public virtual UITextRange TargetRange { get; set; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type UIKit.UIAccessibilityCustomRotorSearch

public sealed delegate UIAccessibilityCustomRotorSearch : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public UIAccessibilityCustomRotorSearch (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (UIAccessibilityCustomRotorSearchPredicate predicate, System.AsyncCallback callback, object object);
	public virtual UIAccessibilityCustomRotorItemResult EndInvoke (System.IAsyncResult result);
	public virtual UIAccessibilityCustomRotorItemResult Invoke (UIAccessibilityCustomRotorSearchPredicate predicate);
}

New Type UIKit.UIAccessibilityCustomRotorSearchPredicate

public class UIAccessibilityCustomRotorSearchPredicate : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public UIAccessibilityCustomRotorSearchPredicate ();
	protected UIAccessibilityCustomRotorSearchPredicate (Foundation.NSObjectFlag t);
	protected UIAccessibilityCustomRotorSearchPredicate (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual UIAccessibilityCustomRotorItemResult CurrentItem { get; set; }
	public virtual UIAccessibilityCustomRotorDirection SearchDirection { get; set; }
}

New Type UIKit.UIBackgroundFetchResult

[Serializable]
public enum UIBackgroundFetchResult {
	Failed = 2,
	NewData = 0,
	NoData = 1,
}

New Type UIKit.UICloudSharingPermissionOptions

[Serializable]
[Flags]
public enum UICloudSharingPermissionOptions {
	AllowPrivate = 2,
	AllowPublic = 1,
	AllowReadOnly = 4,
	AllowReadWrite = 8,
	Standard = 0,
}

New Type UIKit.UICollectionViewDataSourcePrefetching_Extensions

public static class UICollectionViewDataSourcePrefetching_Extensions {
	// methods
	public static void CancelPrefetching (IUICollectionViewDataSourcePrefetching This, UICollectionView collectionView, Foundation.NSIndexPath[] indexPaths);
}

New Type UIKit.UIContentSizeCategoryExtensions

public static class UIContentSizeCategoryExtensions {
	// methods
	public static Foundation.NSString GetConstant (UIContentSizeCategory self);
	public static UIContentSizeCategory GetValue (Foundation.NSString constant);
}

New Type UIKit.UICubicTimingParameters

public class UICubicTimingParameters : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Ob