From 80520206fcd4c8c85eb28b4800c42136365b164d Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Mon, 1 Dec 2008 18:42:14 +0000 Subject: [PATCH] * Unforunately it turns out not to be that simple. Revert the rest of r7560 for now. --- OpenSim/Data/Migration.cs | 10 +- .../Data/NHibernate/LLQuaternionUserType.cs | 6 +- OpenSim/Data/NHibernate/LLVector3UserType.cs | 7 +- .../Data/NHibernate/NHibernateAssetData.cs | 77 ++++++++- .../NHibernate/NHibernateInventoryData.cs | 107 ++++++++---- OpenSim/Data/NHibernate/NHibernateManager.cs | 140 ++-------------- .../Data/NHibernate/NHibernateRegionData.cs | 124 +++++++++----- OpenSim/Data/NHibernate/NHibernateUserData.cs | 155 +++++++++++------- .../NHibernate/Resources/AssetBase.hbm.xml | 2 +- .../Resources/InventoryFolderBase.hbm.xml | 2 +- .../Resources/InventoryItemBase.hbm.xml | 10 +- .../MySQLDialect/002_RegionStore.sql | 4 +- .../NHibernate/Resources/RegionStore.hbm.xml | 85 +++------- .../Resources/UserAgentData.hbm.xml | 8 +- .../Resources/UserProfileData.hbm.xml | 4 +- OpenSim/Data/NHibernate/Terrain.cs | 2 +- OpenSim/Data/RegionProfileData.cs | 151 ----------------- bin/Iesi.Collections.dll | Bin 32768 -> 12288 bytes bin/NHibernate.Mapping.Attributes.dll | Bin 249856 -> 231936 bytes bin/OpenSim.32BitLaunch.exe.config | 6 - prebuild.xml | 2 - 21 files changed, 386 insertions(+), 516 deletions(-) diff --git a/OpenSim/Data/Migration.cs b/OpenSim/Data/Migration.cs index 332b8eca61..8fbf7899e1 100644 --- a/OpenSim/Data/Migration.cs +++ b/OpenSim/Data/Migration.cs @@ -82,7 +82,6 @@ namespace OpenSim.Data // private static readonly string _migrations_init = "insert into migrations values('migrations', 1)"; // private static readonly string _migrations_find = "select version from migrations where name='migrations'"; - public Migration(DbConnection conn, Assembly assem, string type) { _type = type; @@ -113,7 +112,6 @@ namespace OpenSim.Data DbCommand cmd = _conn.CreateCommand(); cmd.CommandText = _migrations_create; cmd.ExecuteNonQuery(); - cmd.Dispose(); InsertVersion("migrations", 1); } @@ -137,7 +135,7 @@ namespace OpenSim.Data int newversion = kvp.Key; cmd.CommandText = kvp.Value; // we need to up the command timeout to infinite as we might be doing long migrations. - //cmd.CommandTimeout = 0; + cmd.CommandTimeout = 0; cmd.ExecuteNonQuery(); if (version == 0) @@ -149,7 +147,6 @@ namespace OpenSim.Data UpdateVersion(_type, newversion); } version = newversion; - cmd.Dispose(); } } @@ -192,7 +189,7 @@ namespace OpenSim.Data DbCommand cmd = conn.CreateCommand(); try { - cmd.CommandText = "select version from migrations where name='" + type +"' order by version desc"; + cmd.CommandText = "select version from migrations where name='" + type + "' limit 1"; using (IDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) @@ -206,7 +203,6 @@ namespace OpenSim.Data { // Something went wrong, so we're version 0 } - cmd.Dispose(); return version; } @@ -216,7 +212,6 @@ namespace OpenSim.Data cmd.CommandText = "insert into migrations(name, version) values('" + type + "', " + version + ")"; m_log.InfoFormat("[MIGRATIONS]: Creating {0} at version {1}", type, version); cmd.ExecuteNonQuery(); - cmd.Dispose(); } private void UpdateVersion(string type, int version) @@ -225,7 +220,6 @@ namespace OpenSim.Data cmd.CommandText = "update migrations set version=" + version + " where name='" + type + "'"; m_log.InfoFormat("[MIGRATIONS]: Updating {0} to version {1}", type, version); cmd.ExecuteNonQuery(); - cmd.Dispose(); } // private SortedList GetAllMigrations() diff --git a/OpenSim/Data/NHibernate/LLQuaternionUserType.cs b/OpenSim/Data/NHibernate/LLQuaternionUserType.cs index 0cd5c6f957..7431433135 100644 --- a/OpenSim/Data/NHibernate/LLQuaternionUserType.cs +++ b/OpenSim/Data/NHibernate/LLQuaternionUserType.cs @@ -78,11 +78,7 @@ namespace OpenSim.Data.NHibernate int w = rs.GetOrdinal(names[3]); if (!rs.IsDBNull(x)) { - float X = (Single)Convert.ToDouble(rs[x].ToString()); - float Y = (Single)Convert.ToDouble(rs[y].ToString()); - float Z = (Single)Convert.ToDouble(rs[z].ToString()); - float W = (Single)Convert.ToDouble(rs[w].ToString()); - quat = new Quaternion(X, Y, Z, W); + quat = new Quaternion((Single)rs[x], (Single)rs[y], (Single)rs[z], (Single)rs[w]); } return quat; } diff --git a/OpenSim/Data/NHibernate/LLVector3UserType.cs b/OpenSim/Data/NHibernate/LLVector3UserType.cs index 25a2bc6e9a..cdd15eca37 100644 --- a/OpenSim/Data/NHibernate/LLVector3UserType.cs +++ b/OpenSim/Data/NHibernate/LLVector3UserType.cs @@ -74,12 +74,9 @@ namespace OpenSim.Data.NHibernate int x = rs.GetOrdinal(names[0]); int y = rs.GetOrdinal(names[1]); int z = rs.GetOrdinal(names[2]); - if (!rs.IsDBNull(x) && !rs.IsDBNull(y) && !rs.IsDBNull(z)) + if (!rs.IsDBNull(x)) { - float X = (Single)Convert.ToDouble(rs[x].ToString()); - float Y = (Single)Convert.ToDouble(rs[y].ToString()); - float Z = (Single)Convert.ToDouble(rs[z].ToString()); - vector = new Vector3(X, Y, Z); + vector = new Vector3((Single)rs[x], (Single)rs[y], (Single)rs[z]); } return vector; } diff --git a/OpenSim/Data/NHibernate/NHibernateAssetData.cs b/OpenSim/Data/NHibernate/NHibernateAssetData.cs index 90d41e3bb0..6ee527e1a9 100644 --- a/OpenSim/Data/NHibernate/NHibernateAssetData.cs +++ b/OpenSim/Data/NHibernate/NHibernateAssetData.cs @@ -33,7 +33,10 @@ using System.Text.RegularExpressions; using OpenMetaverse; using log4net; using NHibernate; +using NHibernate.Cfg; +using NHibernate.Expression; using NHibernate.Mapping.Attributes; +using NHibernate.Tool.hbm2ddl; using OpenSim.Framework; using Environment=NHibernate.Cfg.Environment; @@ -46,7 +49,9 @@ namespace OpenSim.Data.NHibernate { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private NHibernateManager manager; + private Configuration cfg; + private ISessionFactory factory; + private ISession session; override public void Dispose() { } @@ -57,23 +62,79 @@ namespace OpenSim.Data.NHibernate public override void Initialise(string connect) { + // Split out the dialect, driver, and connect string + char[] split = {';'}; + string[] parts = connect.Split(split, 3); + if (parts.Length != 3) + { + // TODO: make this a real exception type + throw new Exception("Malformed Inventory connection string '" + connect + "'"); + } - m_log.InfoFormat("[NHIBERNATE] Initializing NHibernateAssetData"); - manager = new NHibernateManager(connect, "AssetStore"); + string dialect = parts[0]; + + // NHibernate setup + cfg = new Configuration(); + cfg.SetProperty(Environment.ConnectionProvider, + "NHibernate.Connection.DriverConnectionProvider"); + cfg.SetProperty(Environment.Dialect, + "NHibernate.Dialect." + dialect); + cfg.SetProperty(Environment.ConnectionDriver, + "NHibernate.Driver." + parts[1]); + cfg.SetProperty(Environment.ConnectionString, parts[2]); + cfg.AddAssembly("OpenSim.Data.NHibernate"); + + + + HbmSerializer.Default.Validate = true; + using (MemoryStream stream = + HbmSerializer.Default.Serialize(Assembly.GetExecutingAssembly())) + cfg.AddInputStream(stream); + + factory = cfg.BuildSessionFactory(); + session = factory.OpenSession(); + + // This actually does the roll forward assembly stuff + Assembly assem = GetType().Assembly; + Migration m = new Migration((System.Data.Common.DbConnection)factory.ConnectionProvider.GetConnection(), assem, dialect, "AssetStore"); + m.Update(); } override public AssetBase FetchAsset(UUID uuid) { - return (AssetBase)manager.Load(typeof(AssetBase), uuid); + try + { + return session.Load(typeof(AssetBase), uuid) as AssetBase; + } + catch (ObjectNotFoundException) + { + m_log.ErrorFormat("[NHIBERNATE] no such asset {0}", uuid); + return null; + } + catch (Exception e) + { + m_log.Error("[NHIBERNATE] unexpected exception: ", e); + return null; + } } private void Save(AssetBase asset) { - AssetBase temp = (AssetBase)manager.Load(typeof(AssetBase), asset.FullID); - if (temp == null) + try { - manager.Save(asset); + // a is not used anywhere? + // AssetBase a = session.Load(typeof(AssetBase), asset.FullID) as AssetBase; + session.Load(typeof(AssetBase), asset.FullID); + } + catch (ObjectNotFoundException) + { + session.Save(asset); + session.Flush(); + } + catch (Exception e) + { + m_log.Error("[NHIBERNATE] issue saving asset", e); } } @@ -86,7 +147,7 @@ namespace OpenSim.Data.NHibernate override public void UpdateAsset(AssetBase asset) { m_log.InfoFormat("[NHIBERNATE] updating asset {0}", asset.FullID); - manager.Update(asset); + Save(asset); } // private void LogAssetLoad(AssetBase asset) diff --git a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs index f7de8eb6a2..bceb5d5ecf 100644 --- a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs +++ b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs @@ -33,7 +33,10 @@ using System.Text.RegularExpressions; using OpenMetaverse; using log4net; using NHibernate; -using NHibernate.Criterion; +using NHibernate.Cfg; +using NHibernate.Expression; +using NHibernate.Mapping.Attributes; +using NHibernate.Tool.hbm2ddl; using OpenSim.Framework; using Environment=NHibernate.Cfg.Environment; @@ -43,7 +46,9 @@ namespace OpenSim.Data.NHibernate { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private NHibernateManager manager; + private Configuration cfg; + private ISessionFactory factory; + private ISession session; public void Initialise() { @@ -56,8 +61,35 @@ namespace OpenSim.Data.NHibernate /// public void Initialise(string connect) { - m_log.InfoFormat("[NHIBERNATE] Initializing NHibernateInventoryData"); - manager = new NHibernateManager(connect, "InventoryStore"); + // Split out the dialect, driver, and connect string + char[] split = {';'}; + string[] parts = connect.Split(split, 3); + if (parts.Length != 3) + { + // TODO: make this a real exception type + throw new Exception("Malformed Inventory connection string '" + connect + "'"); + } + string dialect = parts[0]; + + // Establish NHibernate Connection + cfg = new Configuration(); + cfg.SetProperty(Environment.ConnectionProvider, + "NHibernate.Connection.DriverConnectionProvider"); + cfg.SetProperty(Environment.Dialect, + "NHibernate.Dialect." + parts[0]); + cfg.SetProperty(Environment.ConnectionDriver, + "NHibernate.Driver." + parts[1]); + cfg.SetProperty(Environment.ConnectionString, parts[2]); + cfg.AddAssembly("OpenSim.Data.NHibernate"); + + factory = cfg.BuildSessionFactory(); + session = factory.OpenSession(); + + // This actually does the roll forward assembly stuff + Assembly assem = GetType().Assembly; + Migration m = new Migration((System.Data.Common.DbConnection)factory.ConnectionProvider.GetConnection(), assem, dialect, "InventoryStore"); + m.Update(); + } /***************************************************************** @@ -77,8 +109,7 @@ namespace OpenSim.Data.NHibernate { try { - m_log.InfoFormat("[NHIBERNATE] getInventoryItem {0}", item); - return (InventoryItemBase)manager.Load(typeof(InventoryItemBase), item); + return session.Load(typeof(InventoryItemBase), item) as InventoryItemBase; } catch { @@ -95,11 +126,15 @@ namespace OpenSim.Data.NHibernate { if (!ExistsItem(item.ID)) { - manager.Save(item); + using (ITransaction transaction = session.BeginTransaction()) + { + session.Save(item); + transaction.Commit(); + } } else { - m_log.ErrorFormat("[NHIBERNATE] Attempted to add Inventory Item {0} that already exists, updating instead", item.ID); + m_log.ErrorFormat("Attempted to add Inventory Item {0} that already exists, updating instead", item.ID); updateInventoryItem(item); } } @@ -112,11 +147,15 @@ namespace OpenSim.Data.NHibernate { if (ExistsItem(item.ID)) { - manager.Update(item); + using (ITransaction transaction = session.BeginTransaction()) + { + session.Update(item); + transaction.Commit(); + } } else { - m_log.ErrorFormat("[NHIBERNATE] Attempted to add Inventory Item {0} that already exists", item.ID); + m_log.ErrorFormat("Attempted to add Inventory Item {0} that already exists", item.ID); } } @@ -126,16 +165,11 @@ namespace OpenSim.Data.NHibernate /// public void deleteInventoryItem(UUID itemID) { - InventoryItemBase item = (InventoryItemBase)manager.Load(typeof(InventoryItemBase), itemID); - if (item != null) + using (ITransaction transaction = session.BeginTransaction()) { - manager.Delete(item); + session.Delete(itemID); + transaction.Commit(); } - else - { - m_log.ErrorFormat("[NHIBERNATE] Error deleting InventoryItemBase {0}", itemID); - } - } /// @@ -147,11 +181,11 @@ namespace OpenSim.Data.NHibernate { try { - return (InventoryFolderBase)manager.Load(typeof(InventoryFolderBase), folder); + return session.Load(typeof(InventoryFolderBase), folder) as InventoryFolderBase; } catch { - m_log.ErrorFormat("[NHIBERNATE] Couldn't find inventory item: {0}", folder); + m_log.ErrorFormat("Couldn't find inventory item: {0}", folder); return null; } } @@ -164,11 +198,15 @@ namespace OpenSim.Data.NHibernate { if (!ExistsFolder(folder.ID)) { - manager.Save(folder); + using (ITransaction transaction = session.BeginTransaction()) + { + session.Save(folder); + transaction.Commit(); + } } else { - m_log.ErrorFormat("[NHIBERNATE] Attempted to add Inventory Folder {0} that already exists, updating instead", folder.ID); + m_log.ErrorFormat("Attempted to add Inventory Folder {0} that already exists, updating instead", folder.ID); updateInventoryFolder(folder); } } @@ -181,11 +219,15 @@ namespace OpenSim.Data.NHibernate { if (ExistsFolder(folder.ID)) { - manager.Update(folder); + using (ITransaction transaction = session.BeginTransaction()) + { + session.Update(folder); + transaction.Commit(); + } } else { - m_log.ErrorFormat("[NHIBERNATE] Attempted to add Inventory Folder {0} that already exists", folder.ID); + m_log.ErrorFormat("Attempted to add Inventory Folder {0} that already exists", folder.ID); } } @@ -195,16 +237,11 @@ namespace OpenSim.Data.NHibernate /// public void deleteInventoryFolder(UUID folderID) { - InventoryFolderBase item = (InventoryFolderBase)manager.Load(typeof(InventoryFolderBase), folderID); - if (item != null) + using (ITransaction transaction = session.BeginTransaction()) { - manager.Delete(item); + session.Delete(folderID.ToString()); + transaction.Commit(); } - else - { - m_log.ErrorFormat("[NHIBERNATE] Error deleting InventoryFolderBase {0}", folderID); - } - manager.Delete(folderID); } // useful private methods @@ -280,7 +317,7 @@ namespace OpenSim.Data.NHibernate public List getInventoryInFolder(UUID folderID) { // try { - ICriteria criteria = manager.GetSession().CreateCriteria(typeof(InventoryItemBase)); + ICriteria criteria = session.CreateCriteria(typeof(InventoryItemBase)); criteria.Add(Expression.Eq("Folder", folderID)); List list = new List(); foreach (InventoryItemBase item in criteria.List()) @@ -303,7 +340,7 @@ namespace OpenSim.Data.NHibernate // see InventoryItemBase.getUserRootFolder public InventoryFolderBase getUserRootFolder(UUID user) { - ICriteria criteria = manager.GetSession().CreateCriteria(typeof(InventoryFolderBase)); + ICriteria criteria = session.CreateCriteria(typeof(InventoryFolderBase)); criteria.Add(Expression.Eq("ParentID", UUID.Zero)); criteria.Add(Expression.Eq("Owner", user)); foreach (InventoryFolderBase folder in criteria.List()) @@ -321,7 +358,7 @@ namespace OpenSim.Data.NHibernate /// ID of parent private void getInventoryFolders(ref List folders, UUID parentID) { - ICriteria criteria = manager.GetSession().CreateCriteria(typeof(InventoryFolderBase)); + ICriteria criteria = session.CreateCriteria(typeof(InventoryFolderBase)); criteria.Add(Expression.Eq("ParentID", parentID)); foreach (InventoryFolderBase item in criteria.List()) { diff --git a/OpenSim/Data/NHibernate/NHibernateManager.cs b/OpenSim/Data/NHibernate/NHibernateManager.cs index 36d84e2e02..161ec1d65c 100644 --- a/OpenSim/Data/NHibernate/NHibernateManager.cs +++ b/OpenSim/Data/NHibernate/NHibernateManager.cs @@ -25,141 +25,35 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -using System; using System.Reflection; -using System.IO; using log4net; using NHibernate; -using NHibernate.Cfg; -using NHibernate.Mapping.Attributes; -using NHibernate.Tool.hbm2ddl; -using OpenMetaverse; -using Environment = NHibernate.Cfg.Environment; namespace OpenSim.Data.NHibernate { - public class NHibernateManager + internal class NHibernateManager { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private string dialect; - private Configuration cfg; - private ISessionFactory factory; - private ISession session; + // private ISessionFactory factory; + // private ISession session; + // private ITransaction transaction; - public NHibernateManager(string connect, string store) + public NHibernateManager() { + // This is stubbing for now, it will become dynamic later and support different db backends +// NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration(); +// cfg.Properties[NHibernate.Cfg.Environment.ConnectionProvider] = +// "NHibernate.Connection.DriverConnectionProvider"; +// cfg.Properties[NHibernate.Cfg.Environment.Dialect] = +// "NHibernate.Dialect.SQLite"; +// cfg.Properties[NHibernate.Cfg.Environment.ConnectionDriver] = +// "NHibernate.Driver.SqliteClientDriver"; +// cfg.Properties[NHibernate.Cfg.Environment.ConnectionString] = +// "URI=file:opensim-nh.db,version=3"; - // Split out the dialect, driver, and connect string - char[] split = { ';' }; - string[] parts = connect.Split(split, 3); - if (parts.Length != 3) - { - // TODO: make this a real exception type - throw new Exception("Malformed Inventory connection string '" + connect + "'"); - } - - dialect = parts[0]; - - // NHibernate setup - cfg = new Configuration(); - cfg.SetProperty(Environment.ConnectionProvider, - "NHibernate.Connection.DriverConnectionProvider"); - cfg.SetProperty(Environment.Dialect, - "NHibernate.Dialect." + dialect); - cfg.SetProperty(Environment.ConnectionDriver, - "NHibernate.Driver." + parts[1]); - cfg.SetProperty(Environment.ConnectionString, parts[2]); - cfg.AddAssembly("OpenSim.Data.NHibernate"); - - //To create sql file uncomment code below and write the name of the file - //SchemaExport exp = new SchemaExport(cfg); - //exp.SetOutputFile("nameofthefile.sql"); - //exp.Create(false, true); - - HbmSerializer.Default.Validate = true; - using (MemoryStream stream = - HbmSerializer.Default.Serialize(Assembly.GetExecutingAssembly())) - cfg.AddInputStream(stream); - - factory = cfg.BuildSessionFactory(); - session = factory.OpenSession(); - - Assembly assem = GetType().Assembly; - Migration m = new Migration((System.Data.Common.DbConnection)factory.ConnectionProvider.GetConnection(), assem, dialect, store); - m.Update(); +// factory = cfg.BuildSessionFactory(); } - public object Load(Type type, UUID uuid) - { - object obj = null; - try - { - obj = session.Load(type, uuid); - } - catch (Exception) - { - m_log.ErrorFormat("[NHIBERNATE] {0} not found with ID {1} ", type.Name, uuid); - } - return obj; - - } - - public bool Save(object obj) - { - try - { - session.BeginTransaction(); - session.Save(obj); - session.Transaction.Commit(); - session.Flush(); - return true; - } - catch (Exception e) - { - m_log.Error("[NHIBERNATE] issue saving object ", e); - } - return false; - } - - public bool Update(object obj) - { - try - { - session.BeginTransaction(); - session.Update(obj); - session.Transaction.Commit(); - session.Flush(); - return true; - } - catch (Exception e) - { - m_log.Error("[NHIBERNATE] issue updating object ", e); - } - return false; - } - - public bool Delete(object obj) - { - try - { - session.BeginTransaction(); - session.Delete(obj); - session.Transaction.Commit(); - session.Flush(); - return true; - } - catch (Exception e) - { - - m_log.Error("[NHIBERNATE] issue deleting object ", e); - } - return false; - } - - public ISession GetSession() - { - return session; - } } } diff --git a/OpenSim/Data/NHibernate/NHibernateRegionData.cs b/OpenSim/Data/NHibernate/NHibernateRegionData.cs index 0aba58c117..475cd71920 100644 --- a/OpenSim/Data/NHibernate/NHibernateRegionData.cs +++ b/OpenSim/Data/NHibernate/NHibernateRegionData.cs @@ -34,7 +34,10 @@ using System.Text.RegularExpressions; using OpenMetaverse; using log4net; using NHibernate; -using NHibernate.Criterion; +using NHibernate.Cfg; +using NHibernate.Expression; +using NHibernate.Mapping.Attributes; +using NHibernate.Tool.hbm2ddl; using OpenSim.Framework; using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Environment.Scenes; @@ -49,12 +52,51 @@ namespace OpenSim.Data.NHibernate { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private NHibernateManager manager; + private Configuration cfg; + private ISessionFactory factory; + private ISession session; + + // public void Initialise() + // { + // Initialise("SQLiteDialect;SqliteClientDriver;URI=file:OpenSim.db,version=3", true); + // } public void Initialise(string connect) { - m_log.InfoFormat("[NHIBERNATE] Initializing NHibernateRegionData"); - manager = new NHibernateManager(connect, "RegionStore"); + // Split out the dialect, driver, and connect string + char[] split = {';'}; + string[] parts = connect.Split(split, 3); + if (parts.Length != 3) + { + // TODO: make this a real exception type + throw new Exception("Malformed Region connection string '" + connect + "'"); + } + + string dialect = parts[0]; + + // NHibernate setup + cfg = new Configuration(); + cfg.SetProperty(Environment.ConnectionProvider, + "NHibernate.Connection.DriverConnectionProvider"); + cfg.SetProperty(Environment.Dialect, + "NHibernate.Dialect." + dialect); + cfg.SetProperty(Environment.ConnectionDriver, + "NHibernate.Driver." + parts[1]); + cfg.SetProperty(Environment.ConnectionString, parts[2]); + cfg.AddAssembly("OpenSim.Data.NHibernate"); + + HbmSerializer.Default.Validate = true; + using (MemoryStream stream = + HbmSerializer.Default.Serialize(Assembly.GetExecutingAssembly())) + cfg.AddInputStream(stream); + + factory = cfg.BuildSessionFactory(); + session = factory.OpenSession(); + + // This actually does the roll forward assembly stuff + Assembly assem = GetType().Assembly; + Migration m = new Migration((System.Data.Common.DbConnection)factory.ConnectionProvider.GetConnection(), assem, dialect, "RegionStore"); + m.Update(); } /*********************************************************************** @@ -80,18 +122,15 @@ namespace OpenSim.Data.NHibernate { try { - SceneObjectPart old = (SceneObjectPart)manager.Load(typeof(SceneObjectPart), p.UUID); - if (old != null) - { - m_log.InfoFormat("[NHIBERNATE] updating object {0}", p.UUID); - manager.Update(old); - } - else - { - m_log.InfoFormat("[NHIBERNATE] saving object {0}", p.UUID); - manager.Save(p); - } - + SceneObjectPart old = session.Load(typeof(SceneObjectPart), p.UUID) as SceneObjectPart; + session.Evict(old); + session.Update(p); + m_log.InfoFormat("[NHIBERNATE] updating object {0}", p.UUID); + } + catch (ObjectNotFoundException) + { + m_log.InfoFormat("[NHIBERNATE] saving object {0}", p.UUID); + session.Save(p); } catch (Exception e) { @@ -103,19 +142,15 @@ namespace OpenSim.Data.NHibernate { try { - - Terrain old = (Terrain)manager.Load(typeof(Terrain), t.RegionID); - if (old != null) - { - m_log.InfoFormat("[NHIBERNATE] updating terrain {0}", t.RegionID); - manager.Update(old); - } - else - { - m_log.InfoFormat("[NHIBERNATE] saving terrain {0}", t.RegionID); - manager.Save(t); - } - + Terrain old = session.Load(typeof(Terrain), t.RegionID) as Terrain; + session.Evict(old); + session.Update(t); + session.Flush(); + } + catch (ObjectNotFoundException) + { + session.Save(t); + session.Flush(); } catch (Exception e) { @@ -138,6 +173,7 @@ namespace OpenSim.Data.NHibernate m_log.InfoFormat("Storing part {0}", part.UUID); SaveOrUpdate(part); } + session.Flush(); } catch (Exception e) { @@ -149,7 +185,7 @@ namespace OpenSim.Data.NHibernate { SceneObjectGroup group = new SceneObjectGroup(); - ICriteria criteria = manager.GetSession().CreateCriteria(typeof(SceneObjectPart)); + ICriteria criteria = session.CreateCriteria(typeof(SceneObjectPart)); criteria.Add(Expression.Eq("RegionID", region)); criteria.Add(Expression.Eq("ParentUUID", uuid)); criteria.AddOrder( Order.Asc("ParentID") ); @@ -180,8 +216,9 @@ namespace OpenSim.Data.NHibernate SceneObjectGroup g = LoadObject(obj, regionUUID); foreach (SceneObjectPart p in g.Children.Values) { - manager.Delete(p); + session.Delete(p); } + session.Flush(); m_log.InfoFormat("[REGION DB]: Removing obj: {0} from region: {1}", obj.Guid, regionUUID); @@ -197,7 +234,7 @@ namespace OpenSim.Data.NHibernate Dictionary SOG = new Dictionary(); List ret = new List(); - ICriteria criteria = manager.GetSession().CreateCriteria(typeof(SceneObjectPart)); + ICriteria criteria = session.CreateCriteria(typeof(SceneObjectPart)); criteria.Add(Expression.Eq("RegionID", regionUUID)); criteria.AddOrder( Order.Asc("ParentID") ); foreach (SceneObjectPart p in criteria.List()) @@ -215,7 +252,7 @@ namespace OpenSim.Data.NHibernate } // get the inventory - ICriteria InvCriteria = manager.GetSession().CreateCriteria(typeof(TaskInventoryItem)); + ICriteria InvCriteria = session.CreateCriteria(typeof(TaskInventoryItem)); InvCriteria.Add(Expression.Eq("ParentPartID", p.UUID)); IList inventory = new List(); foreach (TaskInventoryItem i in InvCriteria.List()) @@ -254,14 +291,16 @@ namespace OpenSim.Data.NHibernate /// Heightfield data public double[,] LoadTerrain(UUID regionID) { - Terrain t = (Terrain)manager.Load(typeof(Terrain), regionID); - if (t != null) + try { + Terrain t = session.Load(typeof(Terrain), regionID) as Terrain; return t.Doubles; } - - m_log.Info("No terrain yet"); - return null; + catch (ObjectNotFoundException) + { + m_log.Info("No terrain yet"); + return null; + } } /// @@ -300,7 +339,7 @@ namespace OpenSim.Data.NHibernate /// public void Shutdown() { - //session.Flush(); + session.Flush(); } /// @@ -358,20 +397,21 @@ namespace OpenSim.Data.NHibernate /// public void StorePrimInventory(UUID primID, ICollection items) { - ICriteria criteria = manager.GetSession().CreateCriteria(typeof(TaskInventoryItem)); + ICriteria criteria = session.CreateCriteria(typeof(TaskInventoryItem)); criteria.Add(Expression.Eq("ParentPartID", primID)); try { foreach (TaskInventoryItem i in criteria.List()) { - manager.Delete(i); + session.Delete(i); } foreach (TaskInventoryItem i in items) { - manager.Save(i); + session.Save(i); } + session.Flush(); } catch (Exception e) { diff --git a/OpenSim/Data/NHibernate/NHibernateUserData.cs b/OpenSim/Data/NHibernate/NHibernateUserData.cs index ee0d2b8637..3a22dc3124 100644 --- a/OpenSim/Data/NHibernate/NHibernateUserData.cs +++ b/OpenSim/Data/NHibernate/NHibernateUserData.cs @@ -33,7 +33,10 @@ using System.Text.RegularExpressions; using OpenMetaverse; using log4net; using NHibernate; -using NHibernate.Criterion; +using NHibernate.Cfg; +using NHibernate.Expression; +using NHibernate.Mapping.Attributes; +using NHibernate.Tool.hbm2ddl; using OpenSim.Framework; using Environment=NHibernate.Cfg.Environment; @@ -46,7 +49,9 @@ namespace OpenSim.Data.NHibernate { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private NHibernateManager manager; + private Configuration cfg; + private ISessionFactory factory; + private ISession session; public override void Initialise() { @@ -56,40 +61,62 @@ namespace OpenSim.Data.NHibernate public override void Initialise(string connect) { - m_log.InfoFormat("[NHIBERNATE] Initializing NHibernateUserData"); - manager = new NHibernateManager(connect, "UserStore"); + char[] split = {';'}; + string[] parts = connect.Split(split, 3); + if (parts.Length != 3) + { + // TODO: make this a real exception type + throw new Exception("Malformed Inventory connection string '" + connect + "'"); + } + string dialect = parts[0]; + + // This is stubbing for now, it will become dynamic later and support different db backends + cfg = new Configuration(); + cfg.SetProperty(Environment.ConnectionProvider, + "NHibernate.Connection.DriverConnectionProvider"); + cfg.SetProperty(Environment.Dialect, + "NHibernate.Dialect." + parts[0]); + cfg.SetProperty(Environment.ConnectionDriver, + "NHibernate.Driver." + parts[1]); + cfg.SetProperty(Environment.ConnectionString, parts[2]); + cfg.AddAssembly("OpenSim.Data.NHibernate"); + + factory = cfg.BuildSessionFactory(); + session = factory.OpenSession(); + + // This actually does the roll forward assembly stuff + Assembly assem = GetType().Assembly; + Migration m = new Migration((System.Data.Common.DbConnection)factory.ConnectionProvider.GetConnection(), assem, dialect, "UserStore"); + m.Update(); } private bool ExistsUser(UUID uuid) { UserProfileData user = null; - - m_log.InfoFormat("[NHIBERNATE] ExistsUser; {0}", uuid); - user = (UserProfileData)manager.Load(typeof(UserProfileData), uuid); - - if (user == null) + try { - m_log.InfoFormat("[NHIBERNATE] User with given UUID does not exist {0} ", uuid); - return false; + user = session.Load(typeof(UserProfileData), uuid) as UserProfileData; + } + catch (ObjectNotFoundException) + { + user = null; } - return true; - + return (user != null); } override public UserProfileData GetUserByUUID(UUID uuid) { UserProfileData user; - m_log.InfoFormat("[NHIBERNATE] GetUserByUUID: {0} ", uuid); - - user = (UserProfileData)manager.Load(typeof(UserProfileData), uuid); - if (user != null) + // TODO: I'm sure I'll have to do something silly here + try { - UserAgentData agent = GetAgentByUUID(uuid); - if (agent != null) - { - user.CurrentAgent = agent; - } + user = session.Load(typeof(UserProfileData), uuid) as UserProfileData; + user.CurrentAgent = GetAgentByUUID(uuid); + } + catch (ObjectNotFoundException) + { + user = null; } return user; @@ -99,30 +126,33 @@ namespace OpenSim.Data.NHibernate { if (!ExistsUser(profile.ID)) { - m_log.InfoFormat("[NHIBERNATE] AddNewUserProfile {0}", profile.ID); - manager.Save(profile); + session.Save(profile); SetAgentData(profile.ID, profile.CurrentAgent); - } else { - m_log.ErrorFormat("[NHIBERNATE] Attempted to add User {0} {1} that already exists, updating instead", profile.FirstName, profile.SurName); + m_log.ErrorFormat("Attempted to add User {0} {1} that already exists, updating instead", profile.FirstName, profile.SurName); UpdateUserProfile(profile); } } private void SetAgentData(UUID uuid, UserAgentData agent) { - UserAgentData old = (UserAgentData)manager.Load(typeof(UserAgentData), uuid); - if (old != null) + if (agent == null) { - m_log.InfoFormat("[NHIBERNATE] SetAgentData deleting old: {0} ",uuid); - manager.Delete(old); + // TODO: got to figure out how to do a delete right } - if (agent != null) + else { - m_log.InfoFormat("[NHIBERNATE] SetAgentData: {0} ", agent.ProfileID); - manager.Save(agent); + try + { + UserAgentData old = session.Load(typeof(UserAgentData), uuid) as UserAgentData; + session.Delete(old); + } + catch (ObjectNotFoundException) + { + } + session.Save(agent); } } @@ -130,13 +160,13 @@ namespace OpenSim.Data.NHibernate { if (ExistsUser(profile.ID)) { - manager.Update(profile); + session.Update(profile); SetAgentData(profile.ID, profile.CurrentAgent); return true; } else { - m_log.ErrorFormat("[NHIBERNATE] Attempted to update User {0} {1} that doesn't exist, updating instead", profile.FirstName, profile.SurName); + m_log.ErrorFormat("Attempted to update User {0} {1} that doesn't exist, updating instead", profile.FirstName, profile.SurName); AddNewUserProfile(profile); return true; } @@ -144,32 +174,37 @@ namespace OpenSim.Data.NHibernate override public void AddNewUserAgent(UserAgentData agent) { - UserAgentData old = (UserAgentData)manager.Load(typeof(UserAgentData), agent.ProfileID); - if (old != null) + try { - manager.Delete(old); + UserAgentData old = session.Load(typeof(UserAgentData), agent.ProfileID) as UserAgentData; + session.Delete(old); } - - manager.Save(agent); - + catch (ObjectNotFoundException) + { + } + session.Save(agent); } public void UpdateUserAgent(UserAgentData agent) { - m_log.InfoFormat("[NHIBERNATE] UpdateUserAgent: {0} ", agent.ProfileID); - manager.Update(agent); + session.Update(agent); } override public UserAgentData GetAgentByUUID(UUID uuid) { - m_log.InfoFormat("[NHIBERNATE] GetAgentByUUID: {0} ", uuid); - return (UserAgentData)manager.Load(typeof(UserAgentData), uuid); + try + { + return session.Load(typeof(UserAgentData), uuid) as UserAgentData; + } + catch + { + return null; + } } override public UserProfileData GetUserByName(string fname, string lname) { - m_log.InfoFormat("[NHIBERNATE] GetUserByName: {0} {1} ", fname, lname); - ICriteria criteria = manager.GetSession().CreateCriteria(typeof(UserProfileData)); + ICriteria criteria = session.CreateCriteria(typeof(UserProfileData)); criteria.Add(Expression.Eq("FirstName", fname)); criteria.Add(Expression.Eq("SurName", lname)); foreach (UserProfileData profile in criteria.List()) @@ -198,7 +233,7 @@ namespace OpenSim.Data.NHibernate if (querysplit.Length == 2) { - ICriteria criteria = manager.GetSession().CreateCriteria(typeof(UserProfileData)); + ICriteria criteria = session.CreateCriteria(typeof(UserProfileData)); criteria.Add(Expression.Like("FirstName", querysplit[0])); criteria.Add(Expression.Like("SurName", querysplit[1])); foreach (UserProfileData profile in criteria.List()) @@ -227,18 +262,26 @@ namespace OpenSim.Data.NHibernate /// TODO: stubs for now to get us to a compiling state gently public override AvatarAppearance GetUserAppearance(UUID user) { - return (AvatarAppearance)manager.Load(typeof(AvatarAppearance), user); + AvatarAppearance appearance; + // TODO: I'm sure I'll have to do something silly here + try { + appearance = session.Load(typeof(AvatarAppearance), user) as AvatarAppearance; + } catch (ObjectNotFoundException) { + appearance = null; + } + return appearance; } private bool ExistsAppearance(UUID uuid) { - AvatarAppearance appearance = (AvatarAppearance)manager.Load(typeof(AvatarAppearance), uuid); - if (appearance == null) - { - return false; + AvatarAppearance appearance; + try { + appearance = session.Load(typeof(AvatarAppearance), uuid) as AvatarAppearance; + } catch (ObjectNotFoundException) { + appearance = null; } - return true; + return (appearance == null) ? false : true; } @@ -252,11 +295,11 @@ namespace OpenSim.Data.NHibernate bool exists = ExistsAppearance(user); if (exists) { - manager.Update(appearance); + session.Update(appearance); } else { - manager.Save(appearance); + session.Save(appearance); } } diff --git a/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml b/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml index 7c42609eeb..7c3d8cfefa 100644 --- a/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/AssetBase.hbm.xml @@ -4,7 +4,7 @@ - + diff --git a/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml b/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml index c5f0115f33..6afe9fa576 100644 --- a/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/InventoryFolderBase.hbm.xml @@ -5,7 +5,7 @@ - + diff --git a/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml b/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml index f5e365b35e..9a4d7cafdb 100644 --- a/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/InventoryItemBase.hbm.xml @@ -12,15 +12,15 @@ - - - - + + + + - + diff --git a/OpenSim/Data/NHibernate/Resources/MySQLDialect/002_RegionStore.sql b/OpenSim/Data/NHibernate/Resources/MySQLDialect/002_RegionStore.sql index d34d44e72b..fc11e95d3d 100644 --- a/OpenSim/Data/NHibernate/Resources/MySQLDialect/002_RegionStore.sql +++ b/OpenSim/Data/NHibernate/Resources/MySQLDialect/002_RegionStore.sql @@ -2,8 +2,8 @@ BEGIN; CREATE TABLE `Terrain` ( `RegionID` char(36) not null, - `MapData` longblob, + `Map` longblob, PRIMARY KEY (`RegionID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -COMMIT; +COMMIT; \ No newline at end of file diff --git a/OpenSim/Data/NHibernate/Resources/RegionStore.hbm.xml b/OpenSim/Data/NHibernate/Resources/RegionStore.hbm.xml index 1851904db0..fe055bbcac 100644 --- a/OpenSim/Data/NHibernate/Resources/RegionStore.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/RegionStore.hbm.xml @@ -4,7 +4,7 @@ - + @@ -14,17 +14,17 @@ - + - - - - - + + + + + @@ -83,24 +83,24 @@ - - + + - + - + - - - - + + + + - - - + + + @@ -108,8 +108,7 @@ - - + @@ -122,47 +121,15 @@ - - - - - + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml b/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml index e10fb8ff7f..0beddafcb2 100644 --- a/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml @@ -5,7 +5,7 @@ - + @@ -13,9 +13,9 @@ - - + diff --git a/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml b/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml index 740a9f1a82..873930bc3a 100644 --- a/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml @@ -9,8 +9,8 @@ - - + + diff --git a/OpenSim/Data/NHibernate/Terrain.cs b/OpenSim/Data/NHibernate/Terrain.cs index 88be17f1d3..dd0da44631 100644 --- a/OpenSim/Data/NHibernate/Terrain.cs +++ b/OpenSim/Data/NHibernate/Terrain.cs @@ -60,7 +60,7 @@ namespace OpenSim.Data.NHibernate set { regionID = value; } } - public byte[] MapData + public byte[] Map { get { return serializeTerrain(map); } set { map = parseTerrain(value); } diff --git a/OpenSim/Data/RegionProfileData.cs b/OpenSim/Data/RegionProfileData.cs index 5a3a42c579..a683bf1d8b 100644 --- a/OpenSim/Data/RegionProfileData.cs +++ b/OpenSim/Data/RegionProfileData.cs @@ -36,7 +36,6 @@ namespace OpenSim.Data /// /// A class which contains information known to the grid server about a region /// - [Serializable] public class RegionProfileData { /// @@ -211,155 +210,5 @@ namespace OpenSim.Data { return RequestSimData(gridserver_url, gridserver_sendkey, "region_name_search", regionName ); } - - - //Data Wrappers - public string RegionName - { - get { return regionName; } - set { regionName = value; } - } - public ulong RegionHandle - { - get { return regionHandle; } - set { regionHandle = value; } - } - public UUID Uuid - { - get { return UUID; } - set { UUID = value; } - } - public uint RegionLocX - { - get { return regionLocX; } - set { regionLocX = value; } - } - public uint RegionLocY - { - get { return regionLocY; } - set { regionLocY = value; } - } - public uint RegionLocZ - { - get { return regionLocZ; } - set { regionLocZ = value; } - } - public string RegionSendKey - { - get { return regionSendKey; } - set { regionSendKey = value; } - } - public string RegionRecvKey - { - get { return regionRecvKey; } - set { regionRecvKey = value; } - } - public string RegionSecret - { - get { return regionSecret; } - set { regionSecret = value; } - } - public bool RegionOnline - { - get { return regionOnline; } - set { regionOnline = value; } - } - public string ServerIP - { - get { return serverIP; } - set { serverIP = value; } - } - public uint ServerPort - { - get { return serverPort; } - set { serverPort = value; } - } - public string ServerURI - { - get { return serverURI; } - set { serverURI = value; } - } - public uint ServerHttpPort - { - get { return httpPort; } - set { httpPort = value; } - } - public uint ServerRemotingPort - { - get { return remotingPort; } - set { remotingPort = value; } - } - - public ulong NorthOverrideHandle - { - get { return regionNorthOverrideHandle; } - set { regionNorthOverrideHandle = value; } - } - public ulong SouthOverrideHandle - { - get { return regionSouthOverrideHandle; } - set { regionSouthOverrideHandle = value; } - } - public ulong EastOverrideHandle - { - get { return regionEastOverrideHandle; } - set { regionEastOverrideHandle = value; } - } - public ulong WestOverrideHandle - { - get { return regionWestOverrideHandle; } - set { regionWestOverrideHandle = value; } - } - public string RegionDataURI - { - get { return regionDataURI; } - set { regionDataURI = value; } - } - public string RegionAssetURI - { - get { return regionAssetURI; } - set { regionAssetURI = value; } - } - public string RegionAssetSendKey - { - get { return regionAssetSendKey; } - set { regionAssetSendKey = value; } - } - public string RegionAssetRecvKey - { - get { return regionAssetRecvKey; } - set { regionAssetRecvKey = value; } - } - public string RegionUserURI - { - get { return regionUserURI; } - set { regionUserURI = value; } - } - public string RegionUserSendKey - { - get { return regionUserSendKey; } - set { regionUserSendKey = value; } - } - public string RegionUserRecvKey - { - get { return regionUserRecvKey; } - set { regionUserRecvKey = value; } - } - public UUID RegionMapTextureID - { - get { return regionMapTextureID; } - set { regionMapTextureID = value; } - } - public UUID Owner_uuid - { - get { return owner_uuid; } - set { owner_uuid = value; } - } - public UUID OriginUUID - { - get { return originUUID; } - set { originUUID = value; } - } - } } diff --git a/bin/Iesi.Collections.dll b/bin/Iesi.Collections.dll index 107c362ce042656e1da7d06154aa43c73efa1865..f078c5a5fbb60bc43e964d96a3be03919194c4f4 100644 GIT binary patch literal 12288 zcmeHNeRLevb-y#SUs_qll7&BzY>%*IxH_$A;VVlmN{r?Sv95Qa;BpW=&Du7sYXt1@99;uW?GL|R76*JqIY!= zbx8_carCF#ild#Txpn1Ih-f7!xQU_y^3{)vwNr7EUA<8g`tzM0#05GRo)^(P@jrR@ zP|-%TNG0mwdOy+kgIt+X#)#%jA$=5do=OxcVN3(xUV_IReZ&FY%!WXln5(BZFi})! z6}N0F1x)DHj|$tP0arEXqsGp~T?w3~8t?u{k zjCG^V^O?CEXfv($OlGHM|g5_3chL+eUcqw?m9z$+AqM&*zh zhC(d>v|!GuOGJxM?e(H+;h9uh7>mSw-MBOBbvdr0ZdZ7^T>#x!kNJrpVJf`tDrH3s z8Vzmah%73NdNc%mT^qtov)d5%{CiZ=87XI8)xO2C}U zZY}zl?a2M33u3??CjQKpE zmhkZOeV!I~UC7E!@Calql@E(b+=9%!Js&-9n5}-f%d40OIG((Z!={X5ZY;}0TnO9D zCa09%;>q;PY5NTyHr8cZU=c`6}e~EcU}%IDfx|)B7Q&&fjm*^nS<-=kK?8vY+pB1YL>Go5A7x z9JvtAjrwag%43*aU~v#Qa#Y#KD**Ff3b--^z9=DiiXw~Ep|o(8td7YoY(T{X78QMC zilE3P6b#FDgfr$R!o(Q}Yh}uKh-@COj>l_;2PkA-41i95Fm*syO_5DDaSWox9i(FZ zfj(1Ydvj4)b||(*E~>7WY;KN`nnWcH;tnm&?dxUu2DBA3d{_kgMxk)nT*gA1#Ry?@ z2_s(Of1#K!W=s6VypIJ&pTV^YS20g~VtaEu2z!T!(;E^^rQCqXjW$5lr~@EJL$cY< z3WM=-S!vjex@bT@#;=%yw@$≷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 M3j0m>|7#ZbUly%C`~Uy| literal 32768 zcmeHw4SbZ<}i>sx*8PusOyi@3E`-`)P!cKh~MyIuSK&$)Nz zc_x_z(6zh!d*`8ZpL^~(_ug~==iHBTXH3^`yMrtu^5FBwKN20qo1Ybuj-CvFJ$A;^ zW9jQfFU~w_G`={qr7M;S^(5_G$w+soJ(5V+=}=oVl7_rHUvf2!(g&p4?eDE1<@)OS;!U;C?HTk zpnyODfdT>r1PTZg5GWu}K%juY|3?U{;J6wO$EGHE>2MuU*Ic3^DRq*jkc7xi!3en% z=T3jbNPEib4$V09vnvk&LvQ5M-+XIA&$+MG{QF=0;GTbdwd1jRd-CPemhCTlzx3kr zKO`sq?$&E+dXE3}{X2hEyZpDu54`{DmyRx^|(wi#RB!7AM`I!w>mloZ-#lLMrtx2GDp7DWEWt>^;pXZqv ztXgiW5|Cppds4Q|s##i;8K#>NG%foK$OWs&H<#NlL;KJJI$4!xas#-qm?m7+fAwfO zL*>b=a+Tj_PeDej&h0K8P4AGScQIL}JykSf-Bd1*ZqxGUHft2!0?@6Tb<=3FPM|fG zS=bmw?svLqkf-0XhV(lP?ZnUyV9K>4S@sObj;X3DvO~xelh1F@LsH_CL^4zS9&$OX*2K))N2KgcDW7#v5b8#8p389>Etb(*K=E4ze zI9+hgTp1(V8243ftj)}vVH;y2`P?=>nLH**jy(JKNbLvFJ|>G#{2P}ua8rv}B#U3T$X59IT`kJg80Yh=HnAuMsmgOk$?@~t z(`fMc=n$Gd`#jXdw91`V7dFfCAQBZ70b1$E>j02QJY4+ZS=q zYRz=~*QIk-CsWQ;*iK5Z^UI!9QZ*$YdsdKOM4qf;isoT-#mCR4fb3A9e|mg;080{b z{y=6uIuj=q995J~MRZQB-0sU9!YZfdkmz8qP_T&>yce@iLjkOxmRcTojl?-qU;OI>qR_B>ArizL*c4t!U#l(=&mW(~?A%RtWHC`|) zFf|x2!hQ$L989%Yg^#s%*dB}hOZl~`lg55+*lWgZ3HehgUWYk&Kb~t~OGa4B;bOV84UURc>OII%)+)4y#Hw z{>dZ9F~X_H@tOWqQbDdY!VvcE9*$lZ{2iN|B7=ds+bjHGw9Xz-g?v{EUi5?K! zawJ)tCr()w{&UK*u)#1{oYQq2DlQbPD)FV!|1?GUdO43n99H9BDAiq)wFMyP$+|5& zg{{3>2j-~p$P#ea}b0?yOz+agT0QG7CUXvy`;j8B%$bnL*sjm4bL9eL)b+PY3= zPu{Px=N^6V<}%)6UGqk^CNAfFN$*>{2)K_qvTxy@DN|4QICIEFotb(a3zOR6cuip4 zNAbnWQEjLT%QL@owwoM4GkBgkN8!n9=Pb0P?=l{Sva$<}c2|P6oG@PC zf68}@W^jbNMKJgtjki3FwK^xkxzWB=c_%9r#9F5h39N7RDEf|c_rmp-j;8m}yG7nC zm2N8My5q~}b|8;#C&Lnck#moPwltP%PtrHEj0tb;c`^CIkbc>(QfQ}0FtZ&SW^WmA zw>XbyEZ;4D{P#+X^~c~Nd?d+>$2~*v;Qm9v0|z-iTUBD@>W)$T2zQK!P(fe*<&Wht z8$8P4IF_G}w&0+=-eAe_SoWvTBFx3M(xJSRU(40(onU4|dE8l9gtIiC-*WDKO0`A! z%I7|)lXKuQI7m4e?ga#13dl1%FJ7N9t<5L6b$`N%cv;uSlIWL+WtM4@PD#*xapLUQ5F| za_4yubLdzLDcMCI+4L zE9Ogh>-29@4ft>yU?X8Ax-#u=Gd{jv&S%2PVZkxubINsjCwB$br&X7C;}2VxcP^){ zYa&E*{QE}`bNjbTu+tGl_^juVmD=SLBUXNGNPUi#e>|j&$IRy-wzX@TV0-gmwPmaB z14UV89E_>0>am{nXNQvKZ=A`~Z9Xp9lj!S)U#TAKmw`8=h95IWce^-^*;^x!#wV zHzUNrd3;YT?CEq9c zPLpNsG@1K5lez!y;gZ|DoId2`@+TyH!TYq=hcDLNLpoj3^CWGSv|rNCOZu3kgOa`> z=^rGW;OF)m{O9_86qEFGQu4H0nNxcE?eX^uWB;6j^W&~+B@J0q8Xge7*$J1WnS#-JZZW5lC`i1v-;d$v=Y2_jGFa>tGL#RhURf2j{ z>irF*F^GNku1iouZN1g{}VgQS>BiF zl7U9=Poe!bZ;_En??E}s>@ zQuiCn`PVe^432rsSi|#KQQoJFbuQ{zNGhM@HjjbAiAzhq1PW74Q`Z?S;`vMtdiR6E zgqDYOX^~mOBbJXiP`^qw%b%PdjU{YEQ)hb@oN4EvO#pxJiyr7!3~@3WBP*~rhJ z_g(P#EX@z=*~;Hu$}{MF2^7bV{0w^EGdl6@-pe7O3`TGgd1f+oH(h630Uzp6RN%M9 zb?~$sg&H&%-Kq49mfR0XtX*eIy?|w2hns_tP=f{|KZBYSk8X!#i2Af-DJ0LPgIbcU zQb8fCPu%-mkep2eiVB1vc@8u142o6w48jkOeYvbKisBLR+N7uxu%AP*rK>YMu{5Gg zc^I>G2Y>;<>qoj%kX$;9}xyDj-kn1#4-krq~PC(pF8e7c|f_ ziVE<2Uq`QN9(%z$8qb>*T468vB&9XQUeHLt(-hl%J&hOV8Vs=AH&U&p*zOytUQ=xM zjnt(mV!LmoTQ!gEzLAayb&S}y8|h`C)YvbfV?y0Ixi)Z_bqSpi>L$VE68deHdIjH= zm56J9I?&-QH8xR&P%JqW)Ka0|7R;KdNmGnj3w3FVG22Xinqtg0(?Lx!W?Sf}q6D)` z={3z`%r2$(G{u;0rGQMOw}~;kj6#}X%(l@YMG0m*s6|tZ*$(Q{6l1o7?$h-cvmNw| zrg;ACpw~6UYt|0($Ygz+cwM@jsx`%H&!?zGQ@pOp#v!>X7-Q=0iy1XqupP)ufvHcQsKvQf#o5suX z^S0Qphqfw;*nT~9SW|4j-Bi9%waNBN(m_qJ{Ze#7QDVPds>G!jdJnMudTF_)*nYj# zqA2nCUP=o!NNm4ex=&GJhhBP1C}oFUs$I-&4q`uQ!P%u%DBh3O8-4VgqOc!rF|MK$ zT9S9zYiRO$T<>mp!FppK?NAi1GCbLj zZqHD%hdUJS;df+tyocXO9=?VEN{r{{v%JMvL$Z|YM+Y)I*^eBGZIq?FY3w=J*Q8Cg z_8g$4ijsBr05z%pu!d}h> zd3<6yNWak(kM@hydVy+%M|%&wrzsxay%bm`Jn_LpRH-TU!9%oMQ#`&yv_nzw!N)*- zMkqDDL-LbDBDJ<2qI-m==ItSRB1X^Q9Hm#O+f=>ey_7WxWxX^Q93qx7Iq3f;%(sVud`c#OWEr8?Na$R8x%g*D16@X~tMTNnM&^te>POG{so| z4OOfZNx}LX6jv11$nEqE`nskV>!Vb;O0~&YKSlRxim`s0-cpoc{R~ytsWutwXK00{ z80%+ftD*$!XQ)powMIUJN(TLzKYx0Qlz&!Im3OBj)pE;^lvnLIEtvFRRtI-p>E79~(QPTS*JtFB>C4EZLZ%g_; zr2CB@AidrAG15+YQ_>1KL6#GrerM`DM*$UbV^JU zLUgE*b}DqOhy4f8K1XsD5=TH=#0V9{QACBr3l-AWxx_JJy^OAc_=)kxZ}sj;vg)-drb>* z%!8J}t(LSy(zx8ZO)=O;<)TSBaa3F)EuTxgYsDcs)rd=k6DN)^(^B^ur1NlQ<~BK< zXWS~S-6}V8^QF!6jTZt>SmzrrBP|gfBJ{(+Ppk+=aRMpt$r0%PZ^)k$80%SyTAkD& z=_Qh0mQD8>W1-gxcqUN94b3c?iqNl$W*}Wivym>NI;3^fjI^0{Al*)3Zx|6=J<=;_ zE7FvdTupzA{HN&{($CV1-t){gW|J8;Z#F+~-fiA%K4?B+9yR~Y{Gs`#`G3vv)^uyG z)o3+Y-PRs!zxAZ`wDot^3)ail53RSYUs>dt;4!fWS(ry2q+V=Ee&|^QKMP`h6yr{8 zES-(Hat`+O*Nmni>8qY^q2wPtT>h@-J4k;m`4wKyEBTRR_IoRglgW(U!bsfFd*AQn zFWN_{o4=e_9LA^=2=ODz)wv23~u>M*t-Vl zZRpL!NqiyFzr;P7Nsr*h%*46&e58-UmrVK^4$&sgeitDot?y$aSJzyQNJOg|-;>VKr0izyyQ%Y1~(7#D0w``lL1dfN^7k)s$ zgZf>f-(&TAyndJIH!WXpcl5@i7g9qs6${td@p!a79kUaua7R2&4b9PX>-^!oi=&BX zGS)8qVO&y`>SNMSB-yX%wUJa;v_m)8-QAmxw8f)}Y_^l>46C_6(cYD`6S1qZCDAnH zG)CE`Xl;L6GRBQkgR4nujHS|Cm~EJbGz&NFPPN;~c&rVqR65$7GxqHG96%U`)rsEj zXp;2?HN2WzK(nc#E^a5HTm{)Iy0o$F3gAqe6M&i;66t6%#q|1EqBljW``Y8Zso0+A z#w69*iF72ENUel5c16=W8&a#gd(!>1vZI4PT)ZjTZSRSy9LsVpBbKSIg{UqbjU>tL z*|{o~-WyAC4-T<1(ZN)6Z(BMU5#uqLqYV!RI`#Co*rHCI-J3{j#oQ1}5f^N-ZP-Qw zm$s7t?&4_Lp>^F&(MZR}M7-ZEng`)D{yye2MK$lEL`e}om z&@y^RPJyzFLo3TTv|}@;%#BnYbzEw|*#yF2la41`SbN3L2`N0M-~4rzp80uh{qjp> z-DPyPcvxQb7~A}HwX^1DDil>Dw2w&coE_{SprVG zIi8MnN7B)3SvCU?>F$XnqdZHx9gSTYWhF9`qdD5%n~d>-5Rcn?nrF>9wKhdN^*T>0Q>kcoTfDzM8jtih$95$g;SB4O(f&2Dcyu^} zOShnXEMmi%4T(-WiE)A%iH|5XB79jbG?O1uDg1+97bLzKi zr`J5*yV2@~-gq2t8pWvFqptdDvu^3am^$!_832OrG3!_JCW@^yrne&=7@rg5n33^& zX9rG&n|q?|0(Z1SA0r&C1QHji&JnB`pR&%~i0_`Rz_&{6l*Z{VhG>P;Zv4Y{D2SBW z5RFCo+v%P7?hd&S&X-Yev5V=`|i3MzI5KNZu-Ulx|sssxN66iDT_|r;+s_FH6{>VMd}q$ zukq?N5wEc!V^SFxtF$O&n5vQ$BGU_M0$G*#c}~bED=91SprD*f%O-(uOe6?9l~rB} zxra$*P73LAf5+3Wzi<4<`2YM+bl%S~T7)PkBk z7SlJj@>HSsqXpJZI^&FLMv5w(0i)%4V6qZrlg2>_)srd>kjVotE8$Ef|Fe8$^YH-| zR8}IDN<5XB>|!2d*`%_?K*}&V8Oupv;4p#%@(hrCm*X>GHqe`zSI)<=9p`<6zVQ05 zW=sgqoqOz!TmJT(ho-Msu=RU&mo~mq@!cuE_8)Az@=L#ee|GfYaem8fOS8zY zZEFVnKt#KYHrWI^)9+Q{8P8GX#E_}1-%Cb$S--Tv^~x{k>rrPM8;=cMZi-N`-v<$uM|0(n6X#&OC(s0AjNi+Atwjmf zom4uopZ%xA?{PR@zlC1V_GDC>%$+z+>PU&laPR0UAmitOTd-6B`rX2e)EgowRb=cjAK=|*7^B)oK#7V4!xme=6v3rHu`a|m?DLWBr?vACqLXmW+E1mAS zpr&T;-o0UN3V(>410&?SYuZy?kz`LzDwJ6IX(z|I{~8+NKX)R1ToSBD}{B)4}gpOXw4KlDtA|CYd@u`W>TL?uA6H-f*W&RB4;dwK&D^T0p=9C!YB&f>M9#XRHE zWTXdCMs^d#=4bCs8MO(Kl4JwtLk{iEt#HYy@||^dvOXSP4^ycyI2x63pSgdWt-p$M zH&Mv{mqh?B4BaMUdgiLgzC--Gw_)Whw-%qR;9TQnNku)ZQyNk+l<&&Z(ovDA#kkeKML3HA1N@dX zg1U8Rk56e))J~%p!YC6sp>dz>`pm^LeBM&0JEZ}i?^x3$-eDlI8k&ZY4@rw1kPYEi zFcCQi_Taq6=RZCb^4X71c0864s5Jid&;_{JtbsiL<6CbVGEtP{DkgiXROQ`}YnOHy zw;oU_NV4W(>8(egS%I6_%-DKlEV$Xgo5#t|23R`=ouX(XA-eF{lt+Vw4NoKPCygwY z^^i-USH`#peK|I05Katr^JBzqEyWG7)7BR0Gv#Vy0czLcGasKt+D1x;NvOvjkzrqN7?06L9){go@cn^-HAdNq(PQgnRtu(-N1u)_)QfL7p-rA;z0fJ`@+yL! z?CqobbT!r{1OI0q?ly*cHv2QLGfS~`8~6?)g?~}#%PRrfJHNb|3-V(1~zYUFQ=hlob#tAW%S{fItC(0s;jD3J4SsC?HTk PpnyODfdT^m-4XbI;%mc* diff --git a/bin/NHibernate.Mapping.Attributes.dll b/bin/NHibernate.Mapping.Attributes.dll index 81ddbd16a040cd696cb0fb784170350ee720b2f1..4e965a423d52f39b1f8e61d3e49d552153d00108 100644 GIT binary patch literal 231936 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 BJS6}C literal 249856 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%0ApBIdyX$XppCZmH)AvHoNyqOhyWIrYs@pvH z4DWVlx}!IDTnhKJZV#l_)7ui(!o9NFlj%P@KP93b)s}9X(i`f3b=#Ugo8zCVKI&#$ z-NdAMs&@C<8I-TXGUlm9-Lp{_r=l(vq0FyEdnoOmlhIRM*d1>OVmY2;NW?ctj>C6= zTH=cXiTFatK*;uZ%YLHD$2;s3@r{XdAeVEPl^o_l4)X|yd6NA%u>Z5{KiQ$!E_W!l z84krZ%c0orVE?<=e+m1qWSCHaJd+6Si*?%zmpU(al#nHW!ZO7?${{U2ffN8_o)Ht^MF`Ren0bqD*r&OUFm&%ZhR`yBqmcq-vp z3G}RM66jgiCk(_lR{E)x8F~1ILOJ9xm0vv%-^#cR?i7@E9^Sv-4L+mQagYsEKlpd% zkTp~vxErxgJ2fn$7vB4RQbHkQLBe#Fn^^9Fd>~A#30NFmV7rP5tPG`B8UKUMve)PKPW?Tg>iFEKLH1FNAzQVLH1PLl&iNV)q`FCXw>n2okAcS;%rR%S|lz zurx^=hGikk=`0sRwolx|at~xtnn~u6kiF6h**%@*VwRg&?qO+CDCBgOi&<`Bxre2b zx>F5EYzTQqVxv@wxhLF3iPPaONLb81o7laFrQ_YHZcc0nc~`bW#0mtt!OiP&1xT|FV^q!mCeNGs^TDS><~Z4u=AX&WIwPiuG-`S*nU zE^QH{PTvSwFL5_yO1g9OPE{wpA!KHHL6@B>H+?E(r}W_o?W`@&?~&g5-p9S~dsVf(YHwHjy;}3MA?YurI~nmA zSsAS|G-h*#=5_cRkFTF4;EQC5_<~pxzND3muSTWd3s9-hq-ppTQ#wBDkb&f>7_hoM&=3GJGRuOT$THwhZ!ivms5)rjd@j8r!w zruq1K(*kJbJJH{lBgO}ypI0N+_4p#vJF1;}AF+RkFBvK4D9lLmRkG7rRdc$iI!;&B z!0D#)obIZR(?gx;^i-!g$KZ?cz0}!GA9ap%tSW-`Eq0E__uo%Yqnv)~Jm}%kPJcDV z8KBO0PEr$`lhtJB6m_XH2-3SsILafxs2@P-tF*A`qOwfd-bwAGTjft2xs~6e* zD$93R-j+n+7belwryD@-%{vR`#P1vTYu}G#y+!H&QPmx)uw7`Dy3u(`+t`DtpBb$ zUW&mTPq>fGMOrmVNgbBWShix>y&A>Pm*qf~zj6A{P9y(w(Z9J zmJ3-fWogU7#%Z78&b7_yI~=pksr9inWqo3&VRAa9a9TRm%eCp0&fC~0JcaH$T34M? z`y|V4)xUuI_3C>e-L>{FzWM>nZ>!T&ey>jPr_`WYu;o*$2KhIxLH_PqKDq|Q-<{>j z9A;O&j&VwTS&zd1#L}tX9X{^T2v4)S#oDy_Qac^@Zmv&Hd6lJY;UCwh_}5jRjjQf^ z>omAM#3%e&(OQ1AHsg+eYXd5Qw;IsX!((=bboa+~)t^PGY}&%_avG3t@479U zo;y`L@#rb>36M*(sbubFxq;~EStTF3aUC*Rp(x<@+puV;R?iLb`ia zofeeZoEFp{d$Ic*4l|17q!t}e{_fsnHKgrR7o>E?Rok<|a~hr_w@zNwVi4}NDVd!> zX~=F#Y0G07t!CYADO!6Af37XzgHe(TT2jiFwxk-dBbv=ov@&s*yt@W{TH;{oH1~5~ zuTHwitu6oHGEc~*@((XPw?45Yc@c-al%>0;&&j3IaMw|ItGFV$2=(rMiVYKO)UdJH z_TY}$t%q%FHXiGCYu6v+FToRiqwtMz+nPG76{U78%S&2O4bEvrC2$+dmF&Nk<$Csc zfu((l?Zv%bHL~Hr(Tw5(2KC-yW$JgqpJ=pNJ zcUwK*q&1a~&4s&c!}H~CU4Lb(wj*`8zIBf*?(xEoAa*pdBa3^iiKcUGiG}MfcgY-B z{Ty4X%;S1_phMFHrAF&q$aNj4-ELs{N{4pvd5hg2b)Xvjnx#I9+%=A(cHZnL3V#&) z^kR7u`;@Sp#`0E{53}6H@&lIcQaX6K4j+}mTV1q~G+LjE)@$7JK&!#*yw~==RV{j< zJj0)UDBHZo8kN?m@%UP}gH>uA+==+#!Adm&?o|Bm;7i*{a96{s)xnB21@3hCIasxN z;jRup2P@Y!xNE}C!3s75?%MEku!^k#cYXLdushX)`!M)9`1*4lxR1c<*1@W_9^9F@ z?x=>48f)9b;cfz{vA#VL?xv6$E9Qo9H)olPRj|ftmt-EoI#}^Gfx9)rI#~5Kg}W`n zI#~HOhr2yi#|~D%E#N*1Yi|D6>ai0TQax1ty;XW9xS$4&J8um<*J#e3cHF*cP zkHLKoY->lu-5d8g__i#`<8YtGw`55kkMHR^u$`0ahi~L+eC4$}-2D-UhCPnt0L0;7 zjo%CIlM#o5wSFJCPeDu?-!$zDpCOPMYyW<5pAM;E1LzO;nUEUa{yYipvmmu9z}*hM zz&Q}^LNy5PB9@~NlU5^HmLMhvU$Hz5KBLu8xW_2LfLJvw$0W<~l~4!Y zY$SORo}lrK#sat};|W?_!g7i#hR>yt8ecIS3HRlY8ebSJfqMp|#&-fo!#xvHt1I#S zO9$We8w>XwJlTQuVjSGp;hB!Q9#X5hur)gB21pIN2HujXZo-otbu*+^x8NI(THT80 zV^0iHt9keeqoZzz)UbhE2KOB-7s7_FVG$v@2q|*Z-7J?NMOrO}bksdakycAtF2gqk z9av6g!)FC7D~`GsQmgxrQb(QP9I-J}I@KMtw!;k!HGei~B4Rq|DRtC~kXpTjlsf8VNUgRbrHJLb*{zRT&NOE?<$AN^dbKZs9 zu#9td!N|_}t9$R;LDhZee+wQw#p{AT@Sp>cG7KQmchdJ-F|L z)aov$0o;oqHLQMz!@U$zt9zUy;a&!*@p{;XaIb*W>RzW2-1k9hwbE$<_bN!O9(J0- z{Rkv_kkcIQwUFpRP7Amng+vc>a^Zd)QsXrot>AtV61~Z31NVBT9o$c|+~9P8dy{iC z{GWwHZ^E}4(VHN(dLCbDbktTzt+qK`;eG*9tCyYbaBqjyYKPMk?pGi+eq`AT?$;nS zESP=ZegjggH=X0)ehX5ox1GLlzXPe&znp$>?}S9pa{9ylE+l%Ea}wOUAT_?9HW2P+ zkQ(1a8w7U_q{es7PKCQAq{f%bPJ=rSQma;aDBNxIFt}T@Y^#UE-9euX|Dzx^z8Y2l zcRtH5x)45{S$5UM@bAX5haL(4?vM_?gH-}|PnNy(X!!Jo)cBUwSjc1bIQSd~iP24u zhwQ7%;Bx{bPAKSdxKD)Cs=vMv?g5ZmountheKMq01N9}4r|2p083d`-5Pcckr$K6U zx}FO6P)M!L(9_`_2C3DV`U<#*Luz%Fz7p=UA+>O#E;?h9C6gcqVaY7(SY7we^PUjnJsWW5aTOYtgT^lO%v>HFZmT(5%vR7kC+ z=?CDR4yn})y&CQ-AhnvMABKB2q*hnyHE>@Isqqb=b#Tvt)c7vYV{l&wiC>lJC*Yn7 zsqu}Tr{KO35Kkm%9+CAgPCqDSlPaIb(wkJhiieIF!xw0;e8m3{+0_d{aD)NesPsNaFl zYDkQjdMDhE=y&0MnB^M13+}agH~iN@YJBBm59DL|Kk#{+<&*kj_&foLaZ`T^_fss_ z>(Ak{f#oy$OZabuM6cIh!M%y)b9yh_oAtNw-vS8@@c-KT7AU!{>dIU7Ua4D>)v{U^ za^n^%VQVbMblbA!*v1&#QcG52{j6?TIK~v!Rj<3tu1~8zYPB6gb%5Xi9$3uwzfV65`ey)P z0n({7EC3)ZK-vR-zrZi1GoXAy-~;Ia(7z<`E9teMe;F`kzM5VS{6T?VOK$+>>jJ-- z-U#|P1pZTc6X@Rp#N3+R4E(!*m`~GNfd2px^J#i3@E-zVK247R|8e>P;6DPy9Gcz+ z{HFqcmfjA^zW`$POz!~x3&1qqq<$grUjkwdP45J5yq&;P-o?PvfLJqlmjL?SrJ!U0 zv4Zf%fUol|1HKk8h4*yt2EJb42JcExh6JALT?P6^K-_rpt_HqY;1=&%P#!1neD6BY zw+bBbt_S_`fN8uf`f0#N0n>Qr^90}%ynUc-2TbFQ&HDj&csGLbM8GuOsXPUEk#`d) zI{~qp@D2mtbus72pQ|(|8MP4fsJo*k11x@TUX9_IeHAhX7%Fy%zAJ-V*R5fLK#_%fOEb zJnr2M%Cx`}-g7{o5qOLDT+mMf!VY^Yz;6YF9rm6F{5C+?VebWiw|g%HfzJb`@#f2y11|xl@ixm>0N&}n3Y0Qn8tyNX}z}q z{*L!HP@W42d+WU&aK(EED8CB`56XKd@ZST3@8rE3_&tDWywmSJz+WWrCEj~Md9lEI zz4w9s?*ZXEc^?4&GC+7u-UordQs95|J`BpM1ir@mGtmE&!2jZX6!g~trtsdiKL`GL zfp7Hw0+jzM@DIJe0{u+_-{Rc|`db09`tUvu{Eq-(KfO-?e-|KD9Ns5^|1ltZB=6I} z{{#>|lJ^-Zz1NR^UH)-vZ@x0zdD42lRgg#LB|^F7Ph^ zrp*_eL!5%>#l zEhrBOeArtL`Y#0Tm7A&JWk;G{>8vY{7Vq~ zctBW1|5CtFe+-mufUt`GWx%%srg7hCH}D;RX}ta7O5hg)!V>yd0lyd!`zrp`z%K!W z4fL-CekmYqpno0kF+l9G_}2r!3=lTZe;V-J0`#M!2oP4zKLPxR zz+?VNP;M4D?cWOeae*`bZJ^)c-ww(NKKie;Xo)=i~?*wI5V9~FD9tfQGYoN~o!q)kxfG-HV!*76cr@)He0=+D->Mw!5 z=r4m(6L`wM8+hG+4(JU)SU>-{z*~T@e*OyZB|vzX{_}v}4G0g@e*y642z;*pLQsB3 zVB7zF&{qKAVfrrye4c+VD9;Ck_48i}{PzH1{rr~$zXuT3&wmB*7XiZV`L6Awc}%K_nG`mY843P5<6{_B9h3J|MB|MkFM4G3@3eWc$oe>fxjIP9;W|p;O_uT zoB!s&2k@Q#dqH^@AS|T+KEOZrKLE;m0I?_Ie-QA!{)a*N6F^u?|IYy5?|&4O4*;gk zpZb3e_(A_KK=}|Ld`thYfd3CbSW*8z;2!~mZ|Q#=`2PfiMfE=c{9}NysQxE`|0N)- zsQ+oezwti<%EtwM!v7p7e=G3s{Lh2_NkI6M{{6uJ-v1)-PYe8v|0Pg9EASuuuYmqJ zK-g9PtH3`m@P7a6pnO5#1O7Kb|DwPz`QHNl%YbR~75_WH9|TOBulnBw{xv{6sp)?o z_%{I4=9~Txfd3O9Y^?u7;NJ#JoA3BP0{+i{Y4ctGC&0f4m^R<{e+vA60m3R~eg@nF zgeA=U9QXhrEMev$;A;V~my&rH_G%y_^z0%BJ=gAd)CO_>2uh5_Lj zX4V4Vl35S@Jb{nPYyiGBvk~<30bvO1>TyO2K^ZVe=BnW^xFX86J|~V z-k!M?lxG3LC(PUi{Mmrmkd=?O^@=OkR5fH2LOdj|gAois*1;B+&07?lE{$XYw z_?>{TlbI6m3Lw_znLB~k0O2cUD!@+(Y-DPn)CD#(r$BE3!dhk;fJ>PcC}#lSD`u7e z@5(HLayOvg=93is`!vpF_=ksRLy82k*S0J%n#$5%dmgbQ?RUcx_!NgRFT}GL_YQ7naAI>i>ma6mP6U}D5G}~$hjqzf+Z1(0GK}0%xdUJCts4pMO z*Yg#Z<5;~^DK$%{gNb@QzwGFTYK1$&MPR0?#o)~0e06!IM(9#ZRTgXYW-MHEct>F~ z%Zo84r%#n9gL2ReCdy@(rGu}dXkq>7wNiDuSx58dm(7t{^FXatEecnMYWd>6TDcq) znx$IRm2#-mXbQ)U^z=ewU%s#qW8grkjKU{_IhRODEpMx!`|_C{-~o;<^P{$Ov+&&C{wgxSptji|N*EA;}&GQ>>PR5>J*I1)2`nrdmt|qt1#KuL?h1$d~i6q-a*F z+?)<#RUE68mn*gU;zFrW5e3#hOpJ<9m*bUALd_kYjs;pSM-PP^8w<`5S(|E<)jo}b ziApFjdfXM?VPhi09csEusHUdF+(~ZjzvKC(XH;T_k$o*g+7;15wUtEZlF>-U?Zad# zPlGvKfK_m*w8`D7dlUn+0u3k?qPbvStI@1gAhvxALE%m#Op94c^kT;#nJHDE!1+q7 zi?qs4TY9vr(}JP742s?Q*fD%zs6d$x>Sz`QOx^6O2MJ5nT|##&6V|ZODAelZ(yWn3x3mz{5o}<(tK_Au35{Xi z5M_CaMy1ArQkxVi)d@!0v=&KXh?06z>LXFHu!>lDGg3mBMH8Lo{FKXax>^hhoWqKk z+^YcwU%qHgEY8=Vw)Xc(?PR{xG%`t!YUzkl0I#Yxy%QE8WLUL4HSbjW7!m|j|=W3CCD8pBD zU73S#$H~4R{gNx>8wK`fM|x>*IM=IO$yb6v{`ZBs8EJ9Slg3Hf-a+b4H63YNq8eLl zNB(5c(zq~Qs3ETD_JyH|RMhLb z`Emo!_M7EvOD4;ncQI2k~ z6v(B9WEMm~t|cx9)PA0}O{!2-Dsfbu+DHs1IgQc)1yxk*$P&=_FvRpOEeq>UgJS66`LGBgY0jCj;0awb>16V8R1TF|gLd5kKDbXf_2-k%e zC(9_ID@NLswnC^DkI|EbAB$Q~8M_cOM4_mMk`$)d%Z5+0;mq$sjDzP9N-HX$gVdd> zPf8&(wJeNEcz!#E$LPt%9c2&fRRLRE1f3MJ6R8T(3N8F~Wk$_65hjeeW_PqN8I-iP z0pYJJ+%lLe26K6=Im6YzI{D+Sq=q?|Z!Cl^^g*aa?M!%Q`f1ZSF|Kg1MRdUAcEW&q)+4yA-LLn?!R;ntD- zoPcGPT@!BmsNW-WUGAy_kNGGxsuG1@XiRM|TmUA6*e2BMx}H@$+C9)<=W<)Ax(n4A zM`dYfg4kL-PCz>}s4Ggvxyuk@v2}DviMETvaANyVX}VvkxH6`c7(40+OY6f8H2To7 z1XD%L@Af!CLSn~4(}epS8i*F*8ni284QXAL7OO6~5RWHL#&l%SgwbRt?cvO-DkMQp zABu3>Sy9EF5`uZNVd}LoQIQ?xBw)R zOx58kKnTh7w!IQHgKhq$O8`Zhe1ayjIzFus%jKL+5lF(VedD zSeaA$Gjg?!U=xAoqbxgMeTmqFvIR2afVLbbk z%@|!Lb{8wYSf6|{mFZSTcSh%MP8I3N!?gX1L{z|@Ntl)D)E(J5_4P?68XB|zeYMD* zU`l;zy<8RtoG;UL0X)?5RdS0YgEVu>6CA+tmxFFguKbQH=J<5yNrb5A|MPS>37 zv*+@&TmoTJzDGLj0m=^jY=G23tK&>0S82(fVIx{o;R1lW$btg(nvv$~RaTUw)OijQ zW>tEWtcwH7e4GVc=lv6Sm;4!LEYqJX%n`4$ww4mP8&$3Pncz0Do6|BI;3Q2Mi)7DG}B#F z7}+}~w_jt2Gu^pk30T5m)jsK0i^u56X2owm9%$i=PxmCk)eAz@0~c}_4!JP-mEy;! z`RHPqjg)~HIqXuF3$fd#v=E80c#Q6twUObki=fq&%^}{Z!R8094mwf}8z4Bu&_^cSaZ$YYgNsg4 z(F|8w<-A-7D(J2ah7K^+qZlg@%oP)oBxjgVaLv$>7(t1|E(>mY;VRPpGa-`0Jq1h) zI2MwI*xPH;L>tKEaf72IH>G227xmz%ET@;TKrBfWtNO-b9!;^QR?$V8Fhf4P^W|#5 z9gs!?CqZy3$PpGEJf5=mTgX=jDV8d{xfM$kQo7PaS`ii&yX?iZyt1M@QmWi8n2b$! z2VGiiE;(=^$zvPEs0ka0@g)b3G0r925$~$&kU^pqCJ~aB#@gdhSDIrr;w&sfxQO8{ zPcA>lLvd-FVA3$bCIseA@uoiAW~LFB+xn|fAVTap&twTVy>S{}HpgpA`>>bVmh7#{c@B|e{ zXSpR_G@k?kn@+qSW=|_;0_@4sPF3gkwn}9jEaRNDUJox$MwdQCom_~L0V7%i1sDYw zBla&|7gKZ*nR36>WE;aFIn{`FRWyDRWW8aTAQe?oIxG`0c2p*a(Ev|S!$QKb9*-ig zXnjnftU%(VFjeffCi28CY`PNSW}%y!tSx37T+*0*=p;raqGv={wi`{hAu&pr#*Hra zA4+osTZ**@VS;EBCR@P47?)<4Iwrb!tSvjTUGYd;QP0RQr%Jp>uI`8=pDNTI8ADFH z<1MeD9C~E6B8f+Zxgv4K<2pqhk4thJ>QFpEQm{P|*z=jd4*#j69Q-(;F}SNxt1pKE zTrZ$ukTF}gX+azhwK*K_a4YtohB29_&o_7_!I2NgoBx=2h*5v zqHy<3kZ~~qFfVt(;Zxh>Hiis#18rX1BnZ2Pm!{Mjb=euUF>Wx()PP{v6c=F!rK5zS ztdk%k48+)wK`81@UW~WhPP~tvCklx7A|kpq)s@q&g)FIu27(;%)KPxOQZEgW%lA0e zE3`0U$dp!F!bWHl*DlJ-xD6|h76HeN7w0?M>T!i6zdVi0;oVW#Fb%@lvOAJTg}iYm zern%TeIxeO7MJU#`2}}j##oN9sw%eP50Tjj9=_m=pqrP;fDhM*&)gk3Q)-q2N8Wd6 zn&sfKZ~XbHjw4d0K;!Eee5XtBpyerqQdwGi90EHdSWKGX*{X2ZEX|h6=m=M5gvtHg zDCC}(n90{+DR3Vtd^m%9IxboCctmaX4vfY57QF#?<~dbuUU`K%Etei|40K;7M&ETZ0!SY(!8oCxFLjf8cv9LvKRFeqF%I@V`u zY79)3l~~?+bJ+3E6$1*LC>Bk@jpKJZjK{akGZ#=$tuRJ00*kmzl!y7ebbuG)3JFZmE8%f#D}N1S)cK zj5X-PJyBB|25TF3%x=RQ;7T`5i2UeWc+Pi)3BaQiNCfte7u8EaxoGd3NuXhBi@E)$ zS}>0o&D}Mzt4#%ux8mj)#e%-WU~il(;i(8*iBM!opHeL7)v}07seG~Hxh!py@DNEo zywbsvL++Ill@#`?*zPzE4r~TC-rz|fd-sxEd^}&pGk0i|o}G~&U0YA_0V3%tam8T- z7WpWqa7D5uNDD|1SxE@pC;oZ9z8vfJII&sRB_1ydg+rZ_B`*HWV>w*M5*3a7U0{`KiWXUMEFpvCKs!#@KJ}2|ah{B7JYETK2nz&inn41LtLt2_8$sa1QP~3M+?u zHbg_6X7^52ag{+k7z;UhD4(_f*Z!z~(kD=`97Ka1`dSP7A7NWjm`>v{ zou$l_DE?CDf`q;cG)B~b40e!QQ2Z_HUFD0#Sjt2co{hs!6Nd2V5*}$4d9d;$!O|gi z&c1RD&yy^1Tqk9NU6nfC3QOjB!5l_IcoN1#f=K&tsAx@$x!q!!t}uxju_WFK!fh#zlnM;!L=#W#$zywGfB3$-U?0sNqwPY6jGt)~jk&I7X7Q%n z0PnbM;?2Y*yo)w#s(4c^LwWq$3kdGa1Sm~YM~YdzskRA<$vg@1W^EPWGX68(JU$(A z8tKcRF#c}5wbo>wgZI^%{YS!7dE_r6wt;sUchYv@eZNb1Z}BB~+i|ulwqZ=8Gl!OP zP`C=fT@|&Hx9+kp!n=-V@J8K5#P%+odAdt7C#I3BA*EJO?xfU^2R4m&_?DwG$%#^u zt>~TGwD0Xz**IQbOkvl16lND^j z<1*gb%)Z8hrjSNb7qZZpD$?BzDYF!(1>*=ElO9(+qU;Njx(P|D)-}xn8qFT>Za`Kf zpGU34YJhX#>WqXILT<@(Lv(K3nD%>YQ;JAVMXTZ!*;Hp&Et|#Sv|1JzfW;zc+JJv+ zrc)Q(5)B*M1r)UmtF1F3pH8S*zWRIn#o)IFak!Qgkb`38AWltZ(W0|UfCHRErXu3s z1w+t6UdqbK<`gJ229)C^CUti&UXna?E5{W02vAQGa#mU6F&u1W}Ri*DKjc&gFmAJnwiPz9wj#*1&&D4&34v42TaQuLmV}mkTI!ko$)j#1;kMM zQ(Kvj=7KV*ppF{2qfA&L9-BluvzGcN6V+xbU1|)=LF^_SN92YR*0M1poi%c--G!Lc zNW8Dcq>MV^Dkg{ueFS~a?3DAi5#sSR~9QFu7R7O%A}G?4akn5G2zj6rTO zJ?e@jZ;>8eLd>;uOQFXdSW&Tu%=)-Q<;QYK~#<<~@w3#fsq?gBNno&7+$ z>m*5x65+VuSW9I}&``4>u8#)&OddFSV!UDuQR4F`WdVKN5^3eph5$JeZ5d%c)nC?6 z9;wkqlM)T-Ee*3tZQB^i)j5QEPdSNZqxW6!n2j1knX$LcMslGt5!Ch!=q=Dp%VyCcp*iu7}={OvNFQVF_wQ%lHTWH(sr0q16Bas?Xm%gN3m}T#7DMOCb zRZ7YBb84-%j^;u~)me!>O&N0j(0)(tJX;#hSj>~!YAss{eN{#7P`@_c0nQo-yBNRaQG;lY0Rh!Gv)Ju<&x|7qd(+CTVrtrq(-8hjTe?c|+y}&MLGV zsV%N=**hT>{+b=rZbou6?Q1*EQz+S5zSxYj(b`)bA4WVZ`azu6tKbEiC$o4HTyYUh zi$k5~>~A*PnJLEAC7j=EYHC=&nKgAmGNpQ8v{-e_LCHAE+|F^S?a8=q%}d6+(Qf@q z)r!t>pIXbY!qH&1Hqh=WbY}s)P!2jjo6Xh+x*k(blRjxQ$~Lh#SWnbH@O#u=m;u@d zSf+u{kHrV6XUc=_h3yyKih^2j{5kPbO|yWU!gRT^ zjIdpTsVeJ4%5=%))^V`06t2%FkS96t?7G~R#X(AkmILw0D9dc?EYD3xh+V$}jne;8 zH+L^57f?3`isQ9==x6b@rG4O8ofr;7PC>Vu9VXR^x89Y-WmxY#S+tbqgG)rFx)^1t zgTtlp5zyE^F0|N5jw|cj%Cb3gF&DD!w@f0bTVEVRs4N}8jIL8CDy{4w#D>jf6s&$2 z-a#14vtPC(Y{g_wbzufN%5J?x*x~jCyPIY9YT_}Ju3o;*1h?axulLWOy;R36A_H-1 zN`i4A8Q&711l?u_8KbV5V=XK~y z>#k6LbgN|@zS5P{E8Rv}7j9?u>WQQl>*TS38p$6AB*jE7xckH&R|(KTqZ6wRI0qeL zDb_oI*PtKN5vHbDNXkb`P^aCMy$fkMsxoTwhR?s{$Q zjYDnX$~WF)_l0V&-K?qxPP~>erN>_0IJl&Os1c+j$*uZRZa0FhY@iLPt8_+v@*~PM zh7a+L<6kQ1B@Ozb|EiLx9TC-6Bf#NJOVv3ATn8%W)EZRH4k-0f)dtz&e7i`RCgC=; zeHsHWzM8w8I&ifrF>7Ky>WOEi&uL#+P9vQ5*KAr@$Yc%R8qgTn z#Q=)kgMZhcx=rV?I@E%Q^N_y%4W@5@L((Gva{C)dTgJa8{+(f-J(6b+(XyarX5T|l z_SX!z|GT$lcpJ(A#&Yn3q@)1fwl3=p?-(8&9vL1%B+#8}vtAkmkk(|=L&GDZ{K4<~ zte+abgb9ZSLwqOk4cQFoJBJT3PZWA4Lqj&M{gOm*Wmh8Ylai6oNCwYga3GtO+M^Oz zZb%eyFq!9N$>3-**umR}5+xl=gtEz;ellnh!S-hp!Id+KVEY$|;L0B)gGuR$2qIZt zluUX}BG~@l3`S{Zl9BIE2H%{kMt8WM?cS;*!NoCW=|v zlL)rol??uMBDiv1GMH@YigaA0AMFPdiQ9jW48AfMd>MmLQ!h_Mu1GM7JU1EHOyn#k zBRdp(Fd3Va=*qJbB_%^oN#tz*V>0-WWbpqcf-CKd_D*U(U1 z10$0f8Xl8jzI)SEFj*rk?Exw60WIJG$qEuu?i9#0E9LZ>b&~8JO?D3hD`g3+lwpF` z(FCuP%=Zw2xC=yNEfSn7>Ce^l8YpU@D5=jCC`m7pq!(%IMMA%bEon+inrumvMYbhf zThp~AU7Petp-(D(Qs|Q~(JL>>7z0Ra-A2=|MKWMah96q%YgIni^Jn<_AraHWFoLP! z{q~3U8j?{{IUxpncxo8P@Kl;nqr-1eC5>mxEfS6_^zoLXoaurHJkCJwlFYO ztu67zz4#QW$;c%S_`>+Ko8Pl~mY2tcYAw0R7oJMSIeF_TKBQ{a;6^83eQJjAU63Gp zZ9L0l&-7>#Gc|CB4UcpRzjyHUK$0DoL~I1J_m;>2+KicX2vYQLNmKc$^8N`{@#IHe zohf);Ux8>c?84E(Y--!^&Q0xii}2oyenl6i&l?z&fw^;d5V3>9?e`A1KY&i#HkuwB z@P~JdZW|q3lQr9h+aF$IWKz$VG-ma+#v9IH>K;i;FN}^353FG#`TuQ0MCl@>htP#X z+lIix(BL4HXxk{V>=+mxL@R(VqKHMrqZR-#pa|2ahK5v)KiYo5z%@v_@)SB5Kz88& zM}x3UY?l20*l`gcRPfz{10I+k9$^DV(JF{(5C(c^U_cRALj1R8fQ=n(|9qhRLLlu= zJvyczRSP>4{~K1-qc2p8DDe$(kqoXI$XEfbwdi2`-2=~J=f3jM@cd}f_F(WaX197| zS$_UwD(5j}daRAGEDsN?wW3$;99A28-^jo@u&|rjpNK`b??cxOo-?q<(H=jr!3Asy z`g`}l4OH*%J(_ksnzX%|ZkzRlfsOsxB6B+jHlHn8`5)XqaPHYs4UP?LJzIQI8iVb( z4%|w4{P@wd@zJF1C6CVWf7UcscpKTlFlU&^chd9@7@yOrOt%v-)$7)6YTv(;5{8jp zIS7wHs@aAqf&W>X%5jc4fjLnije7fgL&Gcg3~`EGlxO=n9rm8#4QG$h(b2whu*{5{ z)5qj39cClGL?}Twd7p>Lzah^PkHup)q|6{5an+||4MTx_L{{7bOqsljtTQNX{^CX~ zK9-JI6^|-Pa=ZzxAeW?tjC-Cs!(zVYlZ!%J#N&%n7#@n0XBZ_=2;UAbrBrKpdxO-2 zc^8ug9Vv{rZ~6nN;R(11!|m_DIR*|yJ*4l0x~cs`Iy#s=Ay{q<3}Q-zPdA}c;zRIP zhOY-@cmj0zU8%Kjuvaoe!|jKpkd?JE>7OsjS2i%^wL{o(7`k%cd~_sxi8?ZZe>Y=7 z2Gah?aQkQAVhmMtZsSDEA5L>%b^k_K?06bfyJ=+$`5PS_7(nGu*+xFoqnqeaU}Z2Q zrBXXkZz{u$59z%t#xKWzS6qJiZgIWNJA@}c;ItI8c+Fl=&mOw**dc7gJP}`hJnKzY z>^8xzizTVmaemW&5j5@jhf1?`+)~fh=CaXE`$l$Yp;TDN7V_2XY>;iS#%3*B4Df9Y zT$au*??EGrhqSWu`gx)tyD(cBKT|1Z!wa?9VtC8Ck)5m6vyO$VHf=9n zezhA-K$FpEsMH{vZl1v4O!{#r>-j}I0UupKmsjpJkn-F=<(82CjT6t>Q1Uk$OQ$h- zKTmzKTt1BZ!bUz85(M%UF2+8*6Xk45marOHmB6Y5Rwb}1fnPrfq|CWs`g}}vN#13$ z!QK9DI@2A*zh`{J!?#ymuFv{=5V!@$BsswS<~Xn^a}-B-Is6_m2Y~bM!~PF`$*l~2 zBT~OCslWPBNbKWC3{$$lNuc;nF%E+2D2ErE@o*Q8)_5Srzl$W-3}Shqsv&31_Mk}; z;ET6=P;d%7=}iZo5OfV_Gifv38>i-0RK=8zl+vQ}PY zw#P}`hiN>1iXW!(q?#widQCu&_IV7aXVN@x=P|2263xcW-L-BWGVzF&<+3E^b=TSS zXfoSz@XGV(__3+p%P8Q$&b5d~uX+cf*FkAkjwvt4u@?XBMg6?)xLc38%nfE^BqLst z;>9+5w}O4ptHg1s4UQK6islK(Z~KI&;P#rTJGE!J-sL=!BVl8%G3#S>+=4n{S5{Fr zk6~^5t`Hr7SBbx(c_Q*r<9MK`&kL1ft$XY|jiYSd3NU!uWee&!g!1Phy|QTAB4o&m zBlGA>EDc28c#lCZ;ffpaRwb}1 zfmI2tN?=t2s}fk1z^Vj(ttId-&zyq>-0sG8Xzbb)M39L$BRRXILSe3x41Xd-m WDuGoAtV&>20;>{OmB3jf@c#gb4=qpt diff --git a/bin/OpenSim.32BitLaunch.exe.config b/bin/OpenSim.32BitLaunch.exe.config index 70d179f749..61f0859c84 100644 --- a/bin/OpenSim.32BitLaunch.exe.config +++ b/bin/OpenSim.32BitLaunch.exe.config @@ -19,12 +19,6 @@ - - - - - - diff --git a/prebuild.xml b/prebuild.xml index 1320ff3a21..030ea1caa5 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -1867,11 +1867,9 @@ - -