diff --git a/gio/DBusInterfaceVTable.cs b/gio/DBusInterfaceVTable.cs new file mode 100644 index 000000000..f2ca54981 --- /dev/null +++ b/gio/DBusInterfaceVTable.cs @@ -0,0 +1,117 @@ +// Copyright (c) 2011 Novell, Inc. +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of version 2 of the Lesser GNU General +// Public License as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + + +using System; +using System.Collections; +using System.Runtime.InteropServices; + +namespace GLib { + + public partial class DBusInterfaceVTable { + + [StructLayout(LayoutKind.Sequential)] + struct NativeStruct { + public GLibSharp.DBusInterfaceMethodCallFuncNative method_call; + public GLibSharp.DBusInterfaceGetPropertyFuncNative get_property; + public GLibSharp.DBusInterfaceSetPropertyFuncNative set_property; + + [MarshalAs (UnmanagedType.ByValArray, SizeConst=8)] + private IntPtr[] Padding; + } + + IntPtr handle; + NativeStruct native_cbs; + + ~DBusInterfaceVTable () + { + Marshaller.Free (handle); + } + + public DBusInterfaceVTable (DBusInterfaceMethodCallFunc method_call, DBusInterfaceGetPropertyFunc get_property, DBusInterfaceSetPropertyFunc set_property) + { + this.method_call = method_call; + this.get_property = get_property; + this.set_property = set_property; + native_cbs.method_call = OnMethodCall; + native_cbs.get_property = OnGetProperty; + native_cbs.set_property = OnSetProperty; + handle = Marshaller.StructureToPtrAlloc (native_cbs); + } + + public IntPtr OnGetProperty (IntPtr connection, IntPtr sender, IntPtr object_path, IntPtr interface_name, IntPtr property_name, out IntPtr error, IntPtr user_data) + { + error = IntPtr.Zero; + + try { + if (get_property == null) + return IntPtr.Zero; + + GLib.Variant __ret = get_property (GLib.Object.GetObject(connection) as GLib.DBusConnection, GLib.Marshaller.Utf8PtrToString (sender), GLib.Marshaller.Utf8PtrToString (object_path), GLib.Marshaller.Utf8PtrToString (interface_name), GLib.Marshaller.Utf8PtrToString (property_name)); + return __ret == null ? IntPtr.Zero : __ret.Handle; + } catch (Exception e) { + GLib.ExceptionManager.RaiseUnhandledException (e, true); + // NOTREACHED: Above call does not return. + throw e; + } + } + + public void OnMethodCall (IntPtr connection, IntPtr sender, IntPtr object_path, IntPtr interface_name, IntPtr method_name, IntPtr parameters, IntPtr invocation, IntPtr user_data) + { + try { + if (method_call == null) + return; + + method_call (GLib.Object.GetObject(connection) as GLib.DBusConnection, GLib.Marshaller.Utf8PtrToString (sender), GLib.Marshaller.Utf8PtrToString (object_path), GLib.Marshaller.Utf8PtrToString (interface_name), GLib.Marshaller.Utf8PtrToString (method_name), new GLib.Variant(parameters), GLib.Object.GetObject(invocation) as GLib.DBusMethodInvocation); + } catch (Exception e) { + GLib.ExceptionManager.RaiseUnhandledException (e, false); + } + } + + public bool OnSetProperty (IntPtr connection, IntPtr sender, IntPtr object_path, IntPtr interface_name, IntPtr property_name, IntPtr value, out IntPtr error, IntPtr user_data) + { + error = IntPtr.Zero; + + try { + if (set_property == null) + return false; + + return set_property (GLib.Object.GetObject(connection) as GLib.DBusConnection, GLib.Marshaller.Utf8PtrToString (sender), GLib.Marshaller.Utf8PtrToString (object_path), GLib.Marshaller.Utf8PtrToString (interface_name), GLib.Marshaller.Utf8PtrToString (property_name), new GLib.Variant(value)); + } catch (Exception e) { + GLib.ExceptionManager.RaiseUnhandledException (e, false); + return false; + } + } + + DBusInterfaceMethodCallFunc method_call; + public GLib.DBusInterfaceMethodCallFunc MethodCall { + get { return method_call; } + set { method_call = value; } + } + + GLib.DBusInterfaceGetPropertyFunc get_property; + public GLib.DBusInterfaceGetPropertyFunc GetProperty { + get { return get_property; } + set { get_property = value; } + } + + GLib.DBusInterfaceSetPropertyFunc set_property; + public GLib.DBusInterfaceSetPropertyFunc SetProperty { + get { return set_property; } + set { set_property = value; } + } + } +} diff --git a/gio/Gio.metadata b/gio/Gio.metadata index 907fe3cea..7ffefa8fd 100644 --- a/gio/Gio.metadata +++ b/gio/Gio.metadata @@ -2,6 +2,7 @@ GLib + async 1 GetCanRemoveSupportsType 1 @@ -22,6 +23,11 @@ GetMountInstance async + Activated + Opened + AuthenticatedPeerAuthorized + IsClosed + GetIsClosed GetAttributeLong SetAttributeLong GetAttributeULong @@ -44,6 +50,7 @@ 1 guchar* 1 + Activated 1 1 1 @@ -55,4 +62,9 @@ GDrive* true 1 + + + + + diff --git a/gio/gio-api.raw b/gio/gio-api.raw index a79a67bfe..383b74547 100644 --- a/gio/gio-api.raw +++ b/gio/gio-api.raw @@ -11,6 +11,15 @@ + + + + + + + + + @@ -19,6 +28,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -30,6 +192,16 @@ + + + + + + + + + + @@ -56,6 +228,7 @@ + @@ -64,10 +237,12 @@ + + @@ -77,10 +252,12 @@ + + @@ -132,6 +309,25 @@ + + + + + + + + + + + + + + + + + + + @@ -155,6 +351,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -163,6 +438,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -187,6 +608,13 @@ + + + + + + + @@ -194,6 +622,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -202,6 +654,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -222,6 +944,11 @@ + + + + + @@ -256,7 +983,7 @@ - + @@ -313,6 +1040,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -320,6 +1070,9 @@ + + + @@ -332,6 +1085,9 @@ + + + @@ -350,6 +1106,9 @@ + + + @@ -366,9 +1125,18 @@ + + + + + + + + + @@ -378,6 +1146,12 @@ + + + + + + @@ -412,6 +1186,12 @@ + + + + + + @@ -426,6 +1206,13 @@ + + + + + + + @@ -436,6 +1223,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -460,33 +1329,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - - + + + @@ -502,19 +1414,30 @@ + + + + + + + + + + + - + - - + + - - + + - + @@ -592,13 +1515,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + @@ -607,7 +1610,24 @@ - + + + + + + + + + + + + + + + + + + @@ -629,6 +1649,9 @@ + + + @@ -662,6 +1685,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -746,6 +1803,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -1297,6 +2374,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1387,6 +2624,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1397,7 +2659,7 @@ - + @@ -1406,7 +2668,24 @@ - + + + + + + + + + + + + + + + + + + @@ -1509,6 +2788,12 @@ + + + + + + @@ -1667,12 +2952,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1845,6 +3168,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1975,6 +3327,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1982,7 +3371,7 @@ - + @@ -1991,7 +3380,24 @@ - + + + + + + + + + + + + + + + + + + @@ -1999,11 +3405,29 @@ + + + + + + + + + + + + + + + + + + @@ -2015,6 +3439,22 @@ + + + + + + + + + + + + + + + + @@ -2030,6 +3470,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2097,8 +3596,8 @@ - - + + @@ -2116,15 +3615,21 @@ + + + + + + - + - - + + - + @@ -2230,13 +3735,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -2245,13 +3792,33 @@ - + + + + + + + + + + + + + + + + + + + + + @@ -2297,6 +3864,9 @@ + + + @@ -2314,7 +3884,10 @@ - + + + + @@ -2323,13 +3896,290 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2399,11 +4249,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -2419,15 +4393,17 @@ + + - + - - + + - + @@ -2507,13 +4483,30 @@ + + + + + + + + + + + + + + + + + - + @@ -2522,7 +4515,24 @@ - + + + + + + + + + + + + + + + + + + @@ -2595,10 +4605,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2857,6 +5110,7 @@ + @@ -2879,6 +5133,20 @@ + + + + + + + + + + + + + + @@ -2891,6 +5159,12 @@ + + + + + + @@ -2898,6 +5172,9 @@ + + + @@ -2907,6 +5184,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2985,6 +5422,23 @@ + + + + + + + + + + + + + + + + + @@ -3015,6 +5469,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3136,6 +5637,1046 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3143,12 +6684,28 @@ + + + + + + + + + + + + + + + + @@ -3171,6 +6728,22 @@ + + + + + + + + + + + + + + + + @@ -3205,6 +6778,8 @@ + + @@ -3214,6 +6789,9 @@ + + + @@ -3320,7 +6898,7 @@ - + @@ -3336,7 +6914,7 @@ - + @@ -3521,6 +7099,12 @@ + + + + + + @@ -3593,6 +7177,12 @@ + + + + + + @@ -3655,6 +7245,13 @@ + + + + + + + @@ -3662,6 +7259,13 @@ + + + + + + + @@ -3788,7 +7392,7 @@ - + @@ -3796,7 +7400,7 @@ - + @@ -3806,7 +7410,7 @@ - + @@ -3834,7 +7438,7 @@ - + @@ -3842,7 +7446,7 @@ - + @@ -3857,6 +7461,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3936,7 +7667,7 @@ - + @@ -3991,7 +7722,7 @@ - + @@ -3999,7 +7730,7 @@ - + @@ -4009,7 +7740,7 @@ - + @@ -4044,7 +7775,7 @@ - + @@ -4052,7 +7783,7 @@ - + @@ -4076,6 +7807,7 @@ + @@ -4088,9 +7820,18 @@ + + + + + + + + + @@ -4101,6 +7842,7 @@ + @@ -4113,9 +7855,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4330,6 +8198,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4337,9 +8355,11 @@ + + @@ -4352,6 +8372,13 @@ + + + + + + + @@ -4410,6 +8437,11 @@ + + + + + @@ -4443,11 +8475,14 @@ - - - + + + + + + @@ -4455,6 +8490,8 @@ + + @@ -4465,8 +8502,6 @@ - - @@ -4491,6 +8526,18 @@ + + + + + + + + + + + + @@ -4527,12 +8574,6 @@ - - - - - - @@ -4614,6 +8655,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4697,7 +8825,7 @@ - + @@ -4821,6 +8949,9 @@ + + + @@ -4892,6 +9023,860 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4920,6 +9905,14 @@ + + + + + + + + @@ -4940,6 +9933,14 @@ + + + + + + + + @@ -4982,7 +9983,7 @@ - + @@ -5010,60 +10011,26 @@ - - - - - - - - - - - - + - + - - - - + + + - + - + - - - - - - - - - - - - - - - - - - - + + - - - - - @@ -5074,35 +10041,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + @@ -5133,10 +10083,1612 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5194,13 +11746,13 @@ + - @@ -5269,6 +11821,12 @@ + + + + + + @@ -5321,10 +11879,7 @@ - - - - + @@ -5358,6 +11913,404 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5377,6 +12330,9 @@ + + + @@ -5401,6 +12357,9 @@ + + + @@ -5498,55 +12457,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -5554,20 +12704,181 @@ - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5575,6 +12886,12 @@ + + + + + + @@ -5584,6 +12901,12 @@ + + + + + + @@ -5598,6 +12921,20 @@ + + + + + + + + + + + + + + @@ -5612,6 +12949,15 @@ + + + + + + + + +