aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Data/MSSQL/MSSQLLegacyRegionData.cs4
-rw-r--r--OpenSim/Data/MySQL/MySQLLegacyRegionData.cs4
-rw-r--r--OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs4
-rw-r--r--OpenSim/Data/Tests/RegionTests.cs8
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs4
-rw-r--r--OpenSim/Region/DataSnapshot/ObjectSnapshot.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs12
9 files changed, 25 insertions, 25 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLLegacyRegionData.cs b/OpenSim/Data/MSSQL/MSSQLLegacyRegionData.cs
index 7c176c7..7d017a6 100644
--- a/OpenSim/Data/MSSQL/MSSQLLegacyRegionData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLLegacyRegionData.cs
@@ -1017,7 +1017,7 @@ VALUES
1017 prim.SitName = (string)primRow["SitName"]; 1017 prim.SitName = (string)primRow["SitName"];
1018 prim.TouchName = (string)primRow["TouchName"]; 1018 prim.TouchName = (string)primRow["TouchName"];
1019 // permissions 1019 // permissions
1020 prim.ObjectFlags = Convert.ToUInt32(primRow["ObjectFlags"]); 1020 prim.Flags = (PrimFlags)Convert.ToUInt32(primRow["ObjectFlags"]);
1021 prim.CreatorID = new UUID((Guid)primRow["CreatorID"]); 1021 prim.CreatorID = new UUID((Guid)primRow["CreatorID"]);
1022 prim.OwnerID = new UUID((Guid)primRow["OwnerID"]); 1022 prim.OwnerID = new UUID((Guid)primRow["OwnerID"]);
1023 prim.GroupID = new UUID((Guid)primRow["GroupID"]); 1023 prim.GroupID = new UUID((Guid)primRow["GroupID"]);
@@ -1408,7 +1408,7 @@ VALUES
1408 parameters.Add(_Database.CreateParameter("SitName", prim.SitName)); 1408 parameters.Add(_Database.CreateParameter("SitName", prim.SitName));
1409 parameters.Add(_Database.CreateParameter("TouchName", prim.TouchName)); 1409 parameters.Add(_Database.CreateParameter("TouchName", prim.TouchName));
1410 // permissions 1410 // permissions
1411 parameters.Add(_Database.CreateParameter("ObjectFlags", prim.ObjectFlags)); 1411 parameters.Add(_Database.CreateParameter("ObjectFlags", (uint)prim.Flags));
1412 parameters.Add(_Database.CreateParameter("CreatorID", prim.CreatorID)); 1412 parameters.Add(_Database.CreateParameter("CreatorID", prim.CreatorID));
1413 parameters.Add(_Database.CreateParameter("OwnerID", prim.OwnerID)); 1413 parameters.Add(_Database.CreateParameter("OwnerID", prim.OwnerID));
1414 parameters.Add(_Database.CreateParameter("GroupID", prim.GroupID)); 1414 parameters.Add(_Database.CreateParameter("GroupID", prim.GroupID));
diff --git a/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs b/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs
index d8debc5..1edcb5d 100644
--- a/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs
+++ b/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs
@@ -1081,7 +1081,7 @@ namespace OpenSim.Data.MySQL
1081 prim.SitName = (string)row["SitName"]; 1081 prim.SitName = (string)row["SitName"];
1082 prim.TouchName = (string)row["TouchName"]; 1082 prim.TouchName = (string)row["TouchName"];
1083 // Permissions 1083 // Permissions
1084 prim.ObjectFlags = (uint)(int)row["ObjectFlags"]; 1084 prim.Flags = (PrimFlags)(int)row["ObjectFlags"];
1085 prim.OwnerMask = (uint)(int)row["OwnerMask"]; 1085 prim.OwnerMask = (uint)(int)row["OwnerMask"];
1086 prim.NextOwnerMask = (uint)(int)row["NextOwnerMask"]; 1086 prim.NextOwnerMask = (uint)(int)row["NextOwnerMask"];
1087 prim.GroupMask = (uint)(int)row["GroupMask"]; 1087 prim.GroupMask = (uint)(int)row["GroupMask"];
@@ -1414,7 +1414,7 @@ namespace OpenSim.Data.MySQL
1414 cmd.Parameters.AddWithValue("SitName", prim.SitName); 1414 cmd.Parameters.AddWithValue("SitName", prim.SitName);
1415 cmd.Parameters.AddWithValue("TouchName", prim.TouchName); 1415 cmd.Parameters.AddWithValue("TouchName", prim.TouchName);
1416 // permissions 1416 // permissions
1417 cmd.Parameters.AddWithValue("ObjectFlags", prim.ObjectFlags); 1417 cmd.Parameters.AddWithValue("ObjectFlags", (uint)prim.Flags);
1418 cmd.Parameters.AddWithValue("CreatorID", prim.CreatorID.ToString()); 1418 cmd.Parameters.AddWithValue("CreatorID", prim.CreatorID.ToString());
1419 cmd.Parameters.AddWithValue("OwnerID", prim.OwnerID.ToString()); 1419 cmd.Parameters.AddWithValue("OwnerID", prim.OwnerID.ToString());
1420 cmd.Parameters.AddWithValue("GroupID", prim.GroupID.ToString()); 1420 cmd.Parameters.AddWithValue("GroupID", prim.GroupID.ToString());
diff --git a/OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs
index eb78037..289fd94 100644
--- a/OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs
@@ -1187,7 +1187,7 @@ namespace OpenSim.Data.SQLiteLegacy
1187 prim.SitName = (String) row["SitName"]; 1187 prim.SitName = (String) row["SitName"];
1188 prim.TouchName = (String) row["TouchName"]; 1188 prim.TouchName = (String) row["TouchName"];
1189 // permissions 1189 // permissions
1190 prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]); 1190 prim.Flags = (PrimFlags)Convert.ToUInt32(row["ObjectFlags"]);
1191 prim.CreatorID = new UUID((String) row["CreatorID"]); 1191 prim.CreatorID = new UUID((String) row["CreatorID"]);
1192 prim.OwnerID = new UUID((String) row["OwnerID"]); 1192 prim.OwnerID = new UUID((String) row["OwnerID"]);
1193 prim.GroupID = new UUID((String) row["GroupID"]); 1193 prim.GroupID = new UUID((String) row["GroupID"]);
@@ -1521,7 +1521,7 @@ namespace OpenSim.Data.SQLiteLegacy
1521 row["SitName"] = prim.SitName; 1521 row["SitName"] = prim.SitName;
1522 row["TouchName"] = prim.TouchName; 1522 row["TouchName"] = prim.TouchName;
1523 // permissions 1523 // permissions
1524 row["ObjectFlags"] = prim.ObjectFlags; 1524 row["ObjectFlags"] = (uint)prim.Flags;
1525 row["CreatorID"] = prim.CreatorID.ToString(); 1525 row["CreatorID"] = prim.CreatorID.ToString();
1526 row["OwnerID"] = prim.OwnerID.ToString(); 1526 row["OwnerID"] = prim.OwnerID.ToString();
1527 row["GroupID"] = prim.GroupID.ToString(); 1527 row["GroupID"] = prim.GroupID.ToString();
diff --git a/OpenSim/Data/Tests/RegionTests.cs b/OpenSim/Data/Tests/RegionTests.cs
index eeffdda..3cd9e0b 100644
--- a/OpenSim/Data/Tests/RegionTests.cs
+++ b/OpenSim/Data/Tests/RegionTests.cs
@@ -317,7 +317,7 @@ namespace OpenSim.Data.Tests
317 sop.CreatorID = creator; 317 sop.CreatorID = creator;
318 sop.InventorySerial = iserial; 318 sop.InventorySerial = iserial;
319 sop.TaskInventory = dic; 319 sop.TaskInventory = dic;
320 sop.ObjectFlags = objf; 320 sop.Flags = (PrimFlags)objf;
321 sop.Name = name; 321 sop.Name = name;
322 sop.Material = material; 322 sop.Material = material;
323 sop.ScriptAccessPin = pin; 323 sop.ScriptAccessPin = pin;
@@ -350,7 +350,7 @@ namespace OpenSim.Data.Tests
350 // Modified in-class 350 // Modified in-class
351 // Assert.That(iserial,Is.EqualTo(sop.InventorySerial), "Assert.That(iserial,Is.EqualTo(sop.InventorySerial))"); 351 // Assert.That(iserial,Is.EqualTo(sop.InventorySerial), "Assert.That(iserial,Is.EqualTo(sop.InventorySerial))");
352 Assert.That(dic,Is.EqualTo(sop.TaskInventory), "Assert.That(dic,Is.EqualTo(sop.TaskInventory))"); 352 Assert.That(dic,Is.EqualTo(sop.TaskInventory), "Assert.That(dic,Is.EqualTo(sop.TaskInventory))");
353 Assert.That(objf,Is.EqualTo(sop.ObjectFlags), "Assert.That(objf,Is.EqualTo(sop.ObjectFlags))"); 353 Assert.That(objf, Is.EqualTo((uint)sop.Flags), "Assert.That(objf,Is.EqualTo(sop.Flags))");
354 Assert.That(name,Is.EqualTo(sop.Name), "Assert.That(name,Is.EqualTo(sop.Name))"); 354 Assert.That(name,Is.EqualTo(sop.Name), "Assert.That(name,Is.EqualTo(sop.Name))");
355 Assert.That(material,Is.EqualTo(sop.Material), "Assert.That(material,Is.EqualTo(sop.Material))"); 355 Assert.That(material,Is.EqualTo(sop.Material), "Assert.That(material,Is.EqualTo(sop.Material))");
356 Assert.That(pin,Is.EqualTo(sop.ScriptAccessPin), "Assert.That(pin,Is.EqualTo(sop.ScriptAccessPin))"); 356 Assert.That(pin,Is.EqualTo(sop.ScriptAccessPin), "Assert.That(pin,Is.EqualTo(sop.ScriptAccessPin))");
@@ -373,7 +373,7 @@ namespace OpenSim.Data.Tests
373 Assert.That(updatef,Is.EqualTo(sop.UpdateFlag), "Assert.That(updatef,Is.EqualTo(sop.UpdateFlag))"); 373 Assert.That(updatef,Is.EqualTo(sop.UpdateFlag), "Assert.That(updatef,Is.EqualTo(sop.UpdateFlag))");
374 374
375 // This is necessary or object will not be inserted in DB 375 // This is necessary or object will not be inserted in DB
376 sop.ObjectFlags = 0; 376 sop.Flags = PrimFlags.None;
377 377
378 SceneObjectGroup sog = new SceneObjectGroup(sop); 378 SceneObjectGroup sog = new SceneObjectGroup(sop);
379 379
@@ -398,7 +398,7 @@ namespace OpenSim.Data.Tests
398 Assert.That(creator,Is.EqualTo(p.CreatorID), "Assert.That(creator,Is.EqualTo(p.CreatorID))"); 398 Assert.That(creator,Is.EqualTo(p.CreatorID), "Assert.That(creator,Is.EqualTo(p.CreatorID))");
399 //Assert.That(iserial,Is.EqualTo(p.InventorySerial), "Assert.That(iserial,Is.EqualTo(p.InventorySerial))"); 399 //Assert.That(iserial,Is.EqualTo(p.InventorySerial), "Assert.That(iserial,Is.EqualTo(p.InventorySerial))");
400 Assert.That(dic,Is.EqualTo(p.TaskInventory), "Assert.That(dic,Is.EqualTo(p.TaskInventory))"); 400 Assert.That(dic,Is.EqualTo(p.TaskInventory), "Assert.That(dic,Is.EqualTo(p.TaskInventory))");
401 //Assert.That(objf,Is.EqualTo(p.ObjectFlags), "Assert.That(objf,Is.EqualTo(p.ObjectFlags))"); 401 //Assert.That(objf, Is.EqualTo((uint)p.Flags), "Assert.That(objf,Is.EqualTo(p.Flags))");
402 Assert.That(name,Is.EqualTo(p.Name), "Assert.That(name,Is.EqualTo(p.Name))"); 402 Assert.That(name,Is.EqualTo(p.Name), "Assert.That(name,Is.EqualTo(p.Name))");
403 Assert.That(material,Is.EqualTo(p.Material), "Assert.That(material,Is.EqualTo(p.Material))"); 403 Assert.That(material,Is.EqualTo(p.Material), "Assert.That(material,Is.EqualTo(p.Material))");
404 Assert.That(pin,Is.EqualTo(p.ScriptAccessPin), "Assert.That(pin,Is.EqualTo(p.ScriptAccessPin))"); 404 Assert.That(pin,Is.EqualTo(p.ScriptAccessPin), "Assert.That(pin,Is.EqualTo(p.ScriptAccessPin))");
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index 1a7da61..eef0c73 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -1,4 +1,4 @@
1/* 1/*
2 * Copyright (c) Contributors, http://opensimulator.org/ 2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 * 4 *
@@ -543,7 +543,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
543 543
544 if (attachment) 544 if (attachment)
545 { 545 {
546 group.RootPart.ObjectFlags |= (uint)PrimFlags.Phantom; 546 group.RootPart.Flags |= PrimFlags.Phantom;
547 group.RootPart.IsAttachment = true; 547 group.RootPart.IsAttachment = true;
548 } 548 }
549 549
diff --git a/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs b/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs
index 00f6918..c489972 100644
--- a/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs
+++ b/OpenSim/Region/DataSnapshot/ObjectSnapshot.cs
@@ -135,7 +135,7 @@ namespace OpenSim.Region.DataSnapshot.Providers
135 xmlobject.AppendChild(node); 135 xmlobject.AppendChild(node);
136 136
137 node = nodeFactory.CreateNode(XmlNodeType.Element, "flags", ""); 137 node = nodeFactory.CreateNode(XmlNodeType.Element, "flags", "");
138 node.InnerText = String.Format("{0:x}", m_rootPart.ObjectFlags); 138 node.InnerText = String.Format("{0:x}", (uint)m_rootPart.Flags);
139 xmlobject.AppendChild(node); 139 xmlobject.AppendChild(node);
140 140
141 node = nodeFactory.CreateNode(XmlNodeType.Element, "regionuuid", ""); 141 node = nodeFactory.CreateNode(XmlNodeType.Element, "regionuuid", "");
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 0eb28f4..afdb95b 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1897,7 +1897,7 @@ namespace OpenSim.Region.Framework.Scenes
1897 1897
1898 AddRestoredSceneObject(group, true, true); 1898 AddRestoredSceneObject(group, true, true);
1899 SceneObjectPart rootPart = group.GetChildPart(group.UUID); 1899 SceneObjectPart rootPart = group.GetChildPart(group.UUID);
1900 rootPart.ObjectFlags &= ~(uint)PrimFlags.Scripted; 1900 rootPart.Flags &= ~PrimFlags.Scripted;
1901 rootPart.TrimPermissions(); 1901 rootPart.TrimPermissions();
1902 group.CheckSculptAndLoad(); 1902 group.CheckSculptAndLoad();
1903 //rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); 1903 //rootPart.DoPhysicsPropertyUpdate(UsePhysics, true);
@@ -2184,7 +2184,7 @@ namespace OpenSim.Region.Framework.Scenes
2184 2184
2185 foreach (SceneObjectPart part in group.Children.Values) 2185 foreach (SceneObjectPart part in group.Children.Values)
2186 { 2186 {
2187 if (part.IsJoint() && ((part.ObjectFlags&(uint)PrimFlags.Physics) != 0)) 2187 if (part.IsJoint() && ((part.Flags & PrimFlags.Physics) != 0))
2188 { 2188 {
2189 PhysicsScene.RequestJointDeletion(part.Name); // FIXME: what if the name changed? 2189 PhysicsScene.RequestJointDeletion(part.Name); // FIXME: what if the name changed?
2190 } 2190 }
@@ -4852,7 +4852,7 @@ namespace OpenSim.Region.Framework.Scenes
4852 } 4852 }
4853 4853
4854 // turn the proxy non-physical, which also stops its client-side interpolation 4854 // turn the proxy non-physical, which also stops its client-side interpolation
4855 bool wasUsingPhysics = ((jointProxyObject.ObjectFlags & (uint)PrimFlags.Physics) != 0); 4855 bool wasUsingPhysics = ((jointProxyObject.Flags & PrimFlags.Physics) != 0);
4856 if (wasUsingPhysics) 4856 if (wasUsingPhysics)
4857 { 4857 {
4858 jointProxyObject.UpdatePrimFlags(false, false, true, false); // FIXME: possible deadlock here; check to make sure all the scene alterations set into motion here won't deadlock 4858 jointProxyObject.UpdatePrimFlags(false, false, true, false); // FIXME: possible deadlock here; check to make sure all the scene alterations set into motion here won't deadlock
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 3670080..117f869 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1322,9 +1322,9 @@ namespace OpenSim.Region.Framework.Scenes
1322 1322
1323 public void aggregateScriptEvents() 1323 public void aggregateScriptEvents()
1324 { 1324 {
1325 uint objectflagupdate=(uint)RootPart.GetEffectiveObjectFlags(); 1325 PrimFlags objectflagupdate = (PrimFlags)RootPart.GetEffectiveObjectFlags();
1326 1326
1327 scriptEvents aggregateScriptEvents=0; 1327 scriptEvents aggregateScriptEvents = 0;
1328 1328
1329 lock (m_parts) 1329 lock (m_parts)
1330 { 1330 {
@@ -1333,7 +1333,7 @@ namespace OpenSim.Region.Framework.Scenes
1333 if (part == null) 1333 if (part == null)
1334 continue; 1334 continue;
1335 if (part != RootPart) 1335 if (part != RootPart)
1336 part.ObjectFlags = objectflagupdate; 1336 part.Flags = objectflagupdate;
1337 aggregateScriptEvents |= part.AggregateScriptEvents; 1337 aggregateScriptEvents |= part.AggregateScriptEvents;
1338 } 1338 }
1339 } 1339 }
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 33aa8ee..2ad4223 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1324,7 +1324,7 @@ namespace OpenSim.Region.Framework.Scenes
1324 public void AddFlag(PrimFlags flag) 1324 public void AddFlag(PrimFlags flag)
1325 { 1325 {
1326 // PrimFlags prevflag = Flags; 1326 // PrimFlags prevflag = Flags;
1327 if ((ObjectFlags & (uint) flag) == 0) 1327 if ((Flags & flag) == 0)
1328 { 1328 {
1329 //m_log.Debug("Adding flag: " + ((PrimFlags) flag).ToString()); 1329 //m_log.Debug("Adding flag: " + ((PrimFlags) flag).ToString());
1330 Flags |= flag; 1330 Flags |= flag;
@@ -1607,7 +1607,7 @@ namespace OpenSim.Region.Framework.Scenes
1607 dupe.Velocity = new Vector3(0, 0, 0); 1607 dupe.Velocity = new Vector3(0, 0, 0);
1608 dupe.Acceleration = new Vector3(0, 0, 0); 1608 dupe.Acceleration = new Vector3(0, 0, 0);
1609 dupe.AngularVelocity = new Vector3(0, 0, 0); 1609 dupe.AngularVelocity = new Vector3(0, 0, 0);
1610 dupe.ObjectFlags = ObjectFlags; 1610 dupe.Flags = Flags;
1611 1611
1612 dupe._ownershipCost = _ownershipCost; 1612 dupe._ownershipCost = _ownershipCost;
1613 dupe._objectSaleType = _objectSaleType; 1613 dupe._objectSaleType = _objectSaleType;
@@ -1644,7 +1644,7 @@ namespace OpenSim.Region.Framework.Scenes
1644 m_parentGroup.Scene.AssetService.Get(dupe.m_shape.SculptTexture.ToString(), dupe, AssetReceived); 1644 m_parentGroup.Scene.AssetService.Get(dupe.m_shape.SculptTexture.ToString(), dupe, AssetReceived);
1645 } 1645 }
1646 1646
1647 bool UsePhysics = ((dupe.ObjectFlags & (uint)PrimFlags.Physics) != 0); 1647 bool UsePhysics = ((dupe.Flags & PrimFlags.Physics) != 0);
1648 dupe.DoPhysicsPropertyUpdate(UsePhysics, true); 1648 dupe.DoPhysicsPropertyUpdate(UsePhysics, true);
1649 } 1649 }
1650 1650
@@ -4271,9 +4271,9 @@ namespace OpenSim.Region.Framework.Scenes
4271 4271
4272 public void UpdatePrimFlags(bool UsePhysics, bool IsTemporary, bool IsPhantom, bool IsVD) 4272 public void UpdatePrimFlags(bool UsePhysics, bool IsTemporary, bool IsPhantom, bool IsVD)
4273 { 4273 {
4274 bool wasUsingPhysics = ((ObjectFlags & (uint) PrimFlags.Physics) != 0); 4274 bool wasUsingPhysics = ((Flags & PrimFlags.Physics) != 0);
4275 bool wasTemporary = ((ObjectFlags & (uint)PrimFlags.TemporaryOnRez) != 0); 4275 bool wasTemporary = ((Flags & PrimFlags.TemporaryOnRez) != 0);
4276 bool wasPhantom = ((ObjectFlags & (uint)PrimFlags.Phantom) != 0); 4276 bool wasPhantom = ((Flags & PrimFlags.Phantom) != 0);
4277 bool wasVD = VolumeDetectActive; 4277 bool wasVD = VolumeDetectActive;
4278 4278
4279 if ((UsePhysics == wasUsingPhysics) && (wasTemporary == IsTemporary) && (wasPhantom == IsPhantom) && (IsVD==wasVD)) 4279 if ((UsePhysics == wasUsingPhysics) && (wasTemporary == IsTemporary) && (wasPhantom == IsPhantom) && (IsVD==wasVD))