From 26c5b329886e3bbf81e2c853ef2fc6d648ad5273 Mon Sep 17 00:00:00 2001 From: Melanie Date: Thu, 7 Jun 2012 22:39:03 +0200 Subject: [PATCH 1/9] Add the ability to query the MYSQL databse for a list of the stored prim UUIDs --- OpenSim/Data/MSSQL/MSSQLSimulationData.cs | 5 +++ OpenSim/Data/MySQL/MySQLSimulationData.cs | 31 +++++++++++++++++++ OpenSim/Data/Null/NullSimulationData.cs | 5 +++ OpenSim/Data/SQLite/SQLiteSimulationData.cs | 4 +++ .../Interfaces/ISimulationDataService.cs | 2 ++ .../Interfaces/ISimulationDataStore.cs | 1 + .../Simulation/SimulationDataService.cs | 5 +++ .../Tests/Common/Mock/MockRegionDataPlugin.cs | 10 ++++++ 8 files changed, 63 insertions(+) diff --git a/OpenSim/Data/MSSQL/MSSQLSimulationData.cs b/OpenSim/Data/MSSQL/MSSQLSimulationData.cs index d9dfe864ec..df496a74f4 100644 --- a/OpenSim/Data/MSSQL/MSSQLSimulationData.cs +++ b/OpenSim/Data/MSSQL/MSSQLSimulationData.cs @@ -2136,5 +2136,10 @@ VALUES } } } + + public UUID[] GetObjectIDs(UUID regionID) + { + return new UUID[0]; + } } } diff --git a/OpenSim/Data/MySQL/MySQLSimulationData.cs b/OpenSim/Data/MySQL/MySQLSimulationData.cs index ec7a45448f..b9783347e7 100644 --- a/OpenSim/Data/MySQL/MySQLSimulationData.cs +++ b/OpenSim/Data/MySQL/MySQLSimulationData.cs @@ -1911,6 +1911,37 @@ namespace OpenSim.Data.MySQL } } + public UUID[] GetObjectIDs(UUID regionID) + { + List uuids = new List(); + + lock (m_dbLock) + { + using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) + { + dbcon.Open(); + + using (MySqlCommand cmd = dbcon.CreateCommand()) + { + cmd.CommandText = "select UUID prom prims where RegionUUID = ?RegionUUID"; + cmd.Parameters.AddWithValue("RegionUUID", regionID.ToString()); + + using (IDataReader reader = ExecuteReader(cmd)) + { + while (reader.Read()) + { + UUID id = new UUID(reader["UUID"].ToString()); + + uuids.Add(id); + } + } + } + } + } + + return uuids.ToArray(); + } + private void LoadSpawnPoints(RegionSettings rs) { rs.ClearSpawnPoints(); diff --git a/OpenSim/Data/Null/NullSimulationData.cs b/OpenSim/Data/Null/NullSimulationData.cs index b7889767da..24b4511cf7 100644 --- a/OpenSim/Data/Null/NullSimulationData.cs +++ b/OpenSim/Data/Null/NullSimulationData.cs @@ -133,5 +133,10 @@ namespace OpenSim.Data.Null public void Shutdown() { } + + public UUID[] GetObjectIDs(UUID regionID) + { + return new UUID[0]; + } } } diff --git a/OpenSim/Data/SQLite/SQLiteSimulationData.cs b/OpenSim/Data/SQLite/SQLiteSimulationData.cs index 7e7c08a74f..9ec285c979 100644 --- a/OpenSim/Data/SQLite/SQLiteSimulationData.cs +++ b/OpenSim/Data/SQLite/SQLiteSimulationData.cs @@ -2791,5 +2791,9 @@ namespace OpenSim.Data.SQLite } } + public UUID[] GetObjectIDs(UUID regionID) + { + return new UUID[0]; + } } } diff --git a/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs b/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs index 5295a72976..5b696160b3 100644 --- a/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs +++ b/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs @@ -95,5 +95,7 @@ namespace OpenSim.Region.Framework.Interfaces RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID); void StoreRegionWindlightSettings(RegionLightShareData wl); void RemoveRegionWindlightSettings(UUID regionID); + + UUID[] GetObjectIDs(UUID regionID); } } diff --git a/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs b/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs index 615f3770d1..b7d9cfaf8b 100644 --- a/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs +++ b/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs @@ -106,6 +106,7 @@ namespace OpenSim.Region.Framework.Interfaces RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID); void StoreRegionWindlightSettings(RegionLightShareData wl); void RemoveRegionWindlightSettings(UUID regionID); + UUID[] GetObjectIDs(UUID regionID); void Shutdown(); } diff --git a/OpenSim/Services/Connectors/Simulation/SimulationDataService.cs b/OpenSim/Services/Connectors/Simulation/SimulationDataService.cs index ccef50b473..620bb109a9 100644 --- a/OpenSim/Services/Connectors/Simulation/SimulationDataService.cs +++ b/OpenSim/Services/Connectors/Simulation/SimulationDataService.cs @@ -148,5 +148,10 @@ namespace OpenSim.Services.Connectors { m_database.RemoveRegionWindlightSettings(regionID); } + + public UUID[] GetObjectIDs(UUID regionID) + { + return m_database.GetObjectIDs(regionID); + } } } diff --git a/OpenSim/Tests/Common/Mock/MockRegionDataPlugin.cs b/OpenSim/Tests/Common/Mock/MockRegionDataPlugin.cs index 579d41ca03..38fbbe35a1 100644 --- a/OpenSim/Tests/Common/Mock/MockRegionDataPlugin.cs +++ b/OpenSim/Tests/Common/Mock/MockRegionDataPlugin.cs @@ -112,6 +112,11 @@ namespace OpenSim.Data.Null { m_store.StoreRegionWindlightSettings(wl); } + + public UUID[] GetObjectIDs(UUID regionID) + { + return new UUID[0]; + } } /// @@ -285,5 +290,10 @@ namespace OpenSim.Data.Null public void Shutdown() { } + + public UUID[] GetObjectIDs(UUID regionID) + { + return new UUID[0]; + } } } From b700f58d5e82f971c7f6e4381e8ae99ca230977a Mon Sep 17 00:00:00 2001 From: Melanie Date: Thu, 7 Jun 2012 23:41:00 +0200 Subject: [PATCH 2/9] Typo fix --- OpenSim/Data/MySQL/MySQLSimulationData.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/OpenSim/Data/MySQL/MySQLSimulationData.cs b/OpenSim/Data/MySQL/MySQLSimulationData.cs index b9783347e7..1999d899c2 100644 --- a/OpenSim/Data/MySQL/MySQLSimulationData.cs +++ b/OpenSim/Data/MySQL/MySQLSimulationData.cs @@ -119,8 +119,10 @@ namespace OpenSim.Data.MySQL // Eligibility check // - if ((flags & (uint)PrimFlags.Temporary) != 0) - return; + // PrimFlags.Temporary is not used in OpenSim code and cannot + // be guaranteed to always be clear. Don't check it. +// if ((flags & (uint)PrimFlags.Temporary) != 0) +// return; if ((flags & (uint)PrimFlags.TemporaryOnRez) != 0) return; @@ -1923,7 +1925,7 @@ namespace OpenSim.Data.MySQL using (MySqlCommand cmd = dbcon.CreateCommand()) { - cmd.CommandText = "select UUID prom prims where RegionUUID = ?RegionUUID"; + cmd.CommandText = "select UUID from prims where RegionUUID = ?RegionUUID"; cmd.Parameters.AddWithValue("RegionUUID", regionID.ToString()); using (IDataReader reader = ExecuteReader(cmd)) From ad1df330063ff2786b1ed8aae65f0198285ccd9c Mon Sep 17 00:00:00 2001 From: Melanie Date: Thu, 7 Jun 2012 23:41:10 +0200 Subject: [PATCH 3/9] Further limit the amount of avatar collisions that will actually trigger sounds. They are distracting. --- OpenSim/Region/Framework/Scenes/CollisionSounds.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/CollisionSounds.cs b/OpenSim/Region/Framework/Scenes/CollisionSounds.cs index a95e75a946..3ec3cf7c7e 100644 --- a/OpenSim/Region/Framework/Scenes/CollisionSounds.cs +++ b/OpenSim/Region/Framework/Scenes/CollisionSounds.cs @@ -266,9 +266,11 @@ namespace OpenSim.Region.Framework.Scenes else { volume = Math.Abs(colInfo.relativeVel); - if (volume < 0.2f) + // Most noral collisions (running into walls, stairs) + // should never be heard. + if (volume < 2.0f) continue; - m_log.DebugFormat("Collision speed was {0}", volume); +// m_log.DebugFormat("Collision speed was {0}", volume); // Cap to 0.2 times volume because climbing stairs should not be noisy // Also changed scaling From 038acc39bef922b823964ac43083b24c129fca81 Mon Sep 17 00:00:00 2001 From: Melanie Date: Fri, 8 Jun 2012 00:09:30 +0200 Subject: [PATCH 4/9] Cut off collision sounds with avatar at 3.2. This makes most walkig collisions with walls and stairs silent. Falls from greater height and running into things will still be heard. a CollisionSound defined for the object will override this so one can still script a soccer ball with sounds. --- OpenSim/Region/Framework/Scenes/CollisionSounds.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenSim/Region/Framework/Scenes/CollisionSounds.cs b/OpenSim/Region/Framework/Scenes/CollisionSounds.cs index 3ec3cf7c7e..075724eff8 100644 --- a/OpenSim/Region/Framework/Scenes/CollisionSounds.cs +++ b/OpenSim/Region/Framework/Scenes/CollisionSounds.cs @@ -268,7 +268,7 @@ namespace OpenSim.Region.Framework.Scenes volume = Math.Abs(colInfo.relativeVel); // Most noral collisions (running into walls, stairs) // should never be heard. - if (volume < 2.0f) + if (volume < 3.2f) continue; // m_log.DebugFormat("Collision speed was {0}", volume); From 22906386b4fd16be36dc056809dd9ab7bccfa473 Mon Sep 17 00:00:00 2001 From: Melanie Date: Fri, 8 Jun 2012 03:25:51 +0200 Subject: [PATCH 5/9] Replace the stock libomv with our home grown 0.9.1 with the texture bug fixed. --- bin/OpenMetaverse.Rendering.Meshmerizer.dll | Bin 24576 -> 11776 bytes bin/OpenMetaverse.StructuredData.XML | 510 +- bin/OpenMetaverse.StructuredData.dll | Bin 102400 -> 95232 bytes bin/OpenMetaverse.XML | 45504 +++++++++--------- bin/OpenMetaverse.dll | Bin 1753088 -> 1812992 bytes bin/OpenMetaverseTypes.XML | 2999 +- bin/OpenMetaverseTypes.dll | Bin 114688 -> 105984 bytes 7 files changed, 25253 insertions(+), 23760 deletions(-) diff --git a/bin/OpenMetaverse.Rendering.Meshmerizer.dll b/bin/OpenMetaverse.Rendering.Meshmerizer.dll index e0a3aa58445259f578c73ac32b8aabcbcefb639c..43c7557f5f947fd0a7cb2c6d4e21b7abab807494 100755 GIT binary patch literal 11776 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 v5x)HM_4XNGV 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 - OpenMetaverse.StructuredData + /home/root/libomv-0.9.1-source/bin/OpenMetaverse.StructuredData - - - - - - - - - - - - - - Deserializes binary LLSD - - Serialized data - OSD containting deserialized data - - - - Deserializes binary LLSD - - Stream to read the data from - OSD containting deserialized data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - - @@ -281,53 +81,297 @@ - - - - - - - - - - + + + + + + + + + + + Deserializes binary LLSD + + Serialized data + OSD containting deserialized data + + + + Deserializes binary LLSD + + Stream to read the data from + OSD containting deserialized data + + + + Serializes OSD to binary format. It does no prepend header + + OSD to serialize + Serialized data + + + + Serializes OSD to binary format + + OSD to serialize + + + Serialized data + + + + Serializes OSD to binary format. It does no prepend header + + OSD to serialize + Serialized data + + + + Serializes OSD to binary format + + OSD to serialize + + + Serialized data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/OpenMetaverse.StructuredData.dll b/bin/OpenMetaverse.StructuredData.dll index aa05418763280e7d5bd6c3f7bed5f90b868a07f4..bf768634fd264cd88a7e544695796d2b46d35a9e 100755 GIT binary patch literal 95232 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

3M&+^ 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

Ne>8x+%`D)OLeP>)$H> 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 literal 102400 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 z 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 diff --git a/bin/OpenMetaverse.XML b/bin/OpenMetaverse.XML index 6e57fed0d7..81cc005052 100644 --- a/bin/OpenMetaverse.XML +++ b/bin/OpenMetaverse.XML @@ -1,4537 +1,9 @@ - OpenMetaverse + /home/root/libomv-0.9.1-source/bin/OpenMetaverse - -

= - - - Number of times we've received an unknown CAPS exception in series. - - - For exponential backoff on error. - - - - Add a custom decoder callback - - The key of the field to decode - The custom decode handler - - - - Remove a custom decoder callback - - The key of the field to decode - The custom decode handler - - - - Creates a formatted string containing the values of a Packet - - The Packet - A formatted string of values of the nested items in the Packet object - - - - Decode an IMessage object into a beautifully formatted string - - The IMessage object - Recursion level (used for indenting) - A formatted string containing the names and values of the source object - - - - A custom decoder callback - - The key of the object - the data to decode - A string represending the fieldData - - - - Access to the data server which allows searching for land, events, people, etc - - - - The event subscribers. null if no subcribers - - - Raises the EventInfoReply event - An EventInfoReplyEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the DirEventsReply event - An DirEventsReplyEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the PlacesReply event - A PlacesReplyEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the DirPlacesReply event - A DirPlacesReplyEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the DirClassifiedsReply event - A DirClassifiedsReplyEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the DirGroupsReply event - A DirGroupsReplyEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the DirPeopleReply event - A DirPeopleReplyEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the DirLandReply event - A DirLandReplyEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - - Constructs a new instance of the DirectoryManager class - - An instance of GridClient - - - - Query the data server for a list of classified ads containing the specified string. - Defaults to searching for classified placed in any category, and includes PG, Adult and Mature - results. - - Responses are sent 16 per response packet, there is no way to know how many results a query reply will contain however assuming - the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received - - The event is raised when a response is received from the simulator - - A string containing a list of keywords to search for - A UUID to correlate the results when the event is raised - - - - Query the data server for a list of classified ads which contain specified keywords (Overload) - - The event is raised when a response is received from the simulator - - A string containing a list of keywords to search for - The category to search - A set of flags which can be ORed to modify query options - such as classified maturity rating. - A UUID to correlate the results when the event is raised - - Search classified ads containing the key words "foo" and "bar" in the "Any" category that are either PG or Mature - - UUID searchID = StartClassifiedSearch("foo bar", ClassifiedCategories.Any, ClassifiedQueryFlags.PG | ClassifiedQueryFlags.Mature); - - - - Responses are sent 16 at a time, there is no way to know how many results a query reply will contain however assuming - the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received - - - - - Starts search for places (Overloaded) - - The event is raised when a response is received from the simulator - - Search text - Each request is limited to 100 places - being returned. To get the first 100 result entries of a request use 0, - from 100-199 use 1, 200-299 use 2, etc. - A UUID to correlate the results when the event is raised - - - - Queries the dataserver for parcels of land which are flagged to be shown in search - - The event is raised when a response is received from the simulator - - A string containing a list of keywords to search for separated by a space character - A set of flags which can be ORed to modify query options - such as classified maturity rating. - The category to search - Each request is limited to 100 places - being returned. To get the first 100 result entries of a request use 0, - from 100-199 use 1, 200-299 use 2, etc. - A UUID to correlate the results when the event is raised - - Search places containing the key words "foo" and "bar" in the "Any" category that are either PG or Adult - - UUID searchID = StartDirPlacesSearch("foo bar", DirFindFlags.DwellSort | DirFindFlags.IncludePG | DirFindFlags.IncludeAdult, ParcelCategory.Any, 0); - - - - Additional information on the results can be obtained by using the ParcelManager.InfoRequest method - - - - - Starts a search for land sales using the directory - - The event is raised when a response is received from the simulator - - What type of land to search for. Auction, - estate, mainland, "first land", etc - The OnDirLandReply event handler must be registered before - calling this function. There is no way to determine how many - results will be returned, or how many times the callback will be - fired other than you won't get more than 100 total parcels from - each query. - - - - Starts a search for land sales using the directory - - The event is raised when a response is received from the simulator - - What type of land to search for. Auction, - estate, mainland, "first land", etc - Maximum price to search for - Maximum area to search for - Each request is limited to 100 parcels - being returned. To get the first 100 parcels of a request use 0, - from 100-199 use 1, 200-299 use 2, etc. - The OnDirLandReply event handler must be registered before - calling this function. There is no way to determine how many - results will be returned, or how many times the callback will be - fired other than you won't get more than 100 total parcels from - each query. - - - - Send a request to the data server for land sales listings - - - Flags sent to specify query options - - Available flags: - Specify the parcel rating with one or more of the following: - IncludePG IncludeMature IncludeAdult - - Specify the field to pre sort the results with ONLY ONE of the following: - PerMeterSort NameSort AreaSort PricesSort - - Specify the order the results are returned in, if not specified the results are pre sorted in a Descending Order - SortAsc - - Specify additional filters to limit the results with one or both of the following: - LimitByPrice LimitByArea - - Flags can be combined by separating them with the | (pipe) character - - Additional details can be found in - - What type of land to search for. Auction, - Estate or Mainland - Maximum price to search for when the - DirFindFlags.LimitByPrice flag is specified in findFlags - Maximum area to search for when the - DirFindFlags.LimitByArea flag is specified in findFlags - Each request is limited to 100 parcels - being returned. To get the first 100 parcels of a request use 0, - from 100-199 use 100, 200-299 use 200, etc. - The event will be raised with the response from the simulator - - There is no way to determine how many results will be returned, or how many times the callback will be - fired other than you won't get more than 100 total parcels from - each reply. - - Any land set for sale to either anybody or specific to the connected agent will be included in the - results if the land is included in the query - - - // request all mainland, any maturity rating that is larger than 512 sq.m - StartLandSearch(DirFindFlags.SortAsc | DirFindFlags.PerMeterSort | DirFindFlags.LimitByArea | DirFindFlags.IncludePG | DirFindFlags.IncludeMature | DirFindFlags.IncludeAdult, SearchTypeFlags.Mainland, 0, 512, 0); - - - - - Search for Groups - - The name or portion of the name of the group you wish to search for - Start from the match number - - - - - Search for Groups - - The name or portion of the name of the group you wish to search for - Start from the match number - Search flags - - - - - Search the People directory for other avatars - - The name or portion of the name of the avatar you wish to search for - - - - - - Search Places for parcels of land you personally own - - - - - Searches Places for land owned by the specified group - - ID of the group you want to recieve land list for (You must be a member of the group) - Transaction (Query) ID which can be associated with results from your request. - - - - Search the Places directory for parcels that are listed in search and contain the specified keywords - - A string containing the keywords to search for - Transaction (Query) ID which can be associated with results from your request. - - - - Search Places - All Options - - One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc. - One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer - A string containing a list of keywords to search for separated by a space character - String Simulator Name to search in - LLUID of group you want to recieve results for - Transaction (Query) ID which can be associated with results from your request. - Transaction (Query) ID which can be associated with results from your request. - - - - Search All Events with specifid searchText in all categories, includes PG, Mature and Adult - - A string containing a list of keywords to search for separated by a space character - Each request is limited to 100 entries - being returned. To get the first group of entries of a request use 0, - from 100-199 use 100, 200-299 use 200, etc. - UUID of query to correlate results in callback. - - - - Search Events - - A string containing a list of keywords to search for separated by a space character - One or more of the following flags: DateEvents, IncludePG, IncludeMature, IncludeAdult - from the Enum - - Multiple flags can be combined by separating the flags with the | (pipe) character - "u" for in-progress and upcoming events, -or- number of days since/until event is scheduled - For example "0" = Today, "1" = tomorrow, "2" = following day, "-1" = yesterday, etc. - Each request is limited to 100 entries - being returned. To get the first group of entries of a request use 0, - from 100-199 use 100, 200-299 use 200, etc. - EventCategory event is listed under. - UUID of query to correlate results in callback. - - - Requests Event Details - ID of Event returned from the method - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming event message - The Unique Capabilities Key - The event message containing the data - The simulator the message originated from - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming event message - The Unique Capabilities Key - The event message containing the data - The simulator the message originated from - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Classified Ad categories - - - Classified is listed in the Any category - - - Classified is shopping related - - - Classified is - - - - - - - - - - - - - - - - - - - - - - - - Event Categories - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Query Flags used in many of the DirectoryManager methods to specify which query to execute and how to return the results. - - Flags can be combined using the | (pipe) character, not all flags are available in all queries - - - - Query the People database - - - - - - - - - Query the Groups database - - - Query the Events database - - - Query the land holdings database for land owned by the currently connected agent - - - - - - Query the land holdings database for land which is owned by a Group - - - Specifies the query should pre sort the results based upon traffic - when searching the Places database - - - - - - - - - - - - - - - Specifies the query should pre sort the results in an ascending order when searching the land sales database. - This flag is only used when searching the land sales database - - - Specifies the query should pre sort the results using the SalePrice field when searching the land sales database. - This flag is only used when searching the land sales database - - - Specifies the query should pre sort the results by calculating the average price/sq.m (SalePrice / Area) when searching the land sales database. - This flag is only used when searching the land sales database - - - Specifies the query should pre sort the results using the ParcelSize field when searching the land sales database. - This flag is only used when searching the land sales database - - - Specifies the query should pre sort the results using the Name field when searching the land sales database. - This flag is only used when searching the land sales database - - - When set, only parcels less than the specified Price will be included when searching the land sales database. - This flag is only used when searching the land sales database - - - When set, only parcels greater than the specified Size will be included when searching the land sales database. - This flag is only used when searching the land sales database - - - - - - - - - Include PG land in results. This flag is used when searching both the Groups, Events and Land sales databases - - - Include Mature land in results. This flag is used when searching both the Groups, Events and Land sales databases - - - Include Adult land in results. This flag is used when searching both the Groups, Events and Land sales databases - - - - - - - Land types to search dataserver for - - - - Search Auction, Mainland and Estate - - - Land which is currently up for auction - - - Parcels which are on the mainland (Linden owned) continents - - - Parcels which are on privately owned simulators - - - - The content rating of the event - - - - Event is PG - - - Event is Mature - - - Event is Adult - - - - Classified Ad Options - - There appear to be two formats the flags are packed in. - This set of flags is for the newer style - - - - - - - - - - - - - - - - - - - Classified ad query options - - - - Include all ads in results - - - Include PG ads in results - - - Include Mature ads in results - - - Include Adult ads in results - - - - The For Sale flag in PlacesReplyData - - - - Parcel is not listed for sale - - - Parcel is For Sale - - - - A classified ad on the grid - - - - UUID for this ad, useful for looking up detailed - information about it - - - The title of this classified ad - - - Flags that show certain options applied to the classified - - - Creation date of the ad - - - Expiration date of the ad - - - Price that was paid for this ad - - - Print the struct data as a string - A string containing the field name, and field value - - - - A parcel retrieved from the dataserver such as results from the - "For-Sale" listings or "Places" Search - - - - The unique dataserver parcel ID - This id is used to obtain additional information from the entry - by using the method - - - A string containing the name of the parcel - - - The size of the parcel - This field is not returned for Places searches - - - The price of the parcel - This field is not returned for Places searches - - - If True, this parcel is flagged to be auctioned - - - If true, this parcel is currently set for sale - - - Parcel traffic - - - Print the struct data as a string - A string containing the field name, and field value - - - - An Avatar returned from the dataserver - - - - Online status of agent - This field appears to be obsolete and always returns false - - - The agents first name - - - The agents last name - - - The agents - - - Print the struct data as a string - A string containing the field name, and field value - - - - Response to a "Groups" Search - - - - The Group ID - - - The name of the group - - - The current number of members - - - Print the struct data as a string - A string containing the field name, and field value - - - - Parcel information returned from a request - - Represents one of the following: - A parcel of land on the grid that has its Show In Search flag set - A parcel of land owned by the agent making the request - A parcel of land owned by a group the agent making the request is a member of - - - In a request for Group Land, the First record will contain an empty record - - Note: This is not the same as searching the land for sale data source - - - - The ID of the Agent of Group that owns the parcel - - - The name - - - The description - - - The Size of the parcel - - - The billable Size of the parcel, for mainland - parcels this will match the ActualArea field. For Group owned land this will be 10 percent smaller - than the ActualArea. For Estate land this will always be 0 - - - Indicates the ForSale status of the parcel - - - The Gridwide X position - - - The Gridwide Y position - - - The Z position of the parcel, or 0 if no landing point set - - - The name of the Region the parcel is located in - - - The Asset ID of the parcels Snapshot texture - - - The calculated visitor traffic - - - The billing product SKU - Known values are: - - 023Mainland / Full Region - 024Estate / Full Region - 027Estate / Openspace - 029Estate / Homestead - 129Mainland / Homestead (Linden Owned) - - - - - No longer used, will always be 0 - - - Get a SL URL for the parcel - A string, containing a standard SLURL - - - Print the struct data as a string - A string containing the field name, and field value - - - - An "Event" Listing summary - - - - The ID of the event creator - - - The name of the event - - - The events ID - - - A string containing the short date/time the event will begin - - - The event start time in Unixtime (seconds since epoch) - - - The events maturity rating - - - Print the struct data as a string - A string containing the field name, and field value - - - - The details of an "Event" - - - - The events ID - - - The ID of the event creator - - - The name of the event - - - The category - - - The events description - - - The short date/time the event will begin - - - The event start time in Unixtime (seconds since epoch) UTC adjusted - - - The length of the event in minutes - - - 0 if no cover charge applies - - - The cover charge amount in L$ if applicable - - - The name of the region where the event is being held - - - The gridwide location of the event - - - The maturity rating - - - Get a SL URL for the parcel where the event is hosted - A string, containing a standard SLURL - - - Print the struct data as a string - A string containing the field name, and field value - - - Contains the Event data returned from the data server from an EventInfoRequest - - - Construct a new instance of the EventInfoReplyEventArgs class - A single EventInfo object containing the details of an event - - - - A single EventInfo object containing the details of an event - - - - Contains the "Event" detail data returned from the data server - - - Construct a new instance of the DirEventsReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list containing the "Events" returned by the search query - - - The ID returned by - - - A list of "Events" returned by the data server - - - Contains the "Event" list data returned from the data server - - - Construct a new instance of PlacesReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list containing the "Places" returned by the data server query - - - The ID returned by - - - A list of "Places" returned by the data server - - - Contains the places data returned from the data server - - - Construct a new instance of the DirPlacesReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list containing land data returned by the data server - - - The ID returned by - - - A list containing Places data returned by the data server - - - Contains the classified data returned from the data server - - - Construct a new instance of the DirClassifiedsReplyEventArgs class - A list of classified ad data returned from the data server - - - A list containing Classified Ads returned by the data server - - - Contains the group data returned from the data server - - - Construct a new instance of the DirGroupsReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list of groups data returned by the data server - - - The ID returned by - - - A list containing Groups data returned by the data server - - - Contains the people data returned from the data server - - - Construct a new instance of the DirPeopleReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list of people data returned by the data server - - - The ID returned by - - - A list containing People data returned by the data server - - - Contains the land sales data returned from the data server - - - Construct a new instance of the DirLandReplyEventArgs class - A list of parcels for sale returned by the data server - - - A list containing land forsale data returned by the data server - - - - Sent to the client to indicate a teleport request has completed - - - - - Interface requirements for Messaging system - - - - The of the agent - - - - - - The simulators handle the agent teleported to - - - A Uri which contains a list of Capabilities the simulator supports - - - Indicates the level of access required - to access the simulator, or the content rating, or the simulators - map status - - - The IP Address of the simulator - - - The UDP Port the simulator will listen for UDP traffic on - - - Status flags indicating the state of the Agent upon arrival, Flying, etc. - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Sent to the viewer when a neighboring simulator is requesting the agent make a connection to it. - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message sent to the client which indicates a teleport request has failed - and contains some information on why it failed - - - - - - - A string key of the reason the teleport failed e.g. CouldntTPCloser - Which could be used to look up a value in a dictionary or enum - - - The of the Agent - - - A string human readable message containing the reason - An example: Could not teleport closer to destination - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Contains a list of prim owner information for a specific parcel in a simulator - - - A Simulator will always return at least 1 entry - If agent does not have proper permission the OwnerID will be UUID.Zero - If agent does not have proper permission OR there are no primitives on parcel - the DataBlocksExtended map will not be sent from the simulator - - - - An Array of objects - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Prim ownership information for a specified owner on a single parcel - - - - The of the prim owner, - UUID.Zero if agent has no permission to view prim owner information - - - The total number of prims - - - True if the OwnerID is a - - - True if the owner is online - This is no longer used by the LL Simulators - - - The date the most recent prim was rezzed - - - - The details of a single parcel in a region, also contains some regionwide globals - - - - Simulator-local ID of this parcel - - - Maximum corner of the axis-aligned bounding box for this - parcel - - - Minimum corner of the axis-aligned bounding box for this - parcel - - - Total parcel land area - - - - - - Key of authorized buyer - - - Bitmap describing land layout in 4x4m squares across the - entire region - - - - - - Date land was claimed - - - Appears to always be zero - - - Parcel Description - - - - - - - - - Total number of primitives owned by the parcel group on - this parcel - - - Whether the land is deeded to a group or not - - - - - - Maximum number of primitives this parcel supports - - - The Asset UUID of the Texture which when applied to a - primitive will display the media - - - A URL which points to any Quicktime supported media type - - - A byte, if 0x1 viewer should auto scale media to fit object - - - URL For Music Stream - - - Parcel Name - - - Autoreturn value in minutes for others' objects - - - - - - Total number of other primitives on this parcel - - - UUID of the owner of this parcel - - - Total number of primitives owned by the parcel owner on - this parcel - - - - - - How long is pass valid for - - - Price for a temporary pass - - - - - - - - - - - - - - - True if the region denies access to age unverified users - - - - - - This field is no longer used - - - The result of a request for parcel properties - - - Sale price of the parcel, only useful if ForSale is set - The SalePrice will remain the same after an ownership - transfer (sale), so it can be used to see the purchase price after - a sale if the new owner has not changed it - - - - Number of primitives your avatar is currently - selecting and sitting on in this parcel - - - - - - - - A number which increments by 1, starting at 0 for each ParcelProperties request. - Can be overriden by specifying the sequenceID with the ParcelPropertiesRequest being sent. - a Negative number indicates the action in has occurred. - - - - Maximum primitives across the entire simulator - - - Total primitives across the entire simulator - - - - - - Key of parcel snapshot - - - Parcel ownership status - - - Total number of primitives on this parcel - - - - - - - - - A description of the media - - - An Integer which represents the height of the media - - - An integer which represents the width of the media - - - A boolean, if true the viewer should loop the media - - - A string which contains the mime type of the media - - - true to obscure (hide) media url - - - true to obscure (hide) music url - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - A message sent from the viewer to the simulator to updated a specific parcels settings - - - The of the agent authorized to purchase this - parcel of land or a NULL if the sale is authorized to anyone - - - true to enable auto scaling of the parcel media - - - The category of this parcel used when search is enabled to restrict - search results - - - A string containing the description to set - - - The of the which allows for additional - powers and restrictions. - - - The which specifies how avatars which teleport - to this parcel are handled - - - The LocalID of the parcel to update settings on - - - A string containing the description of the media which can be played - to visitors - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - Base class used for the RemoteParcelRequest message - - - - A message sent from the viewer to the simulator to request information - on a remote parcel - - - - Local sim position of the parcel we are looking up - - - Region handle of the parcel we are looking up - - - Region of the parcel we are looking up - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message sent from the simulator to the viewer in response to a - which will contain parcel information - - - - The grid-wide unique parcel ID - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message containing a request for a remote parcel from a viewer, or a response - from the simulator to that request - - - - The request or response details block - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message sent from the simulator to an agent which contains - the groups the agent is in - - - - The Agent receiving the message - - - An array containing information - for each the agent is a member of - - - An array containing information - for each the agent is a member of - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - Group Details specific to the agent - - - true of the agent accepts group notices - - - The agents tier contribution to the group - - - The Groups - - - The of the groups insignia - - - The name of the group - - - The aggregate permissions the agent has in the group for all roles the agent - is assigned - - - An optional block containing additional agent specific information - - - true of the agent allows this group to be - listed in their profile - - - - A message sent from the viewer to the simulator which - specifies the language and permissions for others to detect - the language specified - - - - A string containng the default language - to use for the agent - - - true of others are allowed to - know the language setting - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - An EventQueue message sent from the simulator to an agent when the agent - leaves a group - - - - - An Array containing the AgentID and GroupID - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - An object containing the Agents UUID, and the Groups UUID - - - The ID of the Agent leaving the group - - - The GroupID the Agent is leaving - - - Base class for Asset uploads/results via Capabilities - - - - The request state - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message sent from the viewer to the simulator to request a temporary upload capability - which allows an asset to be uploaded - - - - The Capability URL sent by the simulator to upload the baked texture to - - - - A message sent from the simulator that will inform the agent the upload is complete, - and the UUID of the uploaded asset - - - - The uploaded texture asset ID - - - - A message sent from the viewer to the simulator to request a temporary - capability URI which is used to upload an agents baked appearance textures - - - - Object containing request or response - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message sent from the simulator which indicates the minimum version required for - using voice chat - - - - Major Version Required - - - Minor version required - - - The name of the region sending the version requrements - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message sent from the simulator to the viewer containing the - voice server URI - - - - The Parcel ID which the voice server URI applies - - - The name of the region - - - A uri containing the server/channel information - which the viewer can utilize to participate in voice conversations - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - - - - - - - - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message sent by the viewer to the simulator to request a temporary - capability for a script contained with in a Tasks inventory to be updated - - - - Object containing request or response - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message sent from the simulator to the viewer to indicate - a Tasks scripts status. - - - - The Asset ID of the script - - - True of the script is compiled/ran using the mono interpreter, false indicates it - uses the older less efficient lsl2 interprter - - - The Task containing the scripts - - - true of the script is in a running state - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message containing the request/response used for updating a gesture - contained with an agents inventory - - - - Object containing request or response - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message request/response which is used to update a notecard contained within - a tasks inventory - - - - The of the Task containing the notecard asset to update - - - The notecard assets contained in the tasks inventory - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A reusable class containing a message sent from the viewer to the simulator to request a temporary uploader capability - which is used to update an asset in an agents inventory - - - - - The Notecard AssetID to replace - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message containing the request/response used for updating a notecard - contained with an agents inventory - - - - Object containing request or response - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message sent from the simulator to the viewer which indicates - an error occurred while attempting to update a script in an agents or tasks - inventory - - - - true of the script was successfully compiled by the simulator - - - A string containing the error which occured while trying - to update the script - - - A new AssetID assigned to the script - - - - A message sent from the viewer to the simulator - requesting the update of an existing script contained - within a tasks inventory - - - - if true, set the script mode to running - - - The scripts InventoryItem ItemID to update - - - A lowercase string containing either "mono" or "lsl2" which - specifies the script is compiled and ran on the mono runtime, or the older - lsl runtime - - - The tasks which contains the script to update - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message containing either the request or response used in updating a script inside - a tasks inventory - - - - Object containing request or response - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Response from the simulator to notify the viewer the upload is completed, and - the UUID of the script asset and its compiled status - - - - The uploaded texture asset ID - - - true of the script was compiled successfully - - - - A message sent from a viewer to the simulator requesting a temporary uploader capability - used to update a script contained in an agents inventory - - - - The existing asset if of the script in the agents inventory to replace - - - The language of the script - Defaults to lsl version 2, "mono" might be another possible option - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message containing either the request or response used in updating a script inside - an agents inventory - - - - Object containing request or response - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - Base class for Map Layers via Capabilities - - - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Sent by an agent to the capabilities server to request map layers - - - - - A message sent from the simulator to the viewer which contains an array of map images and their grid coordinates - - - - An array containing LayerData items - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - An object containing map location details - - - - The Asset ID of the regions tile overlay - - - The grid location of the southern border of the map tile - - - The grid location of the western border of the map tile - - - The grid location of the eastern border of the map tile - - - The grid location of the northern border of the map tile - - - Object containing request or response - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - New as of 1.23 RC1, no details yet. - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - A string containing the method used - - - - A request sent from an agent to the Simulator to begin a new conference. - Contains a list of Agents which will be included in the conference - - - - An array containing the of the agents invited to this conference - - - The conferences Session ID - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A moderation request sent from a conference moderator - Contains an agent and an optional action to take - - - - The Session ID - - - - - - A list containing Key/Value pairs, known valid values: - key: text value: true/false - allow/disallow specified agents ability to use text in session - key: voice value: true/false - allow/disallow specified agents ability to use voice in session - - "text" or "voice" - - - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message sent from the agent to the simulator which tells the - simulator we've accepted a conference invitation - - - - The conference SessionID - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - Key of sender - - - Name of sender - - - Key of destination avatar - - - ID of originating estate - - - Key of originating region - - - Coordinates in originating region - - - Instant message type - - - Group IM session toggle - - - Key of IM session, for Group Messages, the groups UUID - - - Timestamp of the instant message - - - Instant message text - - - Whether this message is held for offline avatars - - - Context specific packed data - - - Is this invitation for voice group/conference chat - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Sent from the simulator to the viewer. - - When an agent initially joins a session the AgentUpdatesBlock object will contain a list of session members including - a boolean indicating they can use voice chat in this session, a boolean indicating they are allowed to moderate - this session, and lastly a string which indicates another agent is entering the session with the Transition set to "ENTER" - - During the session lifetime updates on individuals are sent. During the update the booleans sent during the initial join are - excluded with the exception of the Transition field. This indicates a new user entering or exiting the session with - the string "ENTER" or "LEAVE" respectively. - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - An EventQueue message sent when the agent is forcibly removed from a chatterbox session - - - - - A string containing the reason the agent was removed - - - - - The ChatterBoxSession's SessionID - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - - A message sent from the viewer to the simulator which - specifies that the user has changed current URL - of the specific media on a prim face - - - - - New URL - - - - - Prim UUID where navigation occured - - - - - Face index - - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - Base class used for the ObjectMedia message - - - - Message used to retrive prim media data - - - - - Prim UUID - - - - - Requested operation, either GET or UPDATE - - - - - Serialize object - - Serialized object as OSDMap - - - - Deserialize the message - - An containing the data - - - - Message used to update prim media data - - - - - Prim UUID - - - - - Array of media entries indexed by face number - - - - - Media version string - - - - - Serialize object - - Serialized object as OSDMap - - - - Deserialize the message - - An containing the data - - - - Message used to update prim media data - - - - - Prim UUID - - - - - Array of media entries indexed by face number - - - - - Requested operation, either GET or UPDATE - - - - - Serialize object - - Serialized object as OSDMap - - - - Deserialize the message - - An containing the data - - - - Message for setting or getting per face MediaEntry - - - - The request or response details block - - - - Serialize the object - - An containing the objects data - - - - Deserialize the message - - An containing the data - - - Details about object resource usage - - - Object UUID - - - Object name - - - Indicates if object is group owned - - - Locatio of the object - - - Object owner - - - Resource usage, keys are resource names, values are resource usage for that specific resource - - - - Deserializes object from OSD - - An containing the data - - - - Makes an instance based on deserialized data - - serialized data - Instance containg deserialized data - - - Details about parcel resource usage - - - Parcel UUID - - - Parcel local ID - - - Parcel name - - - Indicates if parcel is group owned - - - Parcel owner - - - Array of containing per object resource usage - - - - Deserializes object from OSD - - An containing the data - - - - Makes an instance based on deserialized data - - serialized data - Instance containg deserialized data - - - Resource usage base class, both agent and parcel resource - usage contains summary information - - - Summary of available resources, keys are resource names, - values are resource usage for that specific resource - - - Summary resource usage, keys are resource names, - values are resource usage for that specific resource - - - - Serializes object - - serialized data - - - - Deserializes object from OSD - - An containing the data - - - Agent resource usage - - - Per attachment point object resource usage - - - - Deserializes object from OSD - - An containing the data - - - - Makes an instance based on deserialized data - - serialized data - Instance containg deserialized data - - - - Detects which class handles deserialization of this message - - An containing the data - Object capable of decoding this message - - - Request message for parcel resource usage - - - UUID of the parel to request resource usage info - - - - Serializes object - - serialized data - - - - Deserializes object from OSD - - An containing the data - - - Response message for parcel resource usage - - - URL where parcel resource usage details can be retrieved - - - URL where parcel resource usage summary can be retrieved - - - - Serializes object - - serialized data - - - - Deserializes object from OSD - - An containing the data - - - - Detects which class handles deserialization of this message - - An containing the data - Object capable of decoding this message - - - Parcel resource usage - - - Array of containing per percal resource usage - - - - Deserializes object from OSD - - An containing the data - - - - Type of gesture step - - - - - Base class for gesture steps - - - - - Retururns what kind of gesture step this is - - - - - Describes animation step of a gesture - - - - - If true, this step represents start of animation, otherwise animation stop - - - - - Animation asset - - - - - Animation inventory name - - - - - Returns what kind of gesture step this is - - - - - Describes sound step of a gesture - - - - - Sound asset - - - - - Sound inventory name - - - - - Returns what kind of gesture step this is - - - - - Describes sound step of a gesture - - - - - Text to output in chat - - - - - Returns what kind of gesture step this is - - - - - Describes sound step of a gesture - - - - - If true in this step we wait for all animations to finish - - - - - If true gesture player should wait for the specified amount of time - - - - - Time in seconds to wait if WaitForAnimation is false - - - - - Returns what kind of gesture step this is - - - - - Describes the final step of a gesture - - - - - Returns what kind of gesture step this is - - - - - Represents a sequence of animations, sounds, and chat actions - - - - - Base class for all Asset types - - - - A byte array containing the raw asset data - - - True if the asset it only stored on the server temporarily - - - A unique ID - - - - Construct a new Asset object - - - - - Construct a new Asset object - - A unique specific to this asset - A byte array containing the raw asset data - - - - Regenerates the AssetData byte array from the properties - of the derived class. - - - - - Decodes the AssetData, placing it in appropriate properties of the derived - class. - - True if the asset decoding succeeded, otherwise false - - - The assets unique ID - - - - The "type" of asset, Notecard, Animation, etc - - - - - Keyboard key that triggers the gestyre - - - - - Modifier to the trigger key - - - - - String that triggers playing of the gesture sequence - - - - - Text that replaces trigger in chat once gesture is triggered - - - - - Sequence of gesture steps - - - - - Constructs guesture asset - - - - - Constructs guesture asset - - A unique specific to this asset - A byte array containing the raw asset data - - - - Encodes gesture asset suitable for uplaod - - - - - Decodes gesture assset into play sequence - - true if the asset data was decoded successfully - - - - Returns asset type - - - - - Archives assets - - - - - Archive assets - - - - - Archive the assets given to this archiver to the given archive. - - - - - - Write an assets metadata file to the given archive - - - - - - Write asset data files to the given archive - - - - - - Constants for the archiving module - - - - - The location of the archive control file - - - - - Path for the assets held in an archive - - - - - Path for the prims file - - - - - Path for terrains. Technically these may be assets, but I think it's quite nice to split them out. - - - - - Path for region settings. - - - - - The character the separates the uuid from extension information in an archived asset filename - - - - - Extensions used for asset types in the archive - - - - - Capabilities is the name of the bi-directional HTTP REST protocol - used to communicate non real-time transactions such as teleporting or - group messaging - - - - Reference to the simulator this system is connected to - - - - Default constructor - - - - - - - Request the URI of a named capability - - Name of the capability to request - The URI of the requested capability, or String.Empty if - the capability does not exist - - - - Process any incoming events, check to see if we have a message created for the event, - - - - - - Capabilities URI this system was initialized with - - - Whether the capabilities event queue is connected and - listening for incoming events - - - - Triggered when an event is received via the EventQueueGet - capability - - Event name - Decoded event data - The simulator that generated the event - - - - Throttles the network traffic for various different traffic types. - Access this class through GridClient.Throttle - - - - - Default constructor, uses a default high total of 1500 KBps (1536000) - - - - - Constructor that decodes an existing AgentThrottle packet in to - individual values - - Reference to the throttle data in an AgentThrottle - packet - Offset position to start reading at in the - throttle data - This is generally not needed in clients as the server will - never send a throttle packet to the client - - - - Send an AgentThrottle packet to the current server using the - current values - - - - - Send an AgentThrottle packet to the specified server using the - current values - - - - - Convert the current throttle values to a byte array that can be put - in an AgentThrottle packet - - Byte array containing all the throttle values - - - Maximum bits per second for resending unacknowledged packets - - - Maximum bits per second for LayerData terrain - - - Maximum bits per second for LayerData wind data - - - Maximum bits per second for LayerData clouds - - - Unknown, includes object data - - - Maximum bits per second for textures - - - Maximum bits per second for downloaded assets - - - Maximum bits per second the entire connection, divided up - between invidiual streams using default multipliers - - - - Particle system specific enumerators, flags and methods. - - - - - - - - - - - - - - - - - - - - - - Foliage type for this primitive. Only applicable if this - primitive is foliage - - - Unknown - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Identifies the owner if audio or a particle system is - active - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Default constructor - - - - - Packs PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew - parameters in to signed eight bit values - - Floating point parameter to pack - Signed eight bit value containing the packed parameter - - - - Unpacks PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew - parameters from signed eight bit integers to floating point values - - Signed eight bit value to unpack - Unpacked floating point value - - - - - - - Current version of the media data for the prim - - - - - Array of media entries indexed by face number - - - - - - - - - - Uses basic heuristics to estimate the primitive shape - - - - Parameters used to construct a visual representation of a primitive - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Attachment point to an avatar - - - - - - - - - - - - - - - - Information on the flexible properties of a primitive - - - - - - - - - - - - - - - - - - - - - - - Default constructor - - - - - - - - - - - - - - - - - - - - - - - - Information on the light properties of a primitive - - - - - - - - - - - - - - - - - - - - Default constructor - - - - - - - - - - - - - - - - - - - - - - - - Information on the sculpt properties of a sculpted primitive - - - - - Default constructor - - - - - - - - - - - - Render inside out (inverts the normals). - - - - - Render an X axis mirror of the sculpty. - - - - - Extended properties to describe an object - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Default constructor - - - - - Set the properties that are set in an ObjectPropertiesFamily packet - - that has - been partially filled by an ObjectPropertiesFamily packet - - - - Complete structure for the particle system - - - - Particle Flags - There appears to be more data packed in to this area - for many particle systems. It doesn't appear to be flag values - and serialization breaks unless there is a flag for every - possible bit so it is left as an unsigned integer - - - pattern of particles - - - A representing the maximimum age (in seconds) particle will be displayed - Maximum value is 30 seconds - - - A representing the number of seconds, - from when the particle source comes into view, - or the particle system's creation, that the object will emits particles; - after this time period no more particles are emitted - - - A in radians that specifies where particles will not be created - - - A in radians that specifies where particles will be created - - - A representing the number of seconds between burts. - - - A representing the number of meters - around the center of the source where particles will be created. - - - A representing in seconds, the minimum speed between bursts of new particles - being emitted - - - A representing in seconds the maximum speed of new particles being emitted. - - - A representing the maximum number of particles emitted per burst - - - A which represents the velocity (speed) from the source which particles are emitted - - - A which represents the Acceleration from the source which particles are emitted - - - The Key of the texture displayed on the particle - - - The Key of the specified target object or avatar particles will follow - - - Flags of particle from - - - Max Age particle system will emit particles for - - - The the particle has at the beginning of its lifecycle - - - The the particle has at the ending of its lifecycle - - - A that represents the starting X size of the particle - Minimum value is 0, maximum value is 4 - - - A that represents the starting Y size of the particle - Minimum value is 0, maximum value is 4 - - - A that represents the ending X size of the particle - Minimum value is 0, maximum value is 4 - - - A that represents the ending Y size of the particle - Minimum value is 0, maximum value is 4 - - - - Decodes a byte[] array into a ParticleSystem Object - - ParticleSystem object - Start position for BitPacker - - - - Generate byte[] array from particle data - - Byte array - - - - Particle source pattern - - - - None - - - Drop particles from source position with no force - - - "Explode" particles in all directions - - - Particles shoot across a 2D area - - - Particles shoot across a 3D Cone - - - Inverse of AngleCone (shoot particles everywhere except the 3D cone defined - - - - Particle Data Flags - - - - None - - - Interpolate color and alpha from start to end - - - Interpolate scale from start to end - - - Bounce particles off particle sources Z height - - - velocity of particles is dampened toward the simulators wind - - - Particles follow the source - - - Particles point towards the direction of source's velocity - - - Target of the particles - - - Particles are sent in a straight line - - - Particles emit a glow - - - used for point/grab/touch - - - - Particle Flags Enum - - - - None - - - Acceleration and velocity for particles are - relative to the object rotation - - - Particles use new 'correct' angle parameters - - - - Texture animation mode - - - - Disable texture animation - - - Enable texture animation - - - Loop when animating textures - - - Animate in reverse direction - - - Animate forward then reverse - - - Slide texture smoothly instead of frame-stepping - - - Rotate texture instead of using frames - - - Scale texture instead of using frames - - - - A single textured face. Don't instantiate this class yourself, use the - methods in TextureEntry - - - - - Contains the definition for individual faces - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - In the future this will specify whether a webpage is - attached to this face - - - - - - - Represents all of the texturable faces for an object - - Grid objects have infinite faces, with each face - using the properties of the default face unless set otherwise. So if - you have a TextureEntry with a default texture uuid of X, and face 18 - has a texture UUID of Y, every face would be textured with X except for - face 18 that uses Y. In practice however, primitives utilize a maximum - of nine faces - - - - - - - - - - Constructor that takes a default texture UUID - - Texture UUID to use as the default texture - - - - Constructor that takes a TextureEntryFace for the - default face - - Face to use as the default face - - - - Constructor that creates the TextureEntry class from a byte array - - Byte array containing the TextureEntry field - Starting position of the TextureEntry field in - the byte array - Length of the TextureEntry field, in bytes - - - - This will either create a new face if a custom face for the given - index is not defined, or return the custom face for that index if - it already exists - - The index number of the face to create or - retrieve - A TextureEntryFace containing all the properties for that - face - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Controls the texture animation of a particular prim - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A Wrapper around openjpeg to encode and decode images to and from byte arrays - - - - TGA Header size - - - OpenJPEG is not threadsafe, so this object is used to lock - during calls into unmanaged code - - - - Encode a object into a byte array - - The object to encode - true to enable lossless conversion, only useful for small images ie: sculptmaps - A byte array containing the encoded Image object - - - - Encode a object into a byte array - - The object to encode - a byte array of the encoded image - - - - Decode JPEG2000 data to an and - - - JPEG2000 encoded data - ManagedImage object to decode to - Image object to decode to - True if the decode succeeds, otherwise false - - - - - - - - - - - - - - - - - - - - - Encode a object into a byte array - - The source object to encode - true to enable lossless decoding - A byte array containing the source Bitmap object - - - - Defines the beginning and ending file positions of a layer in an - LRCP-progression JPEG2000 file - - - - - This structure is used to marshal both encoded and decoded images. - MUST MATCH THE STRUCT IN dotnet.h! - - - - - Information about a single packet in a JPEG2000 stream - - - - Packet start position - - - Packet header end position - - - Packet end position - - - - Represents an that represents an avatars body ie: Hair, Etc. - - - - - Represents a Wearable Asset, Clothing, Hair, Skin, Etc - - - - A string containing the name of the asset - - - A string containing a short description of the asset - - - The Assets WearableType - - - The For-Sale status of the object - - - An Integer representing the purchase price of the asset - - - The of the assets creator - - - The of the assets current owner - - - The of the assets prior owner - - - The of the Group this asset is set to - - - True if the asset is owned by a - - - The Permissions mask of the asset - - - A Dictionary containing Key/Value pairs of the objects parameters - - - A Dictionary containing Key/Value pairs where the Key is the textures Index and the Value is the Textures - - - Initializes a new instance of an AssetWearable object - - - Initializes a new instance of an AssetWearable object with parameters - A unique specific to this asset - A byte array containing the raw asset data - - - - Decode an assets byte encoded data to a string - - true if the asset data was decoded successfully - - - - Encode the assets string represantion into a format consumable by the asset server - - - - Initializes a new instance of an AssetBodyPart object - - - Initializes a new instance of an AssetBodyPart object with parameters - A unique specific to this asset - A byte array containing the raw asset data - - - Override the base classes AssetType - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Permission request flags, asked when a script wants to control an Avatar @@ -4666,7 +138,7 @@ IM for help - IM sent automatically on call for help, sends a lure + IM sent automatically on call for help, sends a lure to each Helper reached @@ -4763,17 +235,19 @@ - - + + - + + - + + @@ -4781,47 +255,59 @@ - + + - + + - + + - + + - + + - + + - + + Project a beam from a source to a destination, such as the one used when editing an object - + + - + + - + + Create a swirl of particles around an object - + + - + + Cause an avatar to look at an object @@ -4831,42 +317,52 @@ - The action an avatar is doing when looking at something, used in + The action an avatar is doing when looking at something, used in ViewerEffect packets for the LookAt effect - + + - + + - + + - + + - + + - + + Deprecated - + + - + + - + + - + + @@ -4875,16 +371,20 @@ - + + - + + - + + - + + @@ -4892,200 +392,260 @@ - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - - + + - + + - + + - + + - + + - + + - - + + - + + - + + - + + - + + - + + @@ -5144,13 +704,16 @@ - + + - + + - + + @@ -5177,7 +740,6 @@ - @@ -5187,7 +749,8 @@ Set when newbie leaves help island for first time - + + Via Lure @@ -5214,19 +777,23 @@ Linden Forced me - + + Agent Teleported Home via Script - + + - + + - + + forced to new location for example when avatar is banned or ejected @@ -5242,34 +809,82 @@ - - + + - + + - + + - - + + - + + - + + - + + + + + + Type of mute entry + + + + Object muted by name + + + Muted residet + + + Object muted by UUID + + + Muted group + + + Muted external entry + + + + Flags of mute entry + + + + No exceptions + + + Don't mute text chat + + + Don't mute voice chat + + + Don't mute particles + + + Don't mute sounds + + + Don't mute @@ -5319,231 +934,605 @@ Print the struct data as a string A string containing the field name, and field value + + Represents muted object or resident + + + Type of the mute entry + + + UUID of the mute etnry + + + Mute entry name + + + Mute flags + + + Transaction detail sent with MoneyBalanceReply message + + + Type of the transaction + + + UUID of the transaction source + + + Is the transaction source a group + + + UUID of the transaction destination + + + Is transaction destination a group + + + Transaction amount + + + Transaction description + Manager class for our own avatar + + + Constructor, setup callbacks for packets related to our avatar + + A reference to the Class + + + + Agent movement and camera control + Agent movement is controlled by setting specific + After the control flags are set, An AgentUpdate is required to update the simulator of the specified flags + This is most easily accomplished by setting one or more of the AgentMovement properties + Movement of an avatar is always based on a compass direction, for example AtPos will move the + agent from West to East or forward on the X Axis, AtNeg will of course move agent from + East to West or backward on the X Axis, LeftPos will be South to North or forward on the Y Axis + The Z axis is Up, finer grained control of movements can be done using the Nudge properties + + + + Default constructor + + + + Camera controls for the agent, mostly a thin wrapper around + CoordinateFrame. This class is only responsible for state + tracking and math, it does not send any packets + + + + + Default constructor + + + + + + + + The camera is a local frame of reference inside of + the larger grid space. This is where the math happens + + + + + + + + + + + + + + + + + + + Agent camera controls + + + Currently only used for hiding your group title + + + Action state of the avatar, which can currently be + typing and editing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Timer for sending AgentUpdate packets + + + Move agent positive along the X axis + + + Move agent negative along the X axis + + + Move agent positive along the Y axis + + + Move agent negative along the Y axis + + + Move agent positive along the Z axis + + + Move agent negative along the Z axis + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Causes simulator to make agent fly + + + Stop movement + + + Finish animation + + + Stand up from a sit + + + Tells simulator to sit agent on ground + + + Place agent into mouselook mode + + + Nudge agent positive along the X axis + + + Nudge agent negative along the X axis + + + Nudge agent positive along the Y axis + + + Nudge agent negative along the Y axis + + + Nudge agent positive along the Z axis + + + Nudge agent negative along the Z axis + + + + + + + + + + + Tell simulator to mark agent as away + + + + + + + + + + + + + + + + + + + + Returns "always run" value, or changes it by sending a SetAlwaysRunPacket + + + + The current value of the agent control flags + + + Gets or sets the interval in milliseconds at which + AgentUpdate packets are sent to the current simulator. Setting + this to a non-zero value will also enable the packet sending if + it was previously off, and setting it to zero will disable + + + Gets or sets whether AgentUpdate packets are sent to + the current simulator + + + Reset movement controls every time we send an update + + + + Send an AgentUpdate with the camera set at the current agent + position and pointing towards the heading specified + + Camera rotation in radians + Whether to send the AgentUpdate reliable + or not + + + + Rotates the avatar body and camera toward a target position. + This will also anchor the camera position on the avatar + + Region coordinates to turn toward + + + + Send new AgentUpdate packet to update our current camera + position and rotation + + + + + Send new AgentUpdate packet to update our current camera + position and rotation + + Whether to require server acknowledgement + of this packet + + + + Send new AgentUpdate packet to update our current camera + position and rotation + + Whether to require server acknowledgement + of this packet + Simulator to send the update to + + + + Builds an AgentUpdate packet entirely from parameters. This + will not touch the state of Self.Movement or + Self.Movement.Camera in any way + + + + + + + + + + + + + + + + + + + + + + + + + + + Used to specify movement actions for your agent + + + + Empty flag + + + Move Forward (SL Keybinding: W/Up Arrow) + + + Move Backward (SL Keybinding: S/Down Arrow) + + + Move Left (SL Keybinding: Shift-(A/Left Arrow)) + + + Move Right (SL Keybinding: Shift-(D/Right Arrow)) + + + Not Flying: Jump/Flying: Move Up (SL Keybinding: E) + + + Not Flying: Croutch/Flying: Move Down (SL Keybinding: C) + + + Unused + + + Unused + + + Unused + + + Unused + + + ORed with AGENT_CONTROL_AT_* if the keyboard is being used + + + ORed with AGENT_CONTROL_LEFT_* if the keyboard is being used + + + ORed with AGENT_CONTROL_UP_* if the keyboard is being used + + + Fly + + + + + + + Finish our current animation + + + Stand up from the ground or a prim seat + + + Sit on the ground at our current location + + + Whether mouselook is currently enabled + + + Legacy, used if a key was pressed for less than a certain amount of time + + + Legacy, used if a key was pressed for less than a certain amount of time + + + Legacy, used if a key was pressed for less than a certain amount of time + + + Legacy, used if a key was pressed for less than a certain amount of time + + + Legacy, used if a key was pressed for less than a certain amount of time + + + Legacy, used if a key was pressed for less than a certain amount of time + + + + + + + + + + + Set when the avatar is idled or set to away. Note that the away animation is + activated separately from setting this flag + + + + + + + + + + + + + + + + + + + + Called once attachment resource usage information has been collected + + Indicates if operation was successfull + Attachment resource usage information + The event subscribers. null if no subcribers - - Raises the ChatFromSimulator event - A ChatEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the ScriptDialog event - A SctriptDialogEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the ScriptQuestion event - A ScriptQuestionEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the LoadURL event - A LoadUrlEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the MoneyBalance event - A BalanceEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the MoneyBalanceReply event - A MoneyBalanceReplyEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the IM event - A InstantMessageEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the TeleportProgress event - A TeleportEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the AgentDataReply event - A AgentDataReplyEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the AnimationsChanged event - A AnimationsChangedEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the MeanCollision event - A MeanCollisionEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the RegionCrossed event - A RegionCrossedEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the GroupChatJoined event - A GroupChatJoinedEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the AlertMessage event - A AlertMessageEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the ScriptControlChange event - A ScriptControlEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the CameraConstraint event - A CameraConstraintEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the ScriptSensorReply event - A ScriptSensorReplyEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the AvatarSitResponse event - A AvatarSitResponseEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the ChatSessionMemberAdded event - A ChatSessionMemberAddedEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the ChatSessionMemberLeft event - A ChatSessionMemberLeftEventArgs object containing the - data returned from the data server - Thread sync lock object + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + Reference to the GridClient instance @@ -5558,17 +1547,283 @@ Dictionary containing current Group Chat sessions and members - + + Dictionary containing mute list keyead on mute name and key + + + Raised when a scripted object or agent within range sends a public message + + + Raised when a scripted object sends a dialog box containing possible + options an agent can respond to + + + Raised when an object requests a change in the permissions an agent has permitted + + + Raised when a script requests an agent open the specified URL + + + Raised when an agents currency balance is updated + + + Raised when a transaction occurs involving currency such as a land purchase + + + Raised when an ImprovedInstantMessage packet is recieved from the simulator, this is used for everything from + private messaging to friendship offers. The Dialog field defines what type of message has arrived + + + Raised when an agent has requested a teleport to another location, or when responding to a lure. Raised multiple times + for each teleport indicating the progress of the request + + + Raised when a simulator sends agent specific information for our avatar. + + + Raised when our agents animation playlist changes + + + Raised when an object or avatar forcefully collides with our agent + + + Raised when our agent crosses a region border into another region + + + Raised when our agent succeeds or fails to join a group chat session + + + Raised when a simulator sends an urgent message usually indication the recent failure of + another action we have attempted to take such as an attempt to enter a parcel where we are denied access + + + Raised when a script attempts to take or release specified controls for our agent + + + Raised when the simulator detects our agent is trying to view something + beyond its limits + + + Raised when a script sensor reply is received from a simulator + + + Raised in response to a request + + + Raised when an avatar enters a group chat session we are participating in + + + Raised when an agent exits a group chat session we are participating in + + + Raised when the simulator sends us data containing + the details of display name change + + + Raised when a scripted object or agent within range sends a public message + + + Your (client) avatars + "client", "agent", and "avatar" all represent the same thing + + + Temporary assigned to this session, used for + verifying our identity in packets + + + Shared secret that is never sent over the wire + + + Your (client) avatar ID, local to the current region/sim + + + Where the avatar started at login. Can be "last", "home" + or a login + + + The access level of this agent, usually M or PG + + + The CollisionPlane of Agent + + + An representing the velocity of our agent + + + An representing the acceleration of our agent + + + A which specifies the angular speed, and axis about which an Avatar is rotating. + + + Position avatar client will goto when login to 'home' or during + teleport request to 'home' region. + + + LookAt point saved/restored with HomePosition + + + Avatar First Name (i.e. Philip) + + + Avatar Last Name (i.e. Linden) + + + Avatar Full Name (i.e. Philip Linden) + + + Gets the health of the agent + + + Gets the current balance of the agent + + + Gets the local ID of the prim the agent is sitting on, + zero if the avatar is not currently sitting + + + Gets the of the agents active group. + + + Gets the Agents powers in the currently active group + + + Current status message for teleporting + + + Current position of the agent as a relative offset from + the simulator, or the parent object if we are sitting on something + + + Current rotation of the agent as a relative rotation from + the simulator, or the parent object if we are sitting on something + + + Current position of the agent in the simulator + + - Constructor, setup callbacks for packets related to our avatar + A representing the agents current rotation - A reference to the Class + + + Returns the global grid position of the avatar + + + Raises the ChatFromSimulator event + A ChatEventArgs object containing the + data returned from the data server + + + Raises the ScriptDialog event + A SctriptDialogEventArgs object containing the + data returned from the data server + + + Raises the ScriptQuestion event + A ScriptQuestionEventArgs object containing the + data returned from the data server + + + Raises the LoadURL event + A LoadUrlEventArgs object containing the + data returned from the data server + + + Raises the MoneyBalance event + A BalanceEventArgs object containing the + data returned from the data server + + + Raises the MoneyBalanceReply event + A MoneyBalanceReplyEventArgs object containing the + data returned from the data server + + + Raises the IM event + A InstantMessageEventArgs object containing the + data returned from the data server + + + Raises the TeleportProgress event + A TeleportEventArgs object containing the + data returned from the data server + + + Raises the AgentDataReply event + A AgentDataReplyEventArgs object containing the + data returned from the data server + + + Raises the AnimationsChanged event + A AnimationsChangedEventArgs object containing the + data returned from the data server + + + Raises the MeanCollision event + A MeanCollisionEventArgs object containing the + data returned from the data server + + + Raises the RegionCrossed event + A RegionCrossedEventArgs object containing the + data returned from the data server + + + Raises the GroupChatJoined event + A GroupChatJoinedEventArgs object containing the + data returned from the data server + + + Raises the AlertMessage event + A AlertMessageEventArgs object containing the + data returned from the data server + + + Raises the ScriptControlChange event + A ScriptControlEventArgs object containing the + data returned from the data server + + + Raises the CameraConstraint event + A CameraConstraintEventArgs object containing the + data returned from the data server + + + Raises the ScriptSensorReply event + A ScriptSensorReplyEventArgs object containing the + data returned from the data server + + + Raises the AvatarSitResponse event + A AvatarSitResponseEventArgs object containing the + data returned from the data server + + + Raises the ChatSessionMemberAdded event + A ChatSessionMemberAddedEventArgs object containing the + data returned from the data server + + + Raises the ChatSessionMemberLeft event + A ChatSessionMemberLeftEventArgs object containing the + data returned from the data server + + + Raises the SetDisplayNameReply Event + A SetDisplayNameReplyEventArgs object containing + the data sent from the simulator + + + Raises the MuteListUpdated event + A EventArgs object containing the + data returned from the data server Send a text message from the Agent to the Simulator - A containing the message + A containing the message The channel to send the message on, 0 is the public channel. Channels above 0 can be used however only scripts listening on the specified channel will see the message Denotes the type of message being sent, shout, whisper, etc. @@ -5582,15 +1837,15 @@ Send an Instant Message to another Avatar - The recipients - A containing the message to send + The recipients + A containing the message to send Send an Instant Message to an existing group chat or conference chat - The recipients - A containing the message to send + The recipients + A containing the message to send IM session ID (to differentiate between IM windows) @@ -5622,7 +1877,8 @@ Send an Instant Message to a group - of the group to send message to + + of the group to send message to Text Message being sent. @@ -5630,84 +1886,96 @@ Send an Instant Message to a group the agent is a member of The name this IM will show up as being from - of the group to send message to + + of the group to send message to Text message being sent Send a request to join a group chat session - of Group to leave + + of Group to leave Exit a group chat session. This will stop further Group chat messages from being sent until session is rejoined. - of Group chat session to leave + + of Group chat session to leave - Reply to script dialog questions. + Reply to script dialog questions. Channel initial request came on Index of button you're "clicking" Label of button you're "clicking" - of Object that sent the dialog request - + + of Object that sent the dialog request + Accept invite for to a chatterbox session - of session to accept invite to + + of session to accept invite to Start a friends conference - List of UUIDs to start a conference with - the temportary session ID returned in the callback> + + List of UUIDs to start a conference with + the temportary session ID returned in the callback> Start a particle stream between an agent and an object - Key of the source agent - Key of the target object - - The type from the enum - A unique for this effect + + Key of the source agent + + Key of the target object + + + The type from the enum + A unique for this effect Start a particle stream between an agent and an object - Key of the source agent - Key of the target object - A representing the beams offset from the source - A which sets the avatars lookat animation - of the Effect + + Key of the source agent + + Key of the target object + A representing the beams offset from the source + A which sets the avatars lookat animation + + of the Effect - Create a particle beam between an avatar and an primitive + Create a particle beam between an avatar and an primitive The ID of source avatar The ID of the target primitive global offset - A object containing the combined red, green, blue and alpha + A object containing the combined red, green, blue and alpha color values of particle beam a float representing the duration the parcicle beam will last A Unique ID for the beam - + - Create a particle swirl around a target position using a packet + Create a particle swirl around a target position using a packet global offset - A object containing the combined red, green, blue and alpha + A object containing the combined red, green, blue and alpha color values of particle beam a float representing the duration the parcicle beam will last A Unique ID for the beam @@ -5716,12 +1984,13 @@ Sends a request to sit on the specified object - of the object to sit on + + of the object to sit on Sit at offset - Follows a call to to actually sit on the object + Follows a call to to actually sit on the object @@ -5788,14 +2057,15 @@ Grabs an object an unsigned integer of the objects ID within the simulator - + Overload: Grab a simulated object an unsigned integer of the objects ID within the simulator - + + The texture coordinates to grab The surface coordinates to grab The face of the position to grab @@ -5808,16 +2078,19 @@ Drag an object - of the object to drag + + of the object to drag Drag target in region coordinates Overload: Drag an object - of the object to drag + + of the object to drag Drag target in region coordinates - + + The texture coordinates to grab The surface coordinates to grab The face of the position to grab @@ -5831,9 +2104,9 @@ Release a grabbed object The Objects Simulator Local ID - - - + + + @@ -5853,7 +2126,7 @@ Touches an object an unsigned integer of the objects ID within the simulator - + @@ -5880,7 +2153,7 @@ Give L$ to an object - object to give money to + object to give money to amount of L$ to give name of object @@ -5888,14 +2161,14 @@ Give L$ to a group - group to give money to + group to give money to amount of L$ to give Give L$ to a group - group to give money to + group to give money to amount of L$ to give description of transaction @@ -5925,33 +2198,33 @@ Plays a gesture - Asset of the gesture + Asset of the gesture Mark gesture active - Inventory of the gesture - Asset of the gesture + Inventory of the gesture + Asset of the gesture Mark gesture inactive - Inventory of the gesture + Inventory of the gesture Send an AgentAnimation packet that toggles a single animation on - The of the animation to start playing + The of the animation to start playing Whether to ensure delivery of this packet or not Send an AgentAnimation packet that toggles a single animation off - The of a + The of a currently playing animation to stop playing Whether to ensure delivery of this packet or not @@ -5959,7 +2232,7 @@ Send an AgentAnimation packet that will toggle animations on or off - A list of animation s, and whether to + A list of animation s, and whether to turn that animation on or off Whether to ensure delivery of this packet or not @@ -5973,7 +2246,8 @@ Teleport agent to a landmark - of the landmark to teleport agent to + + of the landmark to teleport agent to true on success, false on failure @@ -6002,7 +2276,8 @@ Teleport agent to another region handle of region to teleport agent to - position in destination sim to teleport to + + position in destination sim to teleport to true on success, false on failure This call is blocking @@ -6011,8 +2286,10 @@ Teleport agent to another region handle of region to teleport agent to - position in destination sim to teleport to - direction in destination sim agent will look at + + position in destination sim to teleport to + + direction in destination sim agent will look at true on success, false on failure This call is blocking @@ -6021,56 +2298,62 @@ Request teleport to a another simulator
handle of region to teleport agent to - position in destination sim to teleport to + + position in destination sim to teleport to Request teleport to a another simulator handle of region to teleport agent to - position in destination sim to teleport to - direction in destination sim agent will look at + + position in destination sim to teleport to + + direction in destination sim agent will look at Teleport agent to a landmark - of the landmark to teleport agent to + + of the landmark to teleport agent to Send a teleport lure to another avatar with default "Join me in ..." invitation message - target avatars to lure + target avatars to lure Send a teleport lure to another avatar with custom invitation message - target avatars to lure + target avatars to lure custom message to send with invitation - Respond to a teleport lure by either accepting it and initiating + Respond to a teleport lure by either accepting it and initiating the teleport, or denying it - of the avatar sending the lure - IM session of the incoming lure request + + of the avatar sending the lure + IM session of the incoming lure request true to accept the lure, false to decline it Update agent profile - struct containing updated + + struct containing updated profile information Update agents profile interests - selection of interests from struct + selection of interests from struct @@ -6085,11 +2368,35 @@ Request the list of muted objects and avatars for this agent + + + Mute an object, resident, etc. + + Mute type + Mute UUID + Mute name + + + + Mute an object, resident, etc. + + Mute type + Mute UUID + Mute name + Mute flags + + + + Unmute an object, resident, etc. + + Mute UUID + Mute name + Sets home location to agents current position - will fire an AlertMessage () with + will fire an AlertMessage () with success or failure message @@ -6097,16 +2404,21 @@ Move an agent in to a simulator. This packet is the last packet needed to complete the transition in to a new simulator - Object + + Object Reply to script permissions request - Object - of the itemID requesting permissions - of the taskID requesting permissions - list of permissions to allow + + Object + + of the itemID requesting permissions + + of the taskID requesting permissions + + list of permissions to allow @@ -6183,6 +2495,20 @@ Called when the requested information is collected + + + Initates request to set a new display name + + Previous display name + Desired new display name + + + + Tells the sim what UI language is used, and if it's ok to share that with scripts + + Two letter language code + Share language info with scripts + Take an incoming ImprovedInstantMessage packet, auto-parse, and if @@ -6193,8 +2519,8 @@ - Take an incoming Chat packet, auto-parse, and if OnChat is defined call - that with the appropriate arguments. + Take an incoming Chat packet, auto-parse, and if OnChat is defined call + that with the appropriate arguments. The sender The EventArgs object containing the packet data @@ -6250,6 +2576,14 @@ The sender The EventArgs object containing the packet data + + + EQ Message fired with the result of SetDisplayName request + + The message key + the IMessage object containing the deserialized data sent from the simulator + The which originated the packet + Process TeleportFailed message sent via EventQueue, informs agent its last teleport has failed and why. @@ -6288,7 +2622,7 @@ The message key the IMessage object containing the deserialized data sent from the simulator - The which originated the packet + The which originated the packet Process an incoming packet and raise the appropriate events @@ -6302,23 +2636,28 @@ The capability Key IMessage object containing decoded data from OSD - + + Response from request to join a group chat - + + IMessage object containing decoded data from OSD - + + Someone joined or left group chat - + + IMessage object containing decoded data from OSD - + + @@ -6332,8 +2671,8 @@ Moderate a chat session - the of the session to moderate, for group chats this will be the groups UUID - the of the avatar to moderate + the of the session to moderate, for group chats this will be the groups UUID + the of the avatar to moderate Either "voice" to moderate users voice, or "text" to moderate users text session true to moderate (silence user), false to allow avatar to speak @@ -6357,535 +2696,8 @@ The sender The EventArgs object containing the packet data - - Raised when a scripted object or agent within range sends a public message - - - Raised when a scripted object sends a dialog box containing possible - options an agent can respond to - - - Raised when an object requests a change in the permissions an agent has permitted - - - Raised when a script requests an agent open the specified URL - - - Raised when an agents currency balance is updated - - - Raised when a transaction occurs involving currency such as a land purchase - - - Raised when an ImprovedInstantMessage packet is recieved from the simulator, this is used for everything from - private messaging to friendship offers. The Dialog field defines what type of message has arrived - - - Raised when an agent has requested a teleport to another location, or when responding to a lure. Raised multiple times - for each teleport indicating the progress of the request - - - Raised when a simulator sends agent specific information for our avatar. - - - Raised when our agents animation playlist changes - - - Raised when an object or avatar forcefully collides with our agent - - - Raised when our agent crosses a region border into another region - - - Raised when our agent succeeds or fails to join a group chat session - - - Raised when a simulator sends an urgent message usually indication the recent failure of - another action we have attempted to take such as an attempt to enter a parcel where we are denied access - - - Raised when a script attempts to take or release specified controls for our agent - - - Raised when the simulator detects our agent is trying to view something - beyond its limits - - - Raised when a script sensor reply is received from a simulator - - - Raised in response to a request - - - Raised when an avatar enters a group chat session we are participating in - - - Raised when an agent exits a group chat session we are participating in - - - Your (client) avatars - "client", "agent", and "avatar" all represent the same thing - - - Temporary assigned to this session, used for - verifying our identity in packets - - - Shared secret that is never sent over the wire - - - Your (client) avatar ID, local to the current region/sim - - - Where the avatar started at login. Can be "last", "home" - or a login - - - The access level of this agent, usually M or PG - - - The CollisionPlane of Agent - - - An representing the velocity of our agent - - - An representing the acceleration of our agent - - - A which specifies the angular speed, and axis about which an Avatar is rotating. - - - Position avatar client will goto when login to 'home' or during - teleport request to 'home' region. - - - LookAt point saved/restored with HomePosition - - - Avatar First Name (i.e. Philip) - - - Avatar Last Name (i.e. Linden) - - - Avatar Full Name (i.e. Philip Linden) - - - Gets the health of the agent - - - Gets the current balance of the agent - - - Gets the local ID of the prim the agent is sitting on, - zero if the avatar is not currently sitting - - - Gets the of the agents active group. - - - Gets the Agents powers in the currently active group - - - Current status message for teleporting - - - Current position of the agent as a relative offset from - the simulator, or the parent object if we are sitting on something - - - Current rotation of the agent as a relative rotation from - the simulator, or the parent object if we are sitting on something - - - Current position of the agent in the simulator - - - - A representing the agents current rotation - - - - Returns the global grid position of the avatar - - - - Called once attachment resource usage information has been collected - - Indicates if operation was successfull - Attachment resource usage information - - - - Used to specify movement actions for your agent - - - - Empty flag - - - Move Forward (SL Keybinding: W/Up Arrow) - - - Move Backward (SL Keybinding: S/Down Arrow) - - - Move Left (SL Keybinding: Shift-(A/Left Arrow)) - - - Move Right (SL Keybinding: Shift-(D/Right Arrow)) - - - Not Flying: Jump/Flying: Move Up (SL Keybinding: E) - - - Not Flying: Croutch/Flying: Move Down (SL Keybinding: C) - - - Unused - - - Unused - - - Unused - - - Unused - - - ORed with AGENT_CONTROL_AT_* if the keyboard is being used - - - ORed with AGENT_CONTROL_LEFT_* if the keyboard is being used - - - ORed with AGENT_CONTROL_UP_* if the keyboard is being used - - - Fly - - - - - - Finish our current animation - - - Stand up from the ground or a prim seat - - - Sit on the ground at our current location - - - Whether mouselook is currently enabled - - - Legacy, used if a key was pressed for less than a certain amount of time - - - Legacy, used if a key was pressed for less than a certain amount of time - - - Legacy, used if a key was pressed for less than a certain amount of time - - - Legacy, used if a key was pressed for less than a certain amount of time - - - Legacy, used if a key was pressed for less than a certain amount of time - - - Legacy, used if a key was pressed for less than a certain amount of time - - - - - - - - - Set when the avatar is idled or set to away. Note that the away animation is - activated separately from setting this flag - - - - - - - - - - - - - - - - Agent movement and camera control - - Agent movement is controlled by setting specific - After the control flags are set, An AgentUpdate is required to update the simulator of the specified flags - This is most easily accomplished by setting one or more of the AgentMovement properties - - Movement of an avatar is always based on a compass direction, for example AtPos will move the - agent from West to East or forward on the X Axis, AtNeg will of course move agent from - East to West or backward on the X Axis, LeftPos will be South to North or forward on the Y Axis - The Z axis is Up, finer grained control of movements can be done using the Nudge properties - - - - Agent camera controls - - - Currently only used for hiding your group title - - - Action state of the avatar, which can currently be - typing and editing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Timer for sending AgentUpdate packets - - - Default constructor - - - - Send an AgentUpdate with the camera set at the current agent - position and pointing towards the heading specified - - Camera rotation in radians - Whether to send the AgentUpdate reliable - or not - - - - Rotates the avatar body and camera toward a target position. - This will also anchor the camera position on the avatar - - Region coordinates to turn toward - - - - Send new AgentUpdate packet to update our current camera - position and rotation - - - - - Send new AgentUpdate packet to update our current camera - position and rotation - - Whether to require server acknowledgement - of this packet - - - - Send new AgentUpdate packet to update our current camera - position and rotation - - Whether to require server acknowledgement - of this packet - Simulator to send the update to - - - - Builds an AgentUpdate packet entirely from parameters. This - will not touch the state of Self.Movement or - Self.Movement.Camera in any way - - - - - - - - - - - - - - - Move agent positive along the X axis - - - Move agent negative along the X axis - - - Move agent positive along the Y axis - - - Move agent negative along the Y axis - - - Move agent positive along the Z axis - - - Move agent negative along the Z axis - - - - - - - - - - - - - - - - - - - - - - - - Causes simulator to make agent fly - - - Stop movement - - - Finish animation - - - Stand up from a sit - - - Tells simulator to sit agent on ground - - - Place agent into mouselook mode - - - Nudge agent positive along the X axis - - - Nudge agent negative along the X axis - - - Nudge agent positive along the Y axis - - - Nudge agent negative along the Y axis - - - Nudge agent positive along the Z axis - - - Nudge agent negative along the Z axis - - - - - - - - - Tell simulator to mark agent as away - - - - - - - - - - - - - - - - Returns "always run" value, or changes it by sending a SetAlwaysRunPacket - - - - The current value of the agent control flags - - - Gets or sets the interval in milliseconds at which - AgentUpdate packets are sent to the current simulator. Setting - this to a non-zero value will also enable the packet sending if - it was previously off, and setting it to zero will disable - - - Gets or sets whether AgentUpdate packets are sent to - the current simulator - - - Reset movement controls every time we send an update - - - - Camera controls for the agent, mostly a thin wrapper around - CoordinateFrame. This class is only responsible for state - tracking and math, it does not send any packets - - - - - - - The camera is a local frame of reference inside of - the larger grid space. This is where the math happens - - - - Default constructor - - - - - - - - - - - - - - - @@ -6932,7 +2744,7 @@ Contains the data sent when a primitive opens a dialog with this agent - + Construct a new instance of the ScriptDialogEventArgs @@ -6944,6 +2756,7 @@ The last name of the senders owner The communication channel the dialog was sent on The string labels containing the options presented in this dialog + UUID of the scritped object owner Get the dialog message @@ -6970,6 +2783,9 @@ Get the string labels containing the options presented in this dialog + + UUID of the scritped object owner + Contains the data sent when a primitive requests debit or other permissions requesting a YES or NO answer @@ -7004,7 +2820,7 @@ Get the permissions being requested - Contains the data sent when a primitive sends a request + Contains the data sent when a primitive sends a request to an agent to open the specified URL @@ -7067,10 +2883,10 @@ - Contains the transaction summary when an item is purchased, + Contains the transaction summary when an item is purchased, money is given, or land is purchased - + Construct a new instance of the MoneyBalanceReplyEventArgs object @@ -7099,6 +2915,9 @@ Get the description of the transaction + + Detailed transaction information + Data sent from the simulator containing information about your agent and active group information @@ -7312,7 +3131,7 @@ Get the velocity of the primitive sending the sensor - Contains the response data returned from the simulator in response to a + Contains the response data returned from the simulator in response to a Construct a new instance of the AvatarSitResponseEventArgs object @@ -7370,15776 +3189,87 @@ Get the ID of the agent that left - - - Return a decoded capabilities message as a strongly typed object - - A string containing the name of the capabilities message key - An to decode - A strongly typed object containing the decoded information from the capabilities message, or null - if no existing Message object exists for the specified event + + Event arguments with the result of setting display name operation - - - Represents a string of characters encoded with specific formatting properties - - - - A text string containing main text of the notecard - - - List of s embedded on the notecard - - - Construct an Asset of type Notecard - - - - Construct an Asset object of type Notecard - - A unique specific to this asset - A byte array containing the raw asset data - - - - Encode the raw contents of a string with the specific Linden Text properties - - - - - Decode the raw asset data including the Linden Text properties - - true if the AssetData was successfully decoded - - - Override the base classes AssetType - - - - Class for controlling various system settings. - - Some values are readonly because they affect things that - happen when the GridClient object is initialized, so changing them at - runtime won't do any good. Non-readonly values may affect things that - happen at login or dynamically - - - Main grid login server - - - Beta grid login server - - - - InventoryManager requests inventory information on login, - GridClient initializes an Inventory store for main inventory. - - - - - InventoryManager requests library information on login, - GridClient initializes an Inventory store for the library. - - - - Number of milliseconds between sending pings to each sim - - - Number of milliseconds between sending camera updates - - - Number of milliseconds between updating the current - positions of moving, non-accelerating and non-colliding objects - - - Millisecond interval between ticks, where all ACKs are - sent out and the age of unACKed packets is checked - - - The initial size of the packet inbox, where packets are - stored before processing - - - Maximum size of packet that we want to send over the wire - - - The maximum value of a packet sequence number before it - rolls over back to one - - - The maximum size of the sequence number archive, used to - check for resent and/or duplicate packets - - - The relative directory where external resources are kept - - - Login server to connect to - - - IP Address the client will bind to - - - Use XML-RPC Login or LLSD Login, default is XML-RPC Login - - - Number of milliseconds before an asset transfer will time - out - - - Number of milliseconds before a teleport attempt will time - out - - - Number of milliseconds before NetworkManager.Logout() will - time out - - - Number of milliseconds before a CAPS call will time out - Setting this too low will cause web requests time out and - possibly retry repeatedly - - - Number of milliseconds for xml-rpc to timeout - - - Milliseconds before a packet is assumed lost and resent - - - Milliseconds without receiving a packet before the - connection to a simulator is assumed lost - - - Milliseconds to wait for a simulator info request through - the grid interface - - - Maximum number of queued ACKs to be sent before SendAcks() - is forced - - - Network stats queue length (seconds) - - - Enable/disable storing terrain heightmaps in the - TerrainManager - - - Enable/disable sending periodic camera updates - - - Enable/disable automatically setting agent appearance at - login and after sim crossing - - - Enable/disable automatically setting the bandwidth throttle - after connecting to each simulator - The default throttle uses the equivalent of the maximum - bandwidth setting in the official client. If you do not set a - throttle your connection will by default be throttled well below - the minimum values and you may experience connection problems - - - Enable/disable the sending of pings to monitor lag and - packet loss - - - Should we connect to multiple sims? This will allow - viewing in to neighboring simulators and sim crossings - (Experimental) - - - If true, all object update packets will be decoded in to - native objects. If false, only updates for our own agent will be - decoded. Registering an event handler will force objects for that - type to always be decoded. If this is disabled the object tracking - will have missing or partial prim and avatar information - - - If true, when a cached object check is received from the - server the full object info will automatically be requested - - - Whether to establish connections to HTTP capabilities - servers for simulators - - - Whether to decode sim stats - - - The capabilities servers are currently designed to - periodically return a 502 error which signals for the client to - re-establish a connection. Set this to true to log those 502 errors - - - If true, any reference received for a folder or item - the library is not aware of will automatically be fetched - - - If true, and SEND_AGENT_UPDATES is true, - AgentUpdate packets will continuously be sent out to give the bot - smoother movement and autopiloting - - - If true, currently visible avatars will be stored - in dictionaries inside Simulator.ObjectAvatars. - If false, a new Avatar or Primitive object will be created - each time an object update packet is received - - - If true, currently visible avatars will be stored - in dictionaries inside Simulator.ObjectPrimitives. - If false, a new Avatar or Primitive object will be created - each time an object update packet is received - - - If true, position and velocity will periodically be - interpolated (extrapolated, technically) for objects and - avatars that are being tracked by the library. This is - necessary to increase the accuracy of speed and position - estimates for simulated objects - - - - If true, utilization statistics will be tracked. There is a minor penalty - in CPU time for enabling this option. - - - - If true, parcel details will be stored in the - Simulator.Parcels dictionary as they are received - - - - If true, an incoming parcel properties reply will automatically send - a request for the parcel access list - - - - - if true, an incoming parcel properties reply will automatically send - a request for the traffic count. - - - - - If true, images, and other assets downloaded from the server - will be cached in a local directory - - - - Path to store cached texture data - - - Maximum size cached files are allowed to take on disk (bytes) - - - Default color used for viewer particle effects - - - Maximum number of times to resend a failed packet - - - Throttle outgoing packet rate - - - UUID of a texture used by some viewers to indentify type of client used - - - - Download textures using GetTexture capability when available - - - - The maximum number of concurrent texture downloads allowed - Increasing this number will not necessarily increase texture retrieval times due to - simulator throttles - - - - The Refresh timer inteval is used to set the delay between checks for stalled texture downloads - - This is a static variable which applies to all instances - - - - Textures taking longer than this value will be flagged as timed out and removed from the pipeline - - - - - Get or set the minimum log level to output to the console by default - - If the library is not compiled with DEBUG defined and this level is set to DEBUG - You will get no output on the console. This behavior can be overriden by creating - a logger configuration file for log4net - - - - Attach avatar names to log messages - - - Log packet retransmission info - - - Constructor - Reference to a GridClient object - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Cost of uploading an asset - Read-only since this value is dynamically fetched at login - - - - NetworkManager is responsible for managing the network layer of - OpenMetaverse. It tracks all the server connections, serializes - outgoing traffic and deserializes incoming traffic, and provides - instances of delegates for network-related events. - - - Login Routines - - - - The event subscribers, null of no subscribers - - - Raises the PacketSent Event - A PacketSentEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the LoggedOut Event - A LoggedOutEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the SimConnecting Event - A SimConnectingEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the SimConnected Event - A SimConnectedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the SimDisconnected Event - A SimDisconnectedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the Disconnected Event - A DisconnectedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the SimChanged Event - A SimChangedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the EventQueueRunning Event - A EventQueueRunningEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - All of the simulators we are currently connected to - - - Handlers for incoming capability events - - - Handlers for incoming packets - - - Incoming packets that are awaiting handling - - - Outgoing packets that are awaiting handling - - - - Default constructor - - Reference to the GridClient object - - - - Register an event handler for a packet. This is a low level event - interface and should only be used if you are doing something not - supported in the library - - Packet type to trigger events for - Callback to fire when a packet of this type - is received - - - - Register an event handler for a packet. This is a low level event - interface and should only be used if you are doing something not - supported in the library - - Packet type to trigger events for - Callback to fire when a packet of this type - is received - True if the callback should be ran - asynchronously. Only set this to false (synchronous for callbacks - that will always complete quickly) - If any callback for a packet type is marked as - asynchronous, all callbacks for that packet type will be fired - asynchronously - - - - Unregister an event handler for a packet. This is a low level event - interface and should only be used if you are doing something not - supported in the library - - Packet type this callback is registered with - Callback to stop firing events for - - - - Register a CAPS event handler. This is a low level event interface - and should only be used if you are doing something not supported in - the library - - Name of the CAPS event to register a handler for - Callback to fire when a CAPS event is received - - - - Unregister a CAPS event handler. This is a low level event interface - and should only be used if you are doing something not supported in - the library - - Name of the CAPS event this callback is - registered with - Callback to stop firing events for - - - - Send a packet to the simulator the avatar is currently occupying - - Packet to send - - - - Send a packet to a specified simulator - - Packet to send - Simulator to send the packet to - - - - Connect to a simulator - - IP address to connect to - Port to connect to - Handle for this simulator, to identify its - location in the grid - Whether to set CurrentSim to this new - connection, use this if the avatar is moving in to this simulator - URL of the capabilities server to use for - this sim connection - A Simulator object on success, otherwise null - - - - Connect to a simulator - - IP address and port to connect to - Handle for this simulator, to identify its - location in the grid - Whether to set CurrentSim to this new - connection, use this if the avatar is moving in to this simulator - URL of the capabilities server to use for - this sim connection - A Simulator object on success, otherwise null - - - - Initiate a blocking logout request. This will return when the logout - handshake has completed or when Settings.LOGOUT_TIMEOUT - has expired and the network layer is manually shut down - - - - - Initiate the logout process. Check if logout succeeded with the - OnLogoutReply event, and if this does not fire the - Shutdown() function needs to be manually called - - - - - Close a connection to the given simulator - - - - - - - Shutdown will disconnect all the sims except for the current sim - first, and then kill the connection to CurrentSim. This should only - be called if the logout process times out on RequestLogout - - Type of shutdown - - - - Shutdown will disconnect all the sims except for the current sim - first, and then kill the connection to CurrentSim. This should only - be called if the logout process times out on RequestLogout - - Type of shutdown - Shutdown message - - - - Searches through the list of currently connected simulators to find - one attached to the given IPEndPoint - - IPEndPoint of the Simulator to search for - A Simulator reference on success, otherwise null - - - - Fire an event when an event queue connects for capabilities - - Simulator the event queue is attached to - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - The event subscribers, null of no subscribers - - - Raises the LoginProgress Event - A LoginProgressEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - Seed CAPS URL returned from the login server - - - A list of packets obtained during the login process which - networkmanager will log but not process - - - - Generate sane default values for a login request - - Account first name - Account last name - Account password - Client application name - Client application version - A populated struct containing - sane defaults - - - - Simplified login that takes the most common and required fields - - Account first name - Account last name - Account password - Client application name - Client application version - Whether the login was successful or not. On failure the - LoginErrorKey string will contain the error code and LoginMessage - will contain a description of the error - - - - Simplified login that takes the most common fields along with a - starting location URI, and can accept an MD5 string instead of a - plaintext password - - Account first name - Account last name - Account password or MD5 hash of the password - such as $1$1682a1e45e9f957dcdf0bb56eb43319c - Client application name - Starting location URI that can be built with - StartLocation() - Client application version - Whether the login was successful or not. On failure the - LoginErrorKey string will contain the error code and LoginMessage - will contain a description of the error - - - - Login that takes a struct of all the values that will be passed to - the login server - - The values that will be passed to the login - server, all fields must be set even if they are String.Empty - Whether the login was successful or not. On failure the - LoginErrorKey string will contain the error code and LoginMessage - will contain a description of the error - - - - Build a start location URI for passing to the Login function - - Name of the simulator to start in - X coordinate to start at - Y coordinate to start at - Z coordinate to start at - String with a URI that can be used to login to a specified - location - - - - Handles response from XML-RPC login replies - - - - - Handle response from LLSD login replies - - - - - - - - Get current OS - - Either "Win" or "Linux" - - - - Get clients default Mac Address - - A string containing the first found Mac Address - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Unique identifier associated with our connections to - simulators - - - The simulator that the logged in avatar is currently - occupying - - - Shows whether the network layer is logged in to the - grid or not - - - Number of packets in the incoming queue - - - Number of packets in the outgoing queue - - - Raised when the simulator sends us data containing - ... - - - Called when a reply is received from the login server, the - login sequence will block until this event returns - - - Current state of logging in - - - Upon login failure, contains a short string key for the - type of login error that occurred - - - The raw XML-RPC reply from the login server, exactly as it - was received (minus the HTTP header) - - - During login this contains a descriptive version of - LoginStatusCode. After a successful login this will contain the - message of the day, and after a failed login a descriptive error - message will be returned - - - - Explains why a simulator or the grid disconnected from us - - - - The client requested the logout or simulator disconnect - - - The server notified us that it is disconnecting - - - Either a socket was closed or network traffic timed out - - - The last active simulator shut down - - - - Holds a simulator reference and a decoded packet, these structs are put in - the packet inbox for event handling - - - - Reference to the simulator that this packet came from - - - Packet that needs to be processed - - - - Holds a simulator reference and a serialized packet, these structs are put in - the packet outbox for sending - - - - Reference to the simulator this packet is destined for - - - Packet that needs to be sent - - - Sequence number of the wrapped packet - - - Number of times this packet has been resent - - - Environment.TickCount when this packet was last sent over the wire - - - - - - - - - - - - - - Type of return to use when returning objects from a parcel - - - - - - - Return objects owned by parcel owner - - - Return objects set to group - - - Return objects not owned by parcel owner or set to group - - - Return a specific list of objects on parcel - - - Return objects that are marked for-sale - - - - Blacklist/Whitelist flags used in parcels Access List - - - - Agent is denied access - - - Agent is granted access - - - - The result of a request for parcel properties - - - - No matches were found for the request - - - Request matched a single parcel - - - Request matched multiple parcels - - - - Flags used in the ParcelAccessListRequest packet to specify whether - we want the access list (whitelist), ban list (blacklist), or both - - - - Request the access list - - - Request the ban list - - - Request both White and Black lists - - - - Sequence ID in ParcelPropertiesReply packets (sent when avatar - tries to cross a parcel border) - - - - Parcel is currently selected - - - Parcel restricted to a group the avatar is not a - member of - - - Avatar is banned from the parcel - - - Parcel is restricted to an access list that the - avatar is not on - - - Response to hovering over a parcel - - - - The tool to use when modifying terrain levels - - - - Level the terrain - - - Raise the terrain - - - Lower the terrain - - - Smooth the terrain - - - Add random noise to the terrain - - - Revert terrain to simulator default - - - - The tool size to use when changing terrain levels - - - - Small - - - Medium - - - Large - - - - Reasons agent is denied access to a parcel on the simulator - - - - Agent is not denied, access is granted - - - Agent is not a member of the group set for the parcel, or which owns the parcel - - - Agent is not on the parcels specific allow list - - - Agent is on the parcels ban list - - - Unknown - - - Agent is not age verified and parcel settings deny access to non age verified avatars - - - - Parcel overlay type. This is used primarily for highlighting and - coloring which is why it is a single integer instead of a set of - flags - - These values seem to be poorly thought out. The first three - bits represent a single value, not flags. For example Auction (0x05) is - not a combination of OwnedByOther (0x01) and ForSale(0x04). However, - the BorderWest and BorderSouth values are bit flags that get attached - to the value stored in the first three bits. Bits four, five, and six - are unused - - - Public land - - - Land is owned by another avatar - - - Land is owned by a group - - - Land is owned by the current avatar - - - Land is for sale - - - Land is being auctioned - - - To the west of this area is a parcel border - - - To the south of this area is a parcel border - - - - Various parcel properties - - - - No flags set - - - Allow avatars to fly (a client-side only restriction) - - - Allow foreign scripts to run - - - This parcel is for sale - - - Allow avatars to create a landmark on this parcel - - - Allows all avatars to edit the terrain on this parcel - - - Avatars have health and can take damage on this parcel. - If set, avatars can be killed and sent home here - - - Foreign avatars can create objects here - - - All objects on this parcel can be purchased - - - Access is restricted to a group - - - Access is restricted to a whitelist - - - Ban blacklist is enabled - - - Unknown - - - List this parcel in the search directory - - - Allow personally owned parcels to be deeded to group - - - If Deeded, owner contributes required tier to group parcel is deeded to - - - Restrict sounds originating on this parcel to the - parcel boundaries - - - Objects on this parcel are sold when the land is - purchsaed - - - Allow this parcel to be published on the web - - - The information for this parcel is mature content - - - The media URL is an HTML page - - - The media URL is a raw HTML string - - - Restrict foreign object pushes - - - Ban all non identified/transacted avatars - - - Allow group-owned scripts to run - - - Allow object creation by group members or group - objects - - - Allow all objects to enter this parcel - - - Only allow group and owner objects to enter this parcel - - - Voice Enabled on this parcel - - - Use Estate Voice channel for Voice on this parcel - - - Deny Age Unverified Users - - - - Parcel ownership status - - - - Placeholder - - - Parcel is leased (owned) by an avatar or group - - - Parcel is in process of being leased (purchased) by an avatar or group - - - Parcel has been abandoned back to Governor Linden - - - - Category parcel is listed in under search - - - - No assigned category - - - Linden Infohub or public area - - - Adult themed area - - - Arts and Culture - - - Business - - - Educational - - - Gaming - - - Hangout or Club - - - Newcomer friendly - - - Parks and Nature - - - Residential - - - Shopping - - - Not Used? - - - Other - - - Not an actual category, only used for queries - - - - Type of teleport landing for a parcel - - - - Unset, simulator default - - - Specific landing point set for this parcel - - - No landing point set, direct teleports enabled for - this parcel - - - - Parcel Media Command used in ParcelMediaCommandMessage - - - - Stop the media stream and go back to the first frame - - - Pause the media stream (stop playing but stay on current frame) - - - Start the current media stream playing and stop when the end is reached - - - Start the current media stream playing, - loop to the beginning when the end is reached and continue to play - - - Specifies the texture to replace with video - If passing the key of a texture, it must be explicitly typecast as a key, - not just passed within double quotes. - - - Specifies the movie URL (254 characters max) - - - Specifies the time index at which to begin playing - - - Specifies a single agent to apply the media command to - - - Unloads the stream. While the stop command sets the texture to the first frame of the movie, - unload resets it to the real texture that the movie was replacing. - - - Turn on/off the auto align feature, similar to the auto align checkbox in the parcel media properties - (NOT to be confused with the "align" function in the textures view of the editor!) Takes TRUE or FALSE as parameter. - - - Allows a Web page or image to be placed on a prim (1.19.1 RC0 and later only). - Use "text/html" for HTML. - - - Resizes a Web page to fit on x, y pixels (1.19.1 RC0 and later only). - This might still not be working - - - Sets a description for the media being displayed (1.19.1 RC0 and later only). - - - - Some information about a parcel of land returned from a DirectoryManager search - - - - Global Key of record - - - Parcel Owners - - - Name field of parcel, limited to 128 characters - - - Description field of parcel, limited to 256 characters - - - Total Square meters of parcel - - - Total area billable as Tier, for group owned land this will be 10% less than ActualArea - - - True of parcel is in Mature simulator - - - Grid global X position of parcel - - - Grid global Y position of parcel - - - Grid global Z position of parcel (not used) - - - Name of simulator parcel is located in - - - Texture of parcels display picture - - - Float representing calculated traffic based on time spent on parcel by avatars - - - Sale price of parcel (not used) - - - Auction ID of parcel - - - - Parcel Media Information - - - - A byte, if 0x1 viewer should auto scale media to fit object - - - A boolean, if true the viewer should loop the media - - - The Asset UUID of the Texture which when applied to a - primitive will display the media - - - A URL which points to any Quicktime supported media type - - - A description of the media - - - An Integer which represents the height of the media - - - An integer which represents the width of the media - - - A string which contains the mime type of the media - - - - Parcel of land, a portion of virtual real estate in a simulator - - - - The total number of contiguous 4x4 meter blocks your agent owns within this parcel - - - The total number of contiguous 4x4 meter blocks contained in this parcel owned by a group or agent other than your own - - - Deprecated, Value appears to always be 0 - - - Simulator-local ID of this parcel - - - UUID of the owner of this parcel - - - Whether the land is deeded to a group or not - - - - - - Date land was claimed - - - Appears to always be zero - - - This field is no longer used - - - Minimum corner of the axis-aligned bounding box for this - parcel - - - Maximum corner of the axis-aligned bounding box for this - parcel - - - Bitmap describing land layout in 4x4m squares across the - entire region - - - Total parcel land area - - - - - - Maximum primitives across the entire simulator owned by the same agent or group that owns this parcel that can be used - - - Total primitives across the entire simulator calculated by combining the allowed prim counts for each parcel - owned by the agent or group that owns this parcel - - - Maximum number of primitives this parcel supports - - - Total number of primitives on this parcel - - - For group-owned parcels this indicates the total number of prims deeded to the group, - for parcels owned by an individual this inicates the number of prims owned by the individual - - - Total number of primitives owned by the parcel group on - this parcel, or for parcels owned by an individual with a group set the - total number of prims set to that group. - - - Total number of prims owned by other avatars that are not set to group, or not the parcel owner - - - A bonus multiplier which allows parcel prim counts to go over times this amount, this does not affect - the max prims per simulator. e.g: 117 prim parcel limit x 1.5 bonus = 175 allowed - - - Autoreturn value in minutes for others' objects - - - - - - Sale price of the parcel, only useful if ForSale is set - The SalePrice will remain the same after an ownership - transfer (sale), so it can be used to see the purchase price after - a sale if the new owner has not changed it - - - Parcel Name - - - Parcel Description - - - URL For Music Stream - - - - - - Price for a temporary pass - - - How long is pass valid for - - - - - - Key of authorized buyer - - - Key of parcel snapshot - - - The landing point location - - - The landing point LookAt - - - The type of landing enforced from the enum - - - - - - - - - - - - Access list of who is whitelisted on this - parcel - - - Access list of who is blacklisted on this - parcel - - - TRUE of region denies access to age unverified users - - - true to obscure (hide) media url - - - true to obscure (hide) music url - - - A struct containing media details - - - - Displays a parcel object in string format - - string containing key=value pairs of a parcel object - - - - Defalt constructor - - Local ID of this parcel - - - - Update the simulator with any local changes to this Parcel object - - Simulator to send updates to - Whether we want the simulator to confirm - the update with a reply packet or not - - - - Set Autoreturn time - - Simulator to send the update to - - - - Parcel (subdivided simulator lots) subsystem - - - - The event subscribers. null if no subcribers - - - Raises the ParcelDwellReply event - A ParcelDwellReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ParcelInfoReply event - A ParcelInfoReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ParcelProperties event - A ParcelPropertiesEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ParcelAccessListReply event - A ParcelAccessListReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ParcelObjectOwnersReply event - A ParcelObjectOwnersReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the SimParcelsDownloaded event - A SimParcelsDownloadedEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ForceSelectObjectsReply event - A ForceSelectObjectsReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ParcelMediaUpdateReply event - A ParcelMediaUpdateReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ParcelMediaCommand event - A ParcelMediaCommandEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - - Default constructor - - A reference to the GridClient object - - - - Request basic information for a single parcel - - Simulator-local ID of the parcel - - - - Request properties of a single parcel - - Simulator containing the parcel - Simulator-local ID of the parcel - An arbitrary integer that will be returned - with the ParcelProperties reply, useful for distinguishing between - multiple simultaneous requests - - - - Request the access list for a single parcel - - Simulator containing the parcel - Simulator-local ID of the parcel - An arbitrary integer that will be returned - with the ParcelAccessList reply, useful for distinguishing between - multiple simultaneous requests - - - - - Request properties of parcels using a bounding box selection - - Simulator containing the parcel - Northern boundary of the parcel selection - Eastern boundary of the parcel selection - Southern boundary of the parcel selection - Western boundary of the parcel selection - An arbitrary integer that will be returned - with the ParcelProperties reply, useful for distinguishing between - different types of parcel property requests - A boolean that is returned with the - ParcelProperties reply, useful for snapping focus to a single - parcel - - - - Request all simulator parcel properties (used for populating the Simulator.Parcels - dictionary) - - Simulator to request parcels from (must be connected) - - - - Request all simulator parcel properties (used for populating the Simulator.Parcels - dictionary) - - Simulator to request parcels from (must be connected) - If TRUE, will force a full refresh - Number of milliseconds to pause in between each request - - - - Request the dwell value for a parcel - - Simulator containing the parcel - Simulator-local ID of the parcel - - - - Send a request to Purchase a parcel of land - - The Simulator the parcel is located in - The parcels region specific local ID - true if this parcel is being purchased by a group - The groups - true to remove tier contribution if purchase is successful - The parcels size - The purchase price of the parcel - - - - - Reclaim a parcel of land - - The simulator the parcel is in - The parcels region specific local ID - - - - Deed a parcel to a group - - The simulator the parcel is in - The parcels region specific local ID - The groups - - - - Request prim owners of a parcel of land. - - Simulator parcel is in - The parcels region specific local ID - - - - Return objects from a parcel - - Simulator parcel is in - The parcels region specific local ID - the type of objects to return, - A list containing object owners s to return - - - - Subdivide (split) a parcel - - - - - - - - - - Join two parcels of land creating a single parcel - - - - - - - - - - Get a parcels LocalID - - Simulator parcel is in - Vector3 position in simulator (Z not used) - 0 on failure, or parcel LocalID on success. - A call to Parcels.RequestAllSimParcels is required to populate map and - dictionary. - - - - Terraform (raise, lower, etc) an area or whole parcel of land - - Simulator land area is in. - LocalID of parcel, or -1 if using bounding box - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - true on successful request sent. - Settings.STORE_LAND_PATCHES must be true, - Parcel information must be downloaded using RequestAllSimParcels() - - - - Terraform (raise, lower, etc) an area or whole parcel of land - - Simulator land area is in. - west border of area to modify - south border of area to modify - east border of area to modify - north border of area to modify - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - true on successful request sent. - Settings.STORE_LAND_PATCHES must be true, - Parcel information must be downloaded using RequestAllSimParcels() - - - - Terraform (raise, lower, etc) an area or whole parcel of land - - Simulator land area is in. - LocalID of parcel, or -1 if using bounding box - west border of area to modify - south border of area to modify - east border of area to modify - north border of area to modify - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - How many meters + or - to lower, 1 = 1 meter - true on successful request sent. - Settings.STORE_LAND_PATCHES must be true, - Parcel information must be downloaded using RequestAllSimParcels() - - - - Terraform (raise, lower, etc) an area or whole parcel of land - - Simulator land area is in. - LocalID of parcel, or -1 if using bounding box - west border of area to modify - south border of area to modify - east border of area to modify - north border of area to modify - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - How many meters + or - to lower, 1 = 1 meter - Height at which the terraform operation is acting at - - - - Sends a request to the simulator to return a list of objects owned by specific owners - - Simulator local ID of parcel - Owners, Others, Etc - List containing keys of avatars objects to select; - if List is null will return Objects of type selectType - Response data is returned in the event - - - - Eject and optionally ban a user from a parcel - - target key of avatar to eject - true to also ban target - - - - Freeze or unfreeze an avatar over your land - - target key to freeze - true to freeze, false to unfreeze - - - - Abandon a parcel of land - - Simulator parcel is in - Simulator local ID of parcel - - - - Requests the UUID of the parcel in a remote region at a specified location - - Location of the parcel in the remote region - Remote region handle - Remote region UUID - If successful UUID of the remote parcel, UUID.Zero otherwise - - - - Retrieves information on resources used by the parcel - - UUID of the parcel - Should per object resource usage be requested - Callback invoked when the request is complete - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event - - - Raised when the simulator responds to a request - - - Raised when the simulator responds to a request - - - Raised when the simulator responds to a request - - - Raised when the simulator responds to a request - - - Raised when the simulator responds to a request - - - Raised when the simulator responds to a request - - - Raised when the simulator responds to a request - - - Raised when the simulator responds to a Parcel Update request - - - Raised when the parcel your agent is located sends a ParcelMediaCommand - - - - Parcel Accesslist - - - - Agents - - - - - - Flags for specific entry in white/black lists - - - - Owners of primitives on parcel - - - - Prim Owners - - - True of owner is group - - - Total count of prims owned by OwnerID - - - true of OwnerID is currently online and is not a group - - - The date of the most recent prim left by OwnerID - - - - Called once parcel resource usage information has been collected - - Indicates if operation was successfull - Parcel resource usage information - - - Contains a parcels dwell data returned from the simulator in response to an - - - - Construct a new instance of the ParcelDwellReplyEventArgs class - - The global ID of the parcel - The simulator specific ID of the parcel - The calculated dwell for the parcel - - - Get the global ID of the parcel - - - Get the simulator specific ID of the parcel - - - Get the calculated dwell - - - Contains basic parcel information data returned from the - simulator in response to an request - - - - Construct a new instance of the ParcelInfoReplyEventArgs class - - The object containing basic parcel info - - - Get the object containing basic parcel info - - - Contains basic parcel information data returned from the simulator in response to an request - - - - Construct a new instance of the ParcelPropertiesEventArgs class - - The object containing the details - The object containing the details - The result of the request - The number of primitieves your agent is - currently selecting and or sitting on in this parcel - The user assigned ID used to correlate a request with - these results - TODO: - - - Get the simulator the parcel is located in - - - Get the object containing the details - If Result is NoData, this object will not contain valid data - - - Get the result of the request - - - Get the number of primitieves your agent is - currently selecting and or sitting on in this parcel - - - Get the user assigned ID used to correlate a request with - these results - - - TODO: - - - Contains blacklist and whitelist data returned from the simulator in response to an request - - - - Construct a new instance of the ParcelAccessListReplyEventArgs class - - The simulator the parcel is located in - The user assigned ID used to correlate a request with - these results - The simulator specific ID of the parcel - TODO: - The list containing the white/blacklisted agents for the parcel - - - Get the simulator the parcel is located in - - - Get the user assigned ID used to correlate a request with - these results - - - Get the simulator specific ID of the parcel - - - TODO: - - - Get the list containing the white/blacklisted agents for the parcel - - - Contains blacklist and whitelist data returned from the - simulator in response to an request - - - - Construct a new instance of the ParcelObjectOwnersReplyEventArgs class - - The simulator the parcel is located in - The list containing prim ownership counts - - - Get the simulator the parcel is located in - - - Get the list containing prim ownership counts - - - Contains the data returned when all parcel data has been retrieved from a simulator - - - - Construct a new instance of the SimParcelsDownloadedEventArgs class - - The simulator the parcel data was retrieved from - The dictionary containing the parcel data - The multidimensional array containing a x,y grid mapped - to each 64x64 parcel's LocalID. - - - Get the simulator the parcel data was retrieved from - - - A dictionary containing the parcel data where the key correlates to the ParcelMap entry - - - Get the multidimensional array containing a x,y grid mapped - to each 64x64 parcel's LocalID. - - - Contains the data returned when a request - - - - Construct a new instance of the ForceSelectObjectsReplyEventArgs class - - The simulator the parcel data was retrieved from - The list of primitive IDs - true if the list is clean and contains the information - only for a given request - - - Get the simulator the parcel data was retrieved from - - - Get the list of primitive IDs - - - true if the list is clean and contains the information - only for a given request - - - Contains data when the media data for a parcel the avatar is on changes - - - - Construct a new instance of the ParcelMediaUpdateReplyEventArgs class - - the simulator the parcel media data was updated in - The updated media information - - - Get the simulator the parcel media data was updated in - - - Get the updated media information - - - Contains the media command for a parcel the agent is currently on - - - - Construct a new instance of the ParcelMediaCommandEventArgs class - - The simulator the parcel media command was issued in - - - The media command that was sent - - - - Get the simulator the parcel media command was issued in - - - - - - - - - Get the media command that was sent - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The ObservableDictionary class is used for storing key/value pairs. It has methods for firing - events to subscribers when items are added, removed, or changed. - - Key - Value - - - - A dictionary of callbacks to fire when specified action occurs - - - - - Register a callback to be fired when an action occurs - - The action - The callback to fire - - - - Unregister a callback - - The action - The callback to fire - - - - - - - - - - Internal dictionary that this class wraps around. Do not - modify or enumerate the contents of this dictionary without locking - - - - Initializes a new instance of the Class - with the specified key/value, has the default initial capacity. - - - - // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value. - public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(); - - - - - - Initializes a new instance of the Class - with the specified key/value, With its initial capacity specified. - - Initial size of dictionary - - - // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value, - // initially allocated room for 10 entries. - public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(10); - - - - - - Try to get entry from the with specified key - - Key to use for lookup - Value returned - if specified key exists, if not found - - - // find your avatar using the Simulator.ObjectsAvatars ObservableDictionary: - Avatar av; - if (Client.Network.CurrentSim.ObjectsAvatars.TryGetValue(Client.Self.AgentID, out av)) - Console.WriteLine("Found Avatar {0}", av.Name); - - - - - - - Finds the specified match. - - The match. - Matched value - - - // use a delegate to find a prim in the ObjectsPrimitives ObservableDictionary - // with the ID 95683496 - uint findID = 95683496; - Primitive findPrim = sim.ObjectsPrimitives.Find( - delegate(Primitive prim) { return prim.ID == findID; }); - - - - - Find All items in an - return matching items. - a containing found items. - - Find All prims within 20 meters and store them in a List - - int radius = 20; - List<Primitive> prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll( - delegate(Primitive prim) { - Vector3 pos = prim.Position; - return ((prim.ParentID == 0) && (pos != Vector3.Zero) && (Vector3.Distance(pos, location) < radius)); - } - ); - - - - - Find All items in an - return matching keys. - a containing found keys. - - Find All keys which also exist in another dictionary - - List<UUID> matches = myDict.FindAll( - delegate(UUID id) { - return myOtherDict.ContainsKey(id); - } - ); - - - - - Check if Key exists in Dictionary - Key to check for - if found, otherwise - - - Check if Value exists in Dictionary - Value to check for - if found, otherwise - - - - Adds the specified key to the dictionary, dictionary locking is not performed, - - - The key - The value - - - - Removes the specified key, dictionary locking is not performed - - The key. - if successful, otherwise - - - - Clear the contents of the dictionary - - - - - Enumerator for iterating dictionary entries - - - - - - Gets the number of Key/Value pairs contained in the - - - - - Indexer for the dictionary - - The key - The value - - - - Avatar group management - - - - Key of Group Member - - - Total land contribution - - - Online status information - - - Abilities that the Group Member has - - - Current group title - - - Is a group owner - - - - Role manager for a group - - - - Key of the group - - - Key of Role - - - Name of Role - - - Group Title associated with Role - - - Description of Role - - - Abilities Associated with Role - - - Returns the role's title - The role's title - - - - Class to represent Group Title - - - - Key of the group - - - ID of the role title belongs to - - - Group Title - - - Whether title is Active - - - Returns group title - - - - Represents a group on the grid - - - - Key of Group - - - Key of Group Insignia - - - Key of Group Founder - - - Key of Group Role for Owners - - - Name of Group - - - Text of Group Charter - - - Title of "everyone" role - - - Is the group open for enrolement to everyone - - - Will group show up in search - - - - - - - - - - - - Is the group Mature - - - Cost of group membership - - - - - - - - - The total number of current members this group has - - - The number of roles this group has configured - - - Show this group in agent's profile - - - Returns the name of the group - A string containing the name of the group - - - - A group Vote - - - - Key of Avatar who created Vote - - - Text of the Vote proposal - - - Total number of votes - - - - A group proposal - - - - The Text of the proposal - - - The minimum number of members that must vote before proposal passes or failes - - - The required ration of yes/no votes required for vote to pass - The three options are Simple Majority, 2/3 Majority, and Unanimous - TODO: this should be an enum - - - The duration in days votes are accepted - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Struct representing a group notice - - - - - - - - - - - - - - - - - - - - - - - Struct representing a group notice list entry - - - - Notice ID - - - Creation timestamp of notice - - - Agent name who created notice - - - Notice subject - - - Is there an attachment? - - - Attachment Type - - - - Struct representing a member of a group chat session and their settings - - - - The of the Avatar - - - True if user has voice chat enabled - - - True of Avatar has moderator abilities - - - True if a moderator has muted this avatars chat - - - True if a moderator has muted this avatars voice - - - - Role update flags - - - - - - - - - - - - - - - - - - - - - - - - - Can send invitations to groups default role - - - Can eject members from group - - - Can toggle 'Open Enrollment' and change 'Signup fee' - - - Member is visible in the public member list - - - Can create new roles - - - Can delete existing roles - - - Can change Role names, titles and descriptions - - - Can assign other members to assigners role - - - Can assign other members to any role - - - Can remove members from roles - - - Can assign and remove abilities in roles - - - Can change group Charter, Insignia, 'Publish on the web' and which - members are publicly visible in group member listings - - - Can buy land or deed land to group - - - Can abandon group owned land to Governor Linden on mainland, or Estate owner for - private estates - - - Can set land for-sale information on group owned parcels - - - Can subdivide and join parcels - - - Can join group chat sessions - - - Can use voice chat in Group Chat sessions - - - Can moderate group chat sessions - - - Can toggle "Show in Find Places" and set search category - - - Can change parcel name, description, and 'Publish on web' settings - - - Can set the landing point and teleport routing on group land - - - Can change music and media settings - - - Can toggle 'Edit Terrain' option in Land settings - - - Can toggle various About Land > Options settings - - - Can always terraform land, even if parcel settings have it turned off - - - Can always fly while over group owned land - - - Can always rez objects on group owned land - - - Can always create landmarks for group owned parcels - - - Can set home location on any group owned parcel - - - Can modify public access settings for group owned parcels - - - Can manager parcel ban lists on group owned land - - - Can manage pass list sales information - - - Can eject and freeze other avatars on group owned land - - - Can return objects set to group - - - Can return non-group owned/set objects - - - Can return group owned objects - - - Can landscape using Linden plants - - - Can deed objects to group - - - Can move group owned objects - - - Can set group owned objects for-sale - - - Pay group liabilities and receive group dividends - - - Can send group notices - - - Can receive group notices - - - Can create group proposals - - - Can vote on group proposals - - - - Handles all network traffic related to reading and writing group - information - - - - The event subscribers. null if no subcribers - - - Raises the CurrentGroups event - A CurrentGroupsEventArgs object containing the - data sent from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupNamesReply event - A GroupNamesEventArgs object containing the - data response from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupProfile event - An GroupProfileEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupMembers event - A GroupMembersEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupRolesDataReply event - A GroupRolesDataReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupRoleMembersReply event - A GroupRolesRoleMembersReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupTitlesReply event - A GroupTitlesReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupAccountSummary event - A GroupAccountSummaryReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupCreated event - An GroupCreatedEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupJoined event - A GroupOperationEventArgs object containing the - result of the operation returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupLeft event - A GroupOperationEventArgs object containing the - result of the operation returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupDropped event - An GroupDroppedEventArgs object containing the - the group your agent left - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupMemberEjected event - An GroupMemberEjectedEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupNoticesListReply event - An GroupNoticesListReplyEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GroupInvitation event - An GroupInvitationEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - A reference to the current instance - - - Currently-active group members requests - - - Currently-active group roles requests - - - Currently-active group role-member requests - - - Dictionary keeping group members while request is in progress - - - Dictionary keeping mebmer/role mapping while request is in progress - - - Dictionary keeping GroupRole information while request is in progress - - - Caches group name lookups - - - - Construct a new instance of the GroupManager class - - A reference to the current instance - - - - Request a current list of groups the avatar is a member of. - - CAPS Event Queue must be running for this to work since the results - come across CAPS. - - - - Lookup name of group based on groupID - - groupID of group to lookup name for. - - - - Request lookup of multiple group names - - List of group IDs to request. - - - Lookup group profile data such as name, enrollment, founder, logo, etc - Subscribe to OnGroupProfile event to receive the results. - group ID (UUID) - - - Request a list of group members. - Subscribe to OnGroupMembers event to receive the results. - group ID (UUID) - UUID of the request, use to index into cache - - - Request group roles - Subscribe to OnGroupRoles event to receive the results. - group ID (UUID) - UUID of the request, use to index into cache - - - Request members (members,role) role mapping for a group. - Subscribe to OnGroupRolesMembers event to receive the results. - group ID (UUID) - UUID of the request, use to index into cache - - - Request a groups Titles - Subscribe to OnGroupTitles event to receive the results. - group ID (UUID) - UUID of the request, use to index into cache - - - Begin to get the group account summary - Subscribe to the OnGroupAccountSummary event to receive the results. - group ID (UUID) - How long of an interval - Which interval (0 for current, 1 for last) - - - Invites a user to a group - The group to invite to - A list of roles to invite a person to - Key of person to invite - - - Set a group as the current active group - group ID (UUID) - - - Change the role that determines your active title - Group ID to use - Role ID to change to - - - Set this avatar's tier contribution - Group ID to change tier in - amount of tier to donate - - - - Save wheather agent wants to accept group notices and list this group in their profile - - Group - Accept notices from this group - List this group in the profile - - - Request to join a group - Subscribe to OnGroupJoined event for confirmation. - group ID (UUID) to join. - - - - Request to create a new group. If the group is successfully - created, L$100 will automatically be deducted - - Subscribe to OnGroupCreated event to receive confirmation. - Group struct containing the new group info - - - Update a group's profile and other information - Groups ID (UUID) to update. - Group struct to update. - - - Eject a user from a group - Group ID to eject the user from - Avatar's key to eject - - - Update role information - Modified role to be updated - - - Create a new group role - Group ID to update - Role to create - - - Delete a group role - Group ID to update - Role to delete - - - Remove an avatar from a role - Group ID to update - Role ID to be removed from - Avatar's Key to remove - - - Assign an avatar to a role - Group ID to update - Role ID to assign to - Avatar's ID to assign to role - - - Request the group notices list - Group ID to fetch notices for - - - Request a group notice by key - ID of group notice - - - Send out a group notice - Group ID to update - GroupNotice structure containing notice data - - - Start a group proposal (vote) - The Group ID to send proposal to - GroupProposal structure containing the proposal - - - Request to leave a group - Subscribe to OnGroupLeft event to receive confirmation - The group to leave - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Raised when the simulator sends us data containing - our current group membership - - - Raised when the simulator responds to a RequestGroupName - or RequestGroupNames request - - - Raised when the simulator responds to a request - - - Raised when the simulator responds to a request - - - Raised when the simulator responds to a request - - - Raised when the simulator responds to a request - - - Raised when the simulator responds to a request - - - Raised when a response to a RequestGroupAccountSummary is returned - by the simulator - - - Raised when a request to create a group is successful - - - Raised when a request to join a group either - fails or succeeds - - - Raised when a request to leave a group either - fails or succeeds - - - Raised when A group is removed from the group server - - - Raised when a request to eject a member from a group either - fails or succeeds - - - Raised when the simulator sends us group notices - - - - Raised when another agent invites our avatar to join a group - - - Contains the current groups your agent is a member of - - - Construct a new instance of the CurrentGroupsEventArgs class - The current groups your agent is a member of - - - Get the current groups your agent is a member of - - - A Dictionary of group names, where the Key is the groups ID and the value is the groups name - - - Construct a new instance of the GroupNamesEventArgs class - The Group names dictionary - - - Get the Group Names dictionary - - - Represents the members of a group - - - - Construct a new instance of the GroupMembersReplyEventArgs class - - The ID of the request - The ID of the group - The membership list of the group - - - Get the ID as returned by the request to correlate - this result set and the request - - - Get the ID of the group - - - Get the dictionary of members - - - Represents the roles associated with a group - - - Construct a new instance of the GroupRolesDataReplyEventArgs class - The ID as returned by the request to correlate - this result set and the request - The ID of the group - The dictionary containing the roles - - - Get the ID as returned by the request to correlate - this result set and the request - - - Get the ID of the group - - - Get the dictionary containing the roles - - - Represents the Role to Member mappings for a group - - - Construct a new instance of the GroupRolesMembersReplyEventArgs class - The ID as returned by the request to correlate - this result set and the request - The ID of the group - The member to roles map - - - Get the ID as returned by the request to correlate - this result set and the request - - - Get the ID of the group - - - Get the member to roles map - - - Represents the titles for a group - - - Construct a new instance of the GroupTitlesReplyEventArgs class - The ID as returned by the request to correlate - this result set and the request - The ID of the group - The titles - - - Get the ID as returned by the request to correlate - this result set and the request - - - Get the ID of the group - - - Get the titles - - - Represents the summary data for a group - - - Construct a new instance of the GroupAccountSummaryReplyEventArgs class - The ID of the group - The summary data - - - Get the ID of the group - - - Get the summary data - - - A response to a group create request - - - Construct a new instance of the GroupCreatedReplyEventArgs class - The ID of the group - the success or faulure of the request - A string containing additional information - - - Get the ID of the group - - - true of the group was created successfully - - - A string containing the message - - - Represents a response to a request - - - Construct a new instance of the GroupOperationEventArgs class - The ID of the group - true of the request was successful - - - Get the ID of the group - - - true of the request was successful - - - Represents your agent leaving a group - - - Construct a new instance of the GroupDroppedEventArgs class - The ID of the group - - - Get the ID of the group - - - Represents a list of active group notices - - - Construct a new instance of the GroupNoticesListReplyEventArgs class - The ID of the group - The list containing active notices - - - Get the ID of the group - - - Get the notices list - - - Represents the profile of a group - - - Construct a new instance of the GroupProfileEventArgs class - The group profile - - - Get the group profile - - - - Provides notification of a group invitation request sent by another Avatar - - The invitation is raised when another avatar makes an offer for our avatar - to join a group. - - - The ID of the Avatar sending the group invitation - - - The name of the Avatar sending the group invitation - - - A message containing the request information which includes - the name of the group, the groups charter and the fee to join details - - - The Simulator - - - Set to true to accept invitation, false to decline - - - - - - Looking direction, must be a normalized vector - Up direction, must be a normalized vector - - - - Align the coordinate frame X and Y axis with a given rotation - around the Z axis in radians - - Absolute rotation around the Z axis in - radians - - - Origin position of this coordinate frame - - - X axis of this coordinate frame, or Forward/At in grid terms - - - Y axis of this coordinate frame, or Left in grid terms - - - Z axis of this coordinate frame, or Up in grid terms - - - - Avatar profile flags - - - - - Represents an avatar (other than your own) - - - - Groups that this avatar is a member of - - - Positive and negative ratings - - - Avatar properties including about text, profile URL, image IDs and - publishing settings - - - Avatar interests including spoken languages, skills, and "want to" - choices - - - Movement control flags for avatars. Typically not set or used by - clients. To move your avatar, use Client.Self.Movement instead - - - - Contains the visual parameters describing the deformation of the avatar - - - - - Default constructor - - - - First name - - - Last name - - - Full name - - - Active group - - - - Positive and negative ratings - - - - Positive ratings for Behavior - - - Negative ratings for Behavior - - - Positive ratings for Appearance - - - Negative ratings for Appearance - - - Positive ratings for Building - - - Negative ratings for Building - - - Positive ratings given by this avatar - - - Negative ratings given by this avatar - - - - Avatar properties including about text, profile URL, image IDs and - publishing settings - - - - First Life about text - - - First Life image ID - - - - - - - - - - - - - - - Profile image ID - - - Flags of the profile - - - Web URL for this profile - - - Should this profile be published on the web - - - Avatar Online Status - - - Is this a mature profile - - - - - - - - - - Avatar interests including spoken languages, skills, and "want to" - choices - - - - Languages profile field - - - - - - - - - - - - - - - - Extract the avatar UUID encoded in a SIP URI - - - - - - - Permissions for control of object media - - - - - Style of cotrols that shold be displayed to the user - - - - - Class representing media data for a single face - - - - Is display of the alternative image enabled - - - Should media auto loop - - - Shoule media be auto played - - - Auto scale media to prim face - - - Should viewer automatically zoom in on the face when clicked - - - Should viewer interpret first click as interaction with the media - or when false should the first click be treated as zoom in commadn - - - Style of controls viewer should display when - viewer media on this face - - - Starting URL for the media - - - Currently navigated URL - - - Media height in pixes - - - Media width in pixels - - - Who can controls the media - - - Who can interact with the media - - - Is URL whitelist enabled - - - Array of URLs that are whitelisted - - - - Serialize to OSD - - OSDMap with the serialized data - - - - Deserialize from OSD data - - Serialized OSD data - Deserialized object - - - - Operation to apply when applying color to texture - - - - - Information needed to translate visual param value to RGBA color - - - - - Construct VisualColorParam - - Operation to apply when applying color to texture - Colors - - - - Represents alpha blending and bump infor for a visual parameter - such as sleive length - - - - Stregth of the alpha to apply - - - File containing the alpha channel - - - Skip blending if parameter value is 0 - - - Use miltiply insted of alpha blending - - - - Create new alhpa information for a visual param - - Stregth of the alpha to apply - File containing the alpha channel - Skip blending if parameter value is 0 - Use miltiply insted of alpha blending - - - - A single visual characteristic of an avatar mesh, such as eyebrow height - - - - Index of this visual param - - - Internal name - - - Group ID this parameter belongs to - - - Name of the wearable this parameter belongs to - - - Displayable label of this characteristic - - - Displayable label for the minimum value of this characteristic - - - Displayable label for the maximum value of this characteristic - - - Default value - - - Minimum value - - - Maximum value - - - Is this param used for creation of bump layer? - - - Alpha blending/bump info - - - Color information - - - Array of param IDs that are drivers for this parameter - - - - Set all the values through the constructor - - Index of this visual param - Internal name - - - Displayable label of this characteristic - Displayable label for the minimum value of this characteristic - Displayable label for the maximum value of this characteristic - Default value - Minimum value - Maximum value - Is this param used for creation of bump layer? - Array of param IDs that are drivers for this parameter - Alpha blending/bump info - Color information - - - - Holds the Params array of all the avatar appearance parameters - - - - - The InternalDictionary class is used through the library for storing key/value pairs. - It is intended to be a replacement for the generic Dictionary class and should - be used in its place. It contains several methods for allowing access to the data from - outside the library that are read only and thread safe. - - - Key - Value - - - Internal dictionary that this class wraps around. Do not - modify or enumerate the contents of this dictionary without locking - on this member - - - - Initializes a new instance of the Class - with the specified key/value, has the default initial capacity. - - - - // initialize a new InternalDictionary named testDict with a string as the key and an int as the value. - public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(); - - - - - - Initializes a new instance of the Class - with the specified key/value, has its initial valies copied from the specified - - - - to copy initial values from - - - // initialize a new InternalDictionary named testAvName with a UUID as the key and an string as the value. - // populates with copied values from example KeyNameCache Dictionary. - - // create source dictionary - Dictionary<UUID, string> KeyNameCache = new Dictionary<UUID, string>(); - KeyNameCache.Add("8300f94a-7970-7810-cf2c-fc9aa6cdda24", "Jack Avatar"); - KeyNameCache.Add("27ba1e40-13f7-0708-3e98-5819d780bd62", "Jill Avatar"); - - // Initialize new dictionary. - public InternalDictionary<UUID, string> testAvName = new InternalDictionary<UUID, string>(KeyNameCache); - - - - - - Initializes a new instance of the Class - with the specified key/value, With its initial capacity specified. - - Initial size of dictionary - - - // initialize a new InternalDictionary named testDict with a string as the key and an int as the value, - // initially allocated room for 10 entries. - public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(10); - - - - - - Try to get entry from with specified key - - Key to use for lookup - Value returned - if specified key exists, if not found - - - // find your avatar using the Simulator.ObjectsAvatars InternalDictionary: - Avatar av; - if (Client.Network.CurrentSim.ObjectsAvatars.TryGetValue(Client.Self.AgentID, out av)) - Console.WriteLine("Found Avatar {0}", av.Name); - - - - - - - Finds the specified match. - - The match. - Matched value - - - // use a delegate to find a prim in the ObjectsPrimitives InternalDictionary - // with the ID 95683496 - uint findID = 95683496; - Primitive findPrim = sim.ObjectsPrimitives.Find( - delegate(Primitive prim) { return prim.ID == findID; }); - - - - - Find All items in an - return matching items. - a containing found items. - - Find All prims within 20 meters and store them in a List - - int radius = 20; - List<Primitive> prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll( - delegate(Primitive prim) { - Vector3 pos = prim.Position; - return ((prim.ParentID == 0) && (pos != Vector3.Zero) && (Vector3.Distance(pos, location) < radius)); - } - ); - - - - - Find All items in an - return matching keys. - a containing found keys. - - Find All keys which also exist in another dictionary - - List<UUID> matches = myDict.FindAll( - delegate(UUID id) { - return myOtherDict.ContainsKey(id); - } - ); - - - - - Perform an on each entry in an - to perform - - - // Iterates over the ObjectsPrimitives InternalDictionary and prints out some information. - Client.Network.CurrentSim.ObjectsPrimitives.ForEach( - delegate(Primitive prim) - { - if (prim.Text != null) - { - Console.WriteLine("NAME={0} ID = {1} TEXT = '{2}'", - prim.PropertiesFamily.Name, prim.ID, prim.Text); - } - }); - - - - - Perform an on each key of an - to perform - - - - Perform an on each KeyValuePair of an - - to perform - - - Check if Key exists in Dictionary - Key to check for - if found, otherwise - - - Check if Value exists in Dictionary - Value to check for - if found, otherwise - - - - Adds the specified key to the dictionary, dictionary locking is not performed, - - - The key - The value - - - - Removes the specified key, dictionary locking is not performed - - The key. - if successful, otherwise - - - - Gets the number of Key/Value pairs contained in the - - - - - Indexer for the dictionary - - The key - The value - - - - This is used to initialize and stop the Connector as a whole. The Connector - Create call must be completed successfully before any other requests are made - (typically during application initialization). The shutdown should be called - when the application is shutting down to gracefully release resources - - A string value indicting the Application name - URL for the management server - LoggingSettings - - - - - - Shutdown Connector -- Should be called when the application is shutting down - to gracefully release resources - - Handle returned from successful Connector ‘create’ request - - - - Mute or unmute the microphone - - Handle returned from successful Connector ‘create’ request - true (mute) or false (unmute) - - - - Mute or unmute the speaker - - Handle returned from successful Connector ‘create’ request - true (mute) or false (unmute) - - - - Set microphone volume - - Handle returned from successful Connector ‘create’ request - The level of the audio, a number between -100 and 100 where - 0 represents ‘normal’ speaking volume - - - - Set local speaker volume - - Handle returned from successful Connector ‘create’ request - The level of the audio, a number between -100 and 100 where - 0 represents ‘normal’ speaking volume - - - - Starts a thread that keeps the daemon running - - - - - - - Stops the daemon and the thread keeping it running - - - - - - - - - - - - - This is used to get a list of audio devices that can be used for capture (input) of voice. - - - - - - This is used to get a list of audio devices that can be used for render (playback) of voice. - - - - - This command is used to select the render device. - - The name of the device as returned by the Aux.GetRenderDevices command. - - - - This command is used to select the capture device. - - The name of the device as returned by the Aux.GetCaptureDevices command. - - - - This command is used to start the audio capture process which will cause - AuxAudioProperty Events to be raised. These events can be used to display a - microphone VU meter for the currently selected capture device. This command - should not be issued if the user is on a call. - - (unused but required) - - - - - This command is used to stop the audio capture process. - - - - - - This command is used to set the mic volume while in the audio tuning process. - Once an acceptable mic level is attained, the application must issue a - connector set mic volume command to have that level be used while on voice - calls. - - the microphone volume (-100 to 100 inclusive) - - - - - This command is used to set the speaker volume while in the audio tuning - process. Once an acceptable speaker level is attained, the application must - issue a connector set speaker volume command to have that level be used while - on voice calls. - - the speaker volume (-100 to 100 inclusive) - - - - - Create a Session - Sessions typically represent a connection to a media session with one or more - participants. This is used to generate an ‘outbound’ call to another user or - channel. The specifics depend on the media types involved. A session handle is - required to control the local user functions within the session (or remote - users if the current account has rights to do so). Currently creating a - session automatically connects to the audio media, there is no need to call - Session.Connect at this time, this is reserved for future use. - - Handle returned from successful Connector ‘create’ request - This is the URI of the terminating point of the session (ie who/what is being called) - This is the display name of the entity being called (user or channel) - Only needs to be supplied when the target URI is password protected - This indicates the format of the password as passed in. This can either be - “ClearText” or “SHA1UserName”. If this element does not exist, it is assumed to be “ClearText”. If it is - “SHA1UserName”, the password as passed in is the SHA1 hash of the password and username concatenated together, - then base64 encoded, with the final “=” character stripped off. - - - - - - - Used to accept a call - - SessionHandle such as received from SessionNewEvent - "default" - - - - - This command is used to start the audio render process, which will then play - the passed in file through the selected audio render device. This command - should not be issued if the user is on a call. - - The fully qualified path to the sound file. - True if the file is to be played continuously and false if it is should be played once. - - - - - This command is used to stop the audio render process. - - The fully qualified path to the sound file issued in the start render command. - - - - - This is used to ‘end’ an established session (i.e. hang-up or disconnect). - - Handle returned from successful Session ‘create’ request or a SessionNewEvent - - - - - Set the combined speaking and listening position in 3D space. - - Handle returned from successful Session ‘create’ request or a SessionNewEvent - Speaking position - Listening position - - - - - Set User Volume for a particular user. Does not affect how other users hear that user. - - Handle returned from successful Session ‘create’ request or a SessionNewEvent - - The level of the audio, a number between -100 and 100 where 0 represents ‘normal’ speaking volume - - - - - Start up the Voice service. - - - - - Handle miscellaneous request status - - - - ///If something goes wrong, we log it. - - - - Cleanup oject resources - - - - - Request voice cap when changing regions - - - - - Handle a change in session state - - - - - Close a voice session - - - - - - Locate a Session context from its handle - - Creates the session context if it does not exist. - - - - Handle completion of main voice cap request. - - - - - - - - Daemon has started so connect to it. - - - - - The daemon TCP connection is open. - - - - - Handle creation of the Connector. - - - - - Handle response to audio output device query - - - - - Handle response to audio input device query - - - - - Set voice channel for new parcel - - - - - - Request info from a parcel capability Uri. - - - - - - Receive parcel voice cap - - - - - - - - Tell Vivox where we are standing - - This has to be called when we move or turn. - - - - Start and stop updating out position. - - - - - - This is used to login a specific user account(s). It may only be called after - Connector initialization has completed successfully - - Handle returned from successful Connector ‘create’ request - User's account name - User's account password - Values may be “AutoAnswer” or “VerifyAnswer” - "" - This is an integer that specifies how often - the daemon will send participant property events while in a channel. If this is not set - the default will be “on state change”, which means that the events will be sent when - the participant starts talking, stops talking, is muted, is unmuted. - The valid values are: - 0 – Never - 5 – 10 times per second - 10 – 5 times per second - 50 – 1 time per second - 100 – on participant state change (this is the default) - false - - - - - This is used to logout a user session. It should only be called with a valid AccountHandle. - - Handle returned from successful Connector ‘login’ request - - - - - Event for most mundane request reposnses. - - - - Response to Connector.Create request - - - Response to Aux.GetCaptureDevices request - - - Response to Aux.GetRenderDevices request - - - Audio Properties Events are sent after audio capture is started. - These events are used to display a microphone VU meter - - - Response to Account.Login request - - - This event message is sent whenever the login state of the - particular Account has transitioned from one value to another - - - - List of audio input devices - - - - - List of audio output devices - - - - - Set audio test mode - - - - Enable logging - - - The folder where any logs will be created - - - This will be prepended to beginning of each log file - - - The suffix or extension to be appended to each log file - - - - 0: NONE - No logging - 1: ERROR - Log errors only - 2: WARNING - Log errors and warnings - 3: INFO - Log errors, warnings and info - 4: DEBUG - Log errors, warnings, info and debug - - - - - Constructor for default logging settings - - - - Audio Properties Events are sent after audio capture is started. These events are used to display a microphone VU meter - - - - Abstract base for rendering plugins - - - - - Generates a basic mesh structure from a primitive - - Primitive to generate the mesh from - Level of detail to generate the mesh at - The generated mesh - - - - Generates a basic mesh structure from a sculpted primitive and - texture - - Sculpted primitive to generate the mesh from - Sculpt texture - Level of detail to generate the mesh at - The generated mesh - - - - Generates a series of faces, each face containing a mesh and - metadata - - Primitive to generate the mesh from - Level of detail to generate the mesh at - The generated mesh - - - - Generates a series of faces for a sculpted prim, each face - containing a mesh and metadata - - Sculpted primitive to generate the mesh from - Sculpt texture - Level of detail to generate the mesh at - The generated mesh - - - - Apply texture coordinate modifications from a - to a list of vertices - - Vertex list to modify texture coordinates for - Center-point of the face - Face texture parameters - - - - pre-defined built in sounds - - - - - - - - - - - - - - - - - - - - - - - - - - - - coins - - - cash register bell - - - - - - - - - rubber - - - plastic - - - flesh - - - wood splintering? - - - glass break - - - metal clunk - - - whoosh - - - shake - - - - - - ding - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A dictionary containing all pre-defined sounds - - A dictionary containing the pre-defined sounds, - where the key is the sounds ID, and the value is a string - containing a name to identify the purpose of the sound - - - - Simulator (region) properties - - - - No flags set - - - Agents can take damage and be killed - - - Landmarks can be created here - - - Home position can be set in this sim - - - Home position is reset when an agent teleports away - - - Sun does not move - - - No object, land, etc. taxes - - - Disable heightmap alterations (agents can still plant - foliage) - - - Land cannot be released, sold, or purchased - - - All content is wiped nightly - - - Unknown: Related to the availability of an overview world map tile.(Think mainland images when zoomed out.) - - - Unknown: Related to region debug flags. Possibly to skip processing of agent interaction with world. - - - Region does not update agent prim interest lists. Internal debugging option. - - - No collision detection for non-agent objects - - - No scripts are ran - - - All physics processing is turned off - - - Region can be seen from other regions on world map. (Legacy world map option?) - - - Region can be seen from mainland on world map. (Legacy world map option?) - - - Agents not explicitly on the access list can visit the region. - - - Traffic calculations are not run across entire region, overrides parcel settings. - - - Flight is disabled (not currently enforced by the sim) - - - Allow direct (p2p) teleporting - - - Estate owner has temporarily disabled scripting - - - Restricts the usage of the LSL llPushObject function, applies to whole region. - - - Deny agents with no payment info on file - - - Deny agents with payment info on file - - - Deny agents who have made a monetary transaction - - - Parcels within the region may be joined or divided by anyone, not just estate owners/managers. - - - Abuse reports sent from within this region are sent to the estate owner defined email. - - - Region is Voice Enabled - - - Removes the ability from parcel owners to set their parcels to show in search. - - - Deny agents who have not been age verified from entering the region. - - - - Access level for a simulator - - - - Unknown or invalid access level - - - Trial accounts allowed - - - PG rating - - - Mature rating - - - Adult rating - - - Simulator is offline - - - Simulator does not exist - - - - - - - - - - - - - - Initialize the UDP packet handler in server mode - - Port to listening for incoming UDP packets on - - - - Initialize the UDP packet handler in client mode - - Remote UDP server to connect to - - - - - - - - - - - - - - - - - - A public reference to the client that this Simulator object - is attached to - - - A Unique Cache identifier for this simulator - - - The capabilities for this simulator - - - - - - The current version of software this simulator is running - - - - - - A 64x64 grid of parcel coloring values. The values stored - in this array are of the type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true if your agent has Estate Manager rights on this region - - - - - - - - - - - - Statistics information for this simulator and the - connection to the simulator, calculated by the simulator itself - and the library - - - The regions Unique ID - - - The physical data center the simulator is located - Known values are: - - Dallas - Chandler - SF - - - - - The CPU Class of the simulator - Most full mainland/estate sims appear to be 5, - Homesteads and Openspace appear to be 501 - - - The number of regions sharing the same CPU as this one - "Full Sims" appear to be 1, Homesteads appear to be 4 - - - The billing product name - Known values are: - - Mainland / Full Region (Sku: 023) - Estate / Full Region (Sku: 024) - Estate / Openspace (Sku: 027) - Estate / Homestead (Sku: 029) - Mainland / Homestead (Sku: 129) (Linden Owned) - Mainland / Linden Homes (Sku: 131) - - - - - The billing product SKU - Known values are: - - 023 Mainland / Full Region - 024 Estate / Full Region - 027 Estate / Openspace - 029 Estate / Homestead - 129 Mainland / Homestead (Linden Owned) - 131 Linden Homes / Full Region - - - - - The current sequence number for packets sent to this - simulator. Must be Interlocked before modifying. Only - useful for applications manipulating sequence numbers - - - - A thread-safe dictionary containing avatars in a simulator - - - - - A thread-safe dictionary containing primitives in a simulator - - - - - Provides access to an internal thread-safe dictionary containing parcel - information found in this simulator - - - - - Checks simulator parcel map to make sure it has downloaded all data successfully - - true if map is full (contains no 0's) - - - Used internally to track sim disconnections - - - Event that is triggered when the simulator successfully - establishes a connection - - - Whether this sim is currently connected or not. Hooked up - to the property Connected - - - Coarse locations of avatars in this simulator - - - AvatarPositions key representing TrackAgent target - - - Sequence numbers of packets we've received - (for duplicate checking) - - - Packets we sent out that need ACKs from the simulator - - - Sequence number for pause/resume - - - Indicates if UDP connection to the sim is fully established - - - - - - Reference to the GridClient object - IPEndPoint of the simulator - handle of the simulator - - - - Called when this Simulator object is being destroyed - - - - - Attempt to connect to this simulator - - Whether to move our agent in to this sim or not - True if the connection succeeded or connection status is - unknown, false if there was a failure - - - - Initiates connection to the simulator - - - - - Disconnect from this simulator - - - - - Instructs the simulator to stop sending update (and possibly other) packets - - - - - Instructs the simulator to resume sending update packets (unpause) - - - - - Retrieve the terrain height at a given coordinate - - Sim X coordinate, valid range is from 0 to 255 - Sim Y coordinate, valid range is from 0 to 255 - The terrain height at the given point if the - lookup was successful, otherwise 0.0f - True if the lookup was successful, otherwise false - - - - Sends a packet - - Packet to be sent - - - - - - - - - Returns Simulator Name as a String - - - - - - - - - - - - - - - - - - - Sends out pending acknowledgements - - Number of ACKs sent - - - - Resend unacknowledged packets - - - - - Provides access to an internal thread-safe multidimensional array containing a x,y grid mapped - to each 64x64 parcel's LocalID. - - - - The IP address and port of the server - - - Whether there is a working connection to the simulator or - not - - - Coarse locations of avatars in this simulator - - - AvatarPositions key representing TrackAgent target - - - Indicates if UDP connection to the sim is fully established - - - - Simulator Statistics - - - - Total number of packets sent by this simulator to this agent - - - Total number of packets received by this simulator to this agent - - - Total number of bytes sent by this simulator to this agent - - - Total number of bytes received by this simulator to this agent - - - Time in seconds agent has been connected to simulator - - - Total number of packets that have been resent - - - Total number of resent packets recieved - - - Total number of pings sent to this simulator by this agent - - - Total number of ping replies sent to this agent by this simulator - - - - Incoming bytes per second - - It would be nice to have this claculated on the fly, but - this is far, far easier - - - - Outgoing bytes per second - - It would be nice to have this claculated on the fly, but - this is far, far easier - - - Time last ping was sent - - - ID of last Ping sent - - - - - - - - - Current time dilation of this simulator - - - Current Frames per second of simulator - - - Current Physics frames per second of simulator - - - - - - - - - - - - - - - - - - - - - - - - - - - Total number of objects Simulator is simulating - - - Total number of Active (Scripted) objects running - - - Number of agents currently in this simulator - - - Number of agents in neighbor simulators - - - Number of Active scripts running in this simulator - - - - - - - - - - - - Number of downloads pending - - - Number of uploads pending - - - - - - - - - Number of local uploads pending - - - Unacknowledged bytes in queue - - - - Checks the instance back into the object pool - - - - - Returns an instance of the class that has been checked out of the Object Pool. - - - - - Creates a new instance of the ObjectPoolBase class. Initialize MUST be called - after using this constructor. - - - - - Creates a new instance of the ObjectPool Base class. - - The object pool is composed of segments, which - are allocated whenever the size of the pool is exceeded. The number of items - in a segment should be large enough that allocating a new segmeng is a rare - thing. For example, on a server that will have 10k people logged in at once, - the receive buffer object pool should have segment sizes of at least 1000 - byte arrays per segment. - - The minimun number of segments that may exist. - Perform a full GC.Collect whenever a segment is allocated, and then again after allocation to compact the heap. - The frequency which segments are checked to see if they're eligible for cleanup. - - - - Forces the segment cleanup algorithm to be run. This method is intended - primarly for use from the Unit Test libraries. - - - - - Responsible for allocate 1 instance of an object that will be stored in a segment. - - An instance of whatever objec the pool is pooling. - - - - Checks in an instance of T owned by the object pool. This method is only intended to be called - by the WrappedObject class. - - The segment from which the instance is checked out. - The instance of T to check back into the segment. - - - - Checks an instance of T from the pool. If the pool is not sufficient to - allow the checkout, a new segment is created. - - A WrappedObject around the instance of T. To check - the instance back into the segment, be sureto dispose the WrappedObject - when finished. - - - - The total number of segments created. Intended to be used by the Unit Tests. - - - - - The number of items that are in a segment. Items in a segment - are all allocated at the same time, and are hopefully close to - each other in the managed heap. - - - - - The minimum number of segments. When segments are reclaimed, - this number of segments will always be left alone. These - segments are allocated at startup. - - - - - The age a segment must be before it's eligible for cleanup. - This is used to prevent thrash, and typical values are in - the 5 minute range. - - - - - The frequence which the cleanup thread runs. This is typically - expected to be in the 5 minute range. - - - - - Exception class to identify inventory exceptions - - - - - Responsible for maintaining inventory structure. Inventory constructs nodes - and manages node children as is necessary to maintain a coherant hirarchy. - Other classes should not manipulate or create InventoryNodes explicitly. When - A node's parent changes (when a folder is moved, for example) simply pass - Inventory the updated InventoryFolder and it will make the appropriate changes - to its internal representation. - - - - The event subscribers, null of no subscribers - - - Raises the InventoryObjectUpdated Event - A InventoryObjectUpdatedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the InventoryObjectRemoved Event - A InventoryObjectRemovedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the InventoryObjectAdded Event - A InventoryObjectAddedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - - Returns the contents of the specified folder - - A folder's UUID - The contents of the folder corresponding to folder - When folder does not exist in the inventory - - - - Updates the state of the InventoryNode and inventory data structure that - is responsible for the InventoryObject. If the item was previously not added to inventory, - it adds the item, and updates structure accordingly. If it was, it updates the - InventoryNode, changing the parent node if item.parentUUID does - not match node.Parent.Data.UUID. - - You can not set the inventory root folder using this method - - The InventoryObject to store - - - - Removes the InventoryObject and all related node data from Inventory. - - The InventoryObject to remove. - - - - Used to find out if Inventory contains the InventoryObject - specified by uuid. - - The UUID to check. - true if inventory contains uuid, false otherwise - - - - Saves the current inventory structure to a cache file - - Name of the cache file to save to - - - - Loads in inventory cache file into the inventory structure. Note only valid to call after login has been successful. - - Name of the cache file to load - The number of inventory items sucessfully reconstructed into the inventory node tree - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - - The root folder of this avatars inventory - - - - - The default shared library folder - - - - - The root node of the avatars inventory - - - - - The root node of the default shared library - - - - - By using the bracket operator on this class, the program can get the - InventoryObject designated by the specified uuid. If the value for the corresponding - UUID is null, the call is equivelant to a call to RemoveNodeFor(this[uuid]). - If the value is non-null, it is equivelant to a call to UpdateNodeFor(value), - the uuid parameter is ignored. - - The UUID of the InventoryObject to get or set, ignored if set to non-null value. - The InventoryObject corresponding to uuid. - - - - Registers, unregisters, and fires events generated by incoming packets - - - - Reference to the GridClient object - - - - Default constructor - - - - - - Register an event handler - - Use PacketType.Default to fire this event on every - incoming packet - Packet type to register the handler for - Callback to be fired - True if this callback should be ran - asynchronously, false to run it synchronous - - - - Unregister an event handler - - Packet type to unregister the handler for - Callback to be unregistered - - - - Fire the events registered for this packet type - - Incoming packet type - Incoming packet - Simulator this packet was received from - - - - Object that is passed to worker threads in the ThreadPool for - firing packet callbacks - - - - Callback to fire for this packet - - - Reference to the simulator that this packet came from - - - The packet that needs to be processed - - - - Registers, unregisters, and fires events generated by the Capabilities - event queue - - - - Reference to the GridClient object - - - - Default constructor - - Reference to the GridClient object - - - - Register an new event handler for a capabilities event sent via the EventQueue - - Use String.Empty to fire this event on every CAPS event - Capability event name to register the - handler for - Callback to fire - - - - Unregister a previously registered capabilities handler - - Capability event name unregister the - handler for - Callback to unregister - - - - Fire the events registered for this event type synchronously - - Capability name - Decoded event body - Reference to the simulator that - generated this event - - - - Fire the events registered for this event type asynchronously - - Capability name - Decoded event body - Reference to the simulator that - generated this event - - - - Object that is passed to worker threads in the ThreadPool for - firing CAPS callbacks - - - - Callback to fire for this packet - - - Name of the CAPS event - - - Strongly typed decoded data - - - Reference to the simulator that generated this event - - - - Represends individual HTTP Download request - - - - URI of the item to fetch - - - Timout specified in milliseconds - - - Download progress callback - - - Download completed callback - - - Accept the following content type - - + Default constructor - - Constructor + + Status code, 200 indicates settign display name was successful - - - Manages async HTTP downloads with a limit on maximum - concurrent downloads - - - - Default constructor - - - Cleanup method - - - Setup http download request - - - Check the queue for pending work - - - Enqueue a new HTPP download - - - Maximum number of parallel downloads from a single endpoint - - - Client certificate - - - Positional vector of the users position - - - Velocity vector of the position - - - At Orientation (X axis) of the position - - - Up Orientation (Y axis) of the position - - - Left Orientation (Z axis) of the position - - - - Represents Mesh asset - - - - Initializes a new instance of an AssetMesh object - - - Initializes a new instance of an AssetMesh object with parameters - A unique specific to this asset - A byte array containing the raw asset data - - - - TODO: Encodes a scripts contents into a LSO Bytecode file - - - - - TODO: Decode LSO Bytecode into a string - - true - - - Override the base classes AssetType - - - - Static helper functions and global variables - - - - This header flag signals that ACKs are appended to the packet - - - This header flag signals that this packet has been sent before - - - This header flags signals that an ACK is expected for this packet - - - This header flag signals that the message is compressed using zerocoding - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Given an X/Y location in absolute (grid-relative) terms, a region - handle is returned along with the local X/Y location in that region - - The absolute X location, a number such as - 255360.35 - The absolute Y location, a number such as - 255360.35 - The sim-local X position of the global X - position, a value from 0.0 to 256.0 - The sim-local Y position of the global Y - position, a value from 0.0 to 256.0 - A 64-bit region handle that can be used to teleport to - - - - Converts a floating point number to a terse string format used for - transmitting numbers in wearable asset files - - Floating point number to convert to a string - A terse string representation of the input number - - - - Convert a variable length field (byte array) to a string, with a - field name prepended to each line of the output - - If the byte array has unprintable characters in it, a - hex dump will be written instead - The StringBuilder object to write to - The byte array to convert to a string - A field name to prepend to each line of output - - - - Decode a zerocoded byte array, used to decompress packets marked - with the zerocoded flag - - Any time a zero is encountered, the next byte is a count - of how many zeroes to expand. One zero is encoded with 0x00 0x01, - two zeroes is 0x00 0x02, three zeroes is 0x00 0x03, etc. The - first four bytes are copied directly to the output buffer. - - The byte array to decode - The length of the byte array to decode. This - would be the length of the packet up to (but not including) any - appended ACKs - The output byte array to decode to - The length of the output buffer - - - - Encode a byte array with zerocoding. Used to compress packets marked - with the zerocoded flag. Any zeroes in the array are compressed down - to a single zero byte followed by a count of how many zeroes to expand - out. A single zero becomes 0x00 0x01, two zeroes becomes 0x00 0x02, - three zeroes becomes 0x00 0x03, etc. The first four bytes are copied - directly to the output buffer. - - The byte array to encode - The length of the byte array to encode - The output byte array to encode to - The length of the output buffer - - - - Calculates the CRC (cyclic redundancy check) needed to upload inventory. - - Creation date - Sale type - Inventory type - Type - Asset ID - Group ID - Sale price - Owner ID - Creator ID - Item ID - Folder ID - Everyone mask (permissions) - Flags - Next owner mask (permissions) - Group mask (permissions) - Owner mask (permissions) - The calculated CRC - - - - Attempts to load a file embedded in the assembly - - The filename of the resource to load - A Stream for the requested file, or null if the resource - was not successfully loaded - - - - Attempts to load a file either embedded in the assembly or found in - a given search path - - The filename of the resource to load - An optional path that will be searched if - the asset is not found embedded in the assembly - A Stream for the requested file, or null if the resource - was not successfully loaded - - - - Converts a list of primitives to an object that can be serialized - with the LLSD system - - Primitives to convert to a serializable object - An object that can be serialized with LLSD - - - - Deserializes OSD in to a list of primitives - - Structure holding the serialized primitive list, - must be of the SDMap type - A list of deserialized primitives - - - - Converts a struct or class object containing fields only into a key value separated string - - The struct object - A string containing the struct fields as the keys, and the field value as the value separated - - - // Add the following code to any struct or class containing only fields to override the ToString() - // method to display the values of the passed object - - /// Print the struct data as a string - ///A string containing the field name, and field value - public override string ToString() - { - return Helpers.StructToString(this); - } - - - - - - Passed to Logger.Log() to identify the severity of a log entry - - - - No logging information will be output - - - Non-noisy useful information, may be helpful in - debugging a problem - - - A non-critical error occurred. A warning will not - prevent the rest of the library from operating as usual, - although it may be indicative of an underlying issue - - - A critical error has occurred. Generally this will - be followed by the network layer shutting down, although the - stability of the library after an error is uncertain - - - Used for internal testing, this logging level can - generate very noisy (long and/or repetitive) messages. Don't - pass this to the Log() function, use DebugLog() instead. - - - - - A set of textures that are layered on texture of each other and "baked" - in to a single texture, for avatar appearances - - - - Final baked texture - - - Component layers - - - Width of the final baked image and scratchpad - - - Height of the final baked image and scratchpad - - - Bake type - - - - Default constructor - - Bake type - - - - Adds layer for baking - - TexturaData struct that contains texture and its params - - - - Converts avatar texture index (face) to Bake type - - Face number (AvatarTextureIndex) - BakeType, layer to which this texture belongs to - - - - Make sure images exist, resize source if needed to match the destination - - Destination image - Source image - Sanitization was succefull - - - - Fills a baked layer as a solid *appearing* color. The colors are - subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from - compressing it too far since it seems to cause upload failures if - the image is a pure solid color - - Color of the base of this layer - - - - Fills a baked layer as a solid *appearing* color. The colors are - subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from - compressing it too far since it seems to cause upload failures if - the image is a pure solid color - - Red value - Green value - Blue value - - - Final baked texture - - - Component layers - - - Width of the final baked image and scratchpad - - - Height of the final baked image and scratchpad - - - Bake type - - - Is this one of the 3 skin bakes - - - - Represents an Animation - - - - Default Constructor - - - - Construct an Asset object of type Animation - - A unique specific to this asset - A byte array containing the raw asset data - - - Override the base classes AssetType - - - - Index of TextureEntry slots for avatar appearances - - - - - Bake layers for avatar appearance - - - - Maximum number of concurrent downloads for wearable assets and textures - - - Maximum number of concurrent uploads for baked textures - - - Timeout for fetching inventory listings - - - Timeout for fetching a single wearable, or receiving a single packet response - - - Timeout for fetching a single texture - - - Timeout for uploading a single baked texture - - - Number of times to retry bake upload - - - When changing outfit, kick off rebake after - 20 seconds has passed since the last change - - - Total number of wearables for each avatar - - - Total number of baked textures on each avatar - - - Total number of wearables per bake layer - - - Mapping between BakeType and AvatarTextureIndex - - - Map of what wearables are included in each bake - - - Magic values to finalize the cache check hashes for each - bake - - - Default avatar texture, used to detect when a custom - texture is not set for a face - - - The event subscribers. null if no subcribers - - - Raises the AgentWearablesReply event - An AgentWearablesReplyEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the CachedBakesReply event - An AgentCachedBakesReplyEventArgs object containing the - data returned from the data server AgentCachedTextureResponse - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the AppearanceSet event - An AppearanceSetEventArgs object indicating if the operatin was successfull - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the RebakeAvatarRequested event - An RebakeAvatarTexturesEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - A cache of wearables currently being worn - - - A cache of textures currently being worn - - - Incrementing serial number for AgentCachedTexture packets - - - Incrementing serial number for AgentSetAppearance packets - - - Indicates whether or not the appearance thread is currently - running, to prevent multiple appearance threads from running - simultaneously - - - Reference to our agent - - - - Timer used for delaying rebake on changing outfit - - - - - Main appearance thread - - - - - Default constructor - - A reference to our agent - - - - Obsolete method for setting appearance. This function no longer does anything. - Use RequestSetAppearance() to manually start the appearance thread - - - - - Obsolete method for setting appearance. This function no longer does anything. - Use RequestSetAppearance() to manually start the appearance thread - - Unused parameter - - - - Starts the appearance setting thread - - - - - Starts the appearance setting thread - - True to force rebaking, otherwise false - - - - Ask the server what textures our agent is currently wearing - - - - - Build hashes out of the texture assetIDs for each baking layer to - ask the simulator whether it has cached copies of each baked texture - - - - - Returns the AssetID of the asset that is currently being worn in a - given WearableType slot - - WearableType slot to get the AssetID for - The UUID of the asset being worn in the given slot, or - UUID.Zero if no wearable is attached to the given slot or wearables - have not been downloaded yet - - - - Add a wearable to the current outfit and set appearance - - Wearable to be added to the outfit - - - - Add a list of wearables to the current outfit and set appearance - - List of wearable inventory items to - be added to the outfit - - - - Remove a wearable from the current outfit and set appearance - - Wearable to be removed from the outfit - - - - Removes a list of wearables from the current outfit and set appearance - - List of wearable inventory items to - be removed from the outfit - - - - Replace the current outfit with a list of wearables and set appearance - - List of wearable inventory items that - define a new outfit - - - - Checks if an inventory item is currently being worn - - The inventory item to check against the agent - wearables - The WearableType slot that the item is being worn in, - or WearbleType.Invalid if it is not currently being worn - - - - Returns a copy of the agents currently worn wearables - - A copy of the agents currently worn wearables - Avoid calling this function multiple times as it will make - a copy of all of the wearable data each time - - - - Calls either or - depending on the value of - replaceItems - - List of wearable inventory items to add - to the outfit or become a new outfit - True to replace existing items with the - new list of items, false to add these items to the existing outfit - - - - Adds a list of attachments to our agent - - A List containing the attachments to add - If true, tells simulator to remove existing attachment - first - - - - Attach an item to our agent at a specific attach point - - A to attach - the on the avatar - to attach the item to - - - - Attach an item to our agent specifying attachment details - - The of the item to attach - The attachments owner - The name of the attachment - The description of the attahment - The to apply when attached - The of the attachment - The on the agent - to attach the item to - - - - Detach an item from our agent using an object - - An object - - - - Detach an item from our agent - - The inventory itemID of the item to detach - - - - Inform the sim which wearables are part of our current outfit - - - - - Replaces the Wearables collection with a list of new wearable items - - Wearable items to replace the Wearables collection with - - - - Calculates base color/tint for a specific wearable - based on its params - - All the color info gathered from wearable's VisualParams - passed as list of ColorParamInfo tuples - Base color/tint for the wearable - - - - Blocking method to populate the Wearables dictionary - - True on success, otherwise false - - - - Blocking method to populate the Textures array with cached bakes - - True on success, otherwise false - - - - Populates textures and visual params from a decoded asset - - Wearable to decode - - - - Blocking method to download and parse currently worn wearable assets - - True on success, otherwise false - - - - Get a list of all of the textures that need to be downloaded for a - single bake layer - - Bake layer to get texture AssetIDs for - A list of texture AssetIDs to download - - - - Helper method to lookup the TextureID for a single layer and add it - to a list if it is not already present - - - - - - - Blocking method to download all of the textures needed for baking - the given bake layers - - A list of layers that need baking - No return value is given because the baking will happen - whether or not all textures are successfully downloaded - - - - Blocking method to create and upload baked textures for all of the - missing bakes - - True on success, otherwise false - - - - Blocking method to create and upload a baked texture for a single - bake layer - - Layer to bake - True on success, otherwise false - - - - Blocking method to upload a baked texture - - Five channel JPEG2000 texture data to upload - UUID of the newly created asset on success, otherwise UUID.Zero - - - - Creates a dictionary of visual param values from the downloaded wearables - - A dictionary of visual param indices mapping to visual param - values for our agent that can be fed to the Baker class - - - - Create an AgentSetAppearance packet from Wearables data and the - Textures array and send it - - - - - Converts a WearableType to a bodypart or clothing WearableType - - A WearableType - AssetType.Bodypart or AssetType.Clothing or AssetType.Unknown - - - - Converts a BakeType to the corresponding baked texture slot in AvatarTextureIndex - - A BakeType - The AvatarTextureIndex slot that holds the given BakeType - - - - Gives the layer number that is used for morph mask - - >A BakeType - Which layer number as defined in BakeTypeToTextures is used for morph mask - - - - Converts a BakeType to a list of the texture slots that make up that bake - - A BakeType - A list of texture slots that are inputs for the given bake - - - Triggered when an AgentWearablesUpdate packet is received, - telling us what our avatar is currently wearing - request. - - - Raised when an AgentCachedTextureResponse packet is - received, giving a list of cached bakes that were found on the - simulator - request. - - - - Raised when appearance data is sent to the simulator, also indicates - the main appearance thread is finished. - - request. - - - - Triggered when the simulator requests the agent rebake its appearance. - - - - - - Returns true if AppearanceManager is busy and trying to set or change appearance will fail - - - - - Contains information about a wearable inventory item - - - - Inventory ItemID of the wearable - - - AssetID of the wearable asset - - - WearableType of the wearable - - - AssetType of the wearable - - - Asset data for the wearable - - - - Data collected from visual params for each wearable - needed for the calculation of the color - - - - - Holds a texture assetID and the data needed to bake this layer into - an outfit texture. Used to keep track of currently worn textures - and baking data - - - - A texture AssetID - - - Asset data for the texture - - - Collection of alpha masks that needs applying - - - Tint that should be applied to the texture - - - Where on avatar does this texture belong - - - Contains the Event data returned from the data server from an AgentWearablesRequest - - - Construct a new instance of the AgentWearablesReplyEventArgs class - - - Contains the Event data returned from the data server from an AgentCachedTextureResponse - - - Construct a new instance of the AgentCachedBakesReplyEventArgs class - - - Contains the Event data returned from an AppearanceSetRequest - - - - Triggered when appearance data is sent to the sim and - the main appearance thread is done. - Indicates whether appearance setting was successful - - - Indicates whether appearance setting was successful - - - Contains the Event data returned from the data server from an RebakeAvatarTextures - - - - Triggered when the simulator sends a request for this agent to rebake - its appearance - - The ID of the Texture Layer to bake - - - The ID of the Texture Layer to bake - - - - The current status of a texture request as it moves through the pipeline or final result of a texture request. - - - - The initial state given to a request. Requests in this state - are waiting for an available slot in the pipeline - - - A request that has been added to the pipeline and the request packet - has been sent to the simulator - - - A request that has received one or more packets back from the simulator - - - A request that has received all packets back from the simulator - - - A request that has taken longer than - to download OR the initial packet containing the packet information was never received - - - The texture request was aborted by request of the agent - - - The simulator replied to the request that it was not able to find the requested texture - - - - A callback fired to indicate the status or final state of the requested texture. For progressive - downloads this will fire each time new asset data is returned from the simulator. - - The indicating either Progress for textures not fully downloaded, - or the final result of the request after it has been processed through the TexturePipeline - The object containing the Assets ID, raw data - and other information. For progressive rendering the will contain - the data from the beginning of the file. For failed, aborted and timed out requests it will contain - an empty byte array. - - - - Texture request download handler, allows a configurable number of download slots which manage multiple - concurrent texture downloads from the - - This class makes full use of the internal - system for full texture downloads. - - - A dictionary containing all pending and in-process transfer requests where the Key is both the RequestID - and also the Asset Texture ID, and the value is an object containing the current state of the request and also - the asset data as it is being re-assembled - - - Holds the reference to the client object - - - Maximum concurrent texture requests allowed at a time - - - An array of objects used to manage worker request threads - - - An array of worker slots which shows the availablity status of the slot - - - The primary thread which manages the requests. - - - true if the TexturePipeline is currently running - - - A synchronization object used by the primary thread - - - A refresh timer used to increase the priority of stalled requests - - - - Default constructor, Instantiates a new copy of the TexturePipeline class - - Reference to the instantiated object - - - - Initialize callbacks required for the TexturePipeline to operate - - - - - Shutdown the TexturePipeline and cleanup any callbacks or transfers - - - - - Request a texture asset from the simulator using the system to - manage the requests and re-assemble the image from the packets received from the simulator - - The of the texture asset to download - The of the texture asset. - Use for most textures, or for baked layer texture assets - A float indicating the requested priority for the transfer. Higher priority values tell the simulator - to prioritize the request before lower valued requests. An image already being transferred using the can have - its priority changed by resending the request with the new priority value - Number of quality layers to discard. - This controls the end marker of the data sent - The packet number to begin the request at. A value of 0 begins the request - from the start of the asset texture - The callback to fire when the image is retrieved. The callback - will contain the result of the request and the texture asset data - If true, the callback will be fired for each chunk of the downloaded image. - The callback asset parameter will contain all previously received chunks of the texture asset starting - from the beginning of the request - - - - Sends the actual request packet to the simulator - - The image to download - Type of the image to download, either a baked - avatar texture or a normal texture - Priority level of the download. Default is - 1,013,000.0f - Number of quality layers to discard. - This controls the end marker of the data sent - Packet number to start the download at. - This controls the start marker of the data sent - Sending a priority of 0 and a discardlevel of -1 aborts - download - - - - Cancel a pending or in process texture request - - The texture assets unique ID - - - - Master Download Thread, Queues up downloads in the threadpool - - - - - The worker thread that sends the request and handles timeouts - - A object containing the request details - - - - Handle responses from the simulator that tell us a texture we have requested is unable to be located - or no longer exists. This will remove the request from the pipeline and free up a slot if one is in use - - The sender - The EventArgs object containing the packet data - - - - Handles the remaining Image data that did not fit in the initial ImageData packet - - The sender - The EventArgs object containing the packet data - - - - Handle the initial ImageDataPacket sent from the simulator - - The sender - The EventArgs object containing the packet data - - - Current number of pending and in-process transfers - - - - A request task containing information and status of a request as it is processed through the - - - - The current which identifies the current status of the request - - - The Unique Request ID, This is also the Asset ID of the texture being requested - - - The slot this request is occupying in the threadpoolSlots array - - - The ImageType of the request. - - - The callback to fire when the request is complete, will include - the and the - object containing the result data - - - If true, indicates the callback will be fired whenever new data is returned from the simulator. - This is used to progressively render textures as portions of the texture are received. - - - An object that maintains the data of an request thats in-process. - - - - Wrapper around a byte array that allows bit to be packed and unpacked - one at a time or by a variable amount. Useful for very tightly packed - data like LayerData packets - - - - - - - - Default constructor, initialize the bit packer / bit unpacker - with a byte array and starting position - - Byte array to pack bits in to or unpack from - Starting position in the byte array - - - - Pack a floating point value in to the data - - Floating point value to pack - - - - Pack part or all of an integer in to the data - - Integer containing the data to pack - Number of bits of the integer to pack - - - - Pack part or all of an unsigned integer in to the data - - Unsigned integer containing the data to pack - Number of bits of the integer to pack - - - - Pack a single bit in to the data - - Bit to pack - - - - - - - - - - - - - - - - - - - - - - - - - Unpacking a floating point value from the data - - Unpacked floating point value - - - - Unpack a variable number of bits from the data in to integer format - - Number of bits to unpack - An integer containing the unpacked bits - This function is only useful up to 32 bits - - - - Unpack a variable number of bits from the data in to unsigned - integer format - - Number of bits to unpack - An unsigned integer containing the unpacked bits - This function is only useful up to 32 bits - - - - Unpack a 16-bit signed integer - - 16-bit signed integer - - - - Unpack a 16-bit unsigned integer - - 16-bit unsigned integer - - - - Unpack a 32-bit signed integer - - 32-bit signed integer - - - - Unpack a 32-bit unsigned integer - - 32-bit unsigned integer - - - - - - - - - - Class that handles the local asset cache - - - - - Default constructor - - A reference to the GridClient object - - - - Disposes cleanup timer - - - - - Only create timer when needed - - - - - Return bytes read from the local asset cache, null if it does not exist - - UUID of the asset we want to get - Raw bytes of the asset, or null on failure - - - - Returns ImageDownload object of the - image from the local image cache, null if it does not exist - - UUID of the image we want to get - ImageDownload object containing the image, or null on failure - - - - Constructs a file name of the cached asset - - UUID of the asset - String with the file name of the cahced asset - - - - Saves an asset to the local cache - - UUID of the asset - Raw bytes the asset consists of - Weather the operation was successfull - - - - Get the file name of the asset stored with gived UUID - - UUID of the asset - Null if we don't have that UUID cached on disk, file name if found in the cache folder - - - - Checks if the asset exists in the local cache - - UUID of the asset - True is the asset is stored in the cache, otherwise false - - - - Wipes out entire cache - - - - - Brings cache size to the 90% of the max size - - - - - Asynchronously brings cache size to the 90% of the max size - - - - - Adds up file sizes passes in a FileInfo array - - - - - Checks whether caching is enabled - - - - - Periodically prune the cache - - - - - Nicely formats file sizes - - Byte size we want to output - String with humanly readable file size - - - - Allows setting weather to periodicale prune the cache if it grows too big - Default is enabled, when caching is enabled - - - - - How long (in ms) between cache checks (default is 5 min.) - - - - - Helper class for sorting files by their last accessed time - - - - - Capability to load TGAs to Bitmap - - - - - Represents a Sound Asset - - - - Initializes a new instance of an AssetSound object - - - Initializes a new instance of an AssetSound object with parameters - A unique specific to this asset - A byte array containing the raw asset data - - - - TODO: Encodes a sound file - - - - - TODO: Decode a sound file - - true - - - Override the base classes AssetType - - - - Represents an LSL Text object containing a string of UTF encoded characters - - - - A string of characters represting the script contents - - - Initializes a new AssetScriptText object - - - - Initializes a new AssetScriptText object with parameters - - A unique specific to this asset - A byte array containing the raw asset data - - - - Encode a string containing the scripts contents into byte encoded AssetData - - - - - Decode a byte array containing the scripts contents into a string - - true if decoding is successful - - - Override the base classes AssetType - - - - Represents a Landmark with RegionID and Position vector - - - - UUID of the Landmark target region - - - Local position of the target - - - Construct an Asset of type Landmark - - - - Construct an Asset object of type Landmark - - A unique specific to this asset - A byte array containing the raw asset data - - - - Encode the raw contents of a string with the specific Landmark format - - - - - Decode the raw asset data, populating the RegionID and Position - - true if the AssetData was successfully decoded to a UUID and Vector - - - Override the base classes AssetType - - - - Represents an that can be worn on an avatar - such as a Shirt, Pants, etc. - - - - Initializes a new instance of an AssetScriptBinary object - - - Initializes a new instance of an AssetScriptBinary object with parameters - A unique specific to this asset - A byte array containing the raw asset data - - - Override the base classes AssetType - - - - Main class to expose grid functionality to clients. All of the - classes needed for sending and receiving data are accessible through - this class. - - - - // Example minimum code required to instantiate class and - // connect to a simulator. - using System; - using System.Collections.Generic; - using System.Text; - using OpenMetaverse; - - namespace FirstBot - { - class Bot - { - public static GridClient Client; - static void Main(string[] args) - { - Client = new GridClient(); // instantiates the GridClient class - // to the global Client object - // Login to Simulator - Client.Network.Login("FirstName", "LastName", "Password", "FirstBot", "1.0"); - // Wait for a Keypress - Console.ReadLine(); - // Logout of simulator - Client.Network.Logout(); - } - } - } - - - - - Networking subsystem - - - Settings class including constant values and changeable - parameters for everything - - - Parcel (subdivided simulator lots) subsystem - - - Our own avatars subsystem - - - Other avatars subsystem - - - Estate subsystem - - - Friends list subsystem - - - Grid (aka simulator group) subsystem - - - Object subsystem - - - Group subsystem - - - Asset subsystem - - - Appearance subsystem - - - Inventory subsystem - - - Directory searches including classifieds, people, land - sales, etc - - - Handles land, wind, and cloud heightmaps - - - Handles sound-related networking - - - Throttling total bandwidth usage, or allocating bandwidth - for specific data stream types - - - - Default constructor - - - - - Return the full name of this instance - - Client avatars full name - - - - Attempts to convert an LLSD structure to a known Packet type - - Event name, this must match an actual - packet name for a Packet to be successfully built - LLSD to convert to a Packet - A Packet on success, otherwise null - - - - Image width - - - - - Image height - - - - - Image channel flags - - - - - Red channel data - - - - - Green channel data - - - - - Blue channel data - - - - - Alpha channel data - - - - - Bump channel data - - - - - Create a new blank image - - width - height - channel flags - - - - - - - - - - Convert the channels in the image. Channels are created or destroyed as required. - - new channel flags - - - - Resize or stretch the image using nearest neighbor (ugly) resampling - - new width - new height - - - - Create a byte array containing 32-bit RGBA data with a bottom-left - origin, suitable for feeding directly into OpenGL - - A byte array containing raw texture data - - - - Represents a texture - - - - A object containing image data - - - - - - - - - Initializes a new instance of an AssetTexture object - - - - Initializes a new instance of an AssetTexture object - - A unique specific to this asset - A byte array containing the raw asset data - - - - Initializes a new instance of an AssetTexture object - - A object containing texture data - - - - Populates the byte array with a JPEG2000 - encoded image created from the data in - - - - - Decodes the JPEG2000 data in AssetData to the - object - - True if the decoding was successful, otherwise false - - - - Decodes the begin and end byte positions for each quality layer in - the image - - - - - Override the base classes AssetType - - - - Temporary code to do the bare minimum required to read a tar archive for our purposes - - - - - Binary reader for the underlying stream - - - - - Used to trim off null chars - - - - - Used to trim off space chars - - - - - Generate a tar reader which reads from the given stream. - - - - - - Read the next entry in the tar file. - - - - the data for the entry. Returns null if there are no more entries - - - - Read the next 512 byte chunk of data as a tar header. - - A tar header struct. null if we have reached the end of the archive. - - - - Read data following a header - - - - - - - Convert octal bytes to a decimal representation - - - - - - - - X position of this patch - - - Y position of this patch - - - A 16x16 array of floats holding decompressed layer data - - - - Creates a LayerData packet for compressed land data given a full - simulator heightmap and an array of indices of patches to compress - - A 256 * 256 array of floating point values - specifying the height at each meter in the simulator - Array of indexes in the 16x16 grid of patches - for this simulator. For example if 1 and 17 are specified, patches - x=1,y=0 and x=1,y=1 are sent - - - - - Add a patch of terrain to a BitPacker - - BitPacker to write the patch to - Heightmap of the simulator, must be a 256 * - 256 float array - X offset of the patch to create, valid values are - from 0 to 15 - Y offset of the patch to create, valid values are - from 0 to 15 - - - - - - - - No report - - - Unknown report type - - - Bug report - - - Complaint report - - - Customer service report - - - - Bitflag field for ObjectUpdateCompressed data blocks, describing - which options are present for each object - - - - Unknown - - - Whether the object has a TreeSpecies - - - Whether the object has floating text ala llSetText - - - Whether the object has an active particle system - - - Whether the object has sound attached to it - - - Whether the object is attached to a root object or not - - - Whether the object has texture animation settings - - - Whether the object has an angular velocity - - - Whether the object has a name value pairs string - - - Whether the object has a Media URL set - - - - Specific Flags for MultipleObjectUpdate requests - - - - None - - - Change position of prims - - - Change rotation of prims - - - Change size of prims - - - Perform operation on link set - - - Scale prims uniformly, same as selecing ctrl+shift in the - viewer. Used in conjunction with Scale - - - - Special values in PayPriceReply. If the price is not one of these - literal value of the price should be use - - - - - Indicates that this pay option should be hidden - - - - - Indicates that this pay option should have the default value - - - - - Contains the variables sent in an object update packet for objects. - Used to track position and movement of prims and avatars - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Handles all network traffic related to prims and avatar positions and - movement. - - - - The event subscribers, null of no subscribers - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the ObjectProperties Event - A ObjectPropertiesEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the ObjectPropertiesUpdated Event - A ObjectPropertiesUpdatedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the ObjectPropertiesFamily Event - A ObjectPropertiesFamilyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AvatarUpdate Event - A AvatarUpdateEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the ObjectDataBlockUpdate Event - A ObjectDataBlockUpdateEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the KillObject Event - A KillObjectEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AvatarSitChanged Event - A AvatarSitChangedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the PayPriceReply Event - A PayPriceReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - Reference to the GridClient object - - - Does periodic dead reckoning calculation to convert - velocity and acceleration to new positions for objects - - - - Construct a new instance of the ObjectManager class - - A reference to the instance - - - - Request information for a single object from a - you are currently connected to - - The the object is located - The Local ID of the object - - - - Request information for multiple objects contained in - the same simulator - - The the objects are located - An array containing the Local IDs of the objects - - - - Attempt to purchase an original object, a copy, or the contents of - an object - - The the object is located - The Local ID of the object - Whether the original, a copy, or the object - contents are on sale. This is used for verification, if the this - sale type is not valid for the object the purchase will fail - Price of the object. This is used for - verification, if it does not match the actual price the purchase - will fail - Group ID that will be associated with the new - purchase - Inventory folder UUID where the object or objects - purchased should be placed - - - BuyObject(Client.Network.CurrentSim, 500, SaleType.Copy, - 100, UUID.Zero, Client.Self.InventoryRootFolderUUID); - - - - - - Request prices that should be displayed in pay dialog. This will triggger the simulator - to send us back a PayPriceReply which can be handled by OnPayPriceReply event - - The the object is located - The ID of the object - The result is raised in the event - - - - Select a single object. This will cause the to send us - an which will raise the event - - The the object is located - The Local ID of the object - - - - - Select a single object. This will cause the to send us - an which will raise the event - - The the object is located - The Local ID of the object - if true, a call to is - made immediately following the request - - - - - Select multiple objects. This will cause the to send us - an which will raise the event - - The the objects are located - An array containing the Local IDs of the objects - Should objects be deselected immediately after selection - - - - - Select multiple objects. This will cause the to send us - an which will raise the event - - The the objects are located - An array containing the Local IDs of the objects - - - - - Update the properties of an object - - The the object is located - The Local ID of the object - true to turn the objects physical property on - true to turn the objects temporary property on - true to turn the objects phantom property on - true to turn the objects cast shadows property on - - - - Sets the sale properties of a single object - - The the object is located - The Local ID of the object - One of the options from the enum - The price of the object - - - - Sets the sale properties of multiple objects - - The the objects are located - An array containing the Local IDs of the objects - One of the options from the enum - The price of the object - - - - Deselect a single object - - The the object is located - The Local ID of the object - - - - Deselect multiple objects. - - The the objects are located - An array containing the Local IDs of the objects - - - - Perform a click action on an object - - The the object is located - The Local ID of the object - - - - Perform a click action (Grab) on a single object - - The the object is located - The Local ID of the object - The texture coordinates to touch - The surface coordinates to touch - The face of the position to touch - The region coordinates of the position to touch - The surface normal of the position to touch (A normal is a vector perpindicular to the surface) - The surface binormal of the position to touch (A binormal is a vector tangen to the surface - pointing along the U direction of the tangent space - - - - Create (rez) a new prim object in a simulator - - A reference to the object to place the object in - Data describing the prim object to rez - Group ID that this prim will be set to, or UUID.Zero if you - do not want the object to be associated with a specific group - An approximation of the position at which to rez the prim - Scale vector to size this prim - Rotation quaternion to rotate this prim - Due to the way client prim rezzing is done on the server, - the requested position for an object is only close to where the prim - actually ends up. If you desire exact placement you'll need to - follow up by moving the object after it has been created. This - function will not set textures, light and flexible data, or other - extended primitive properties - - - - Create (rez) a new prim object in a simulator - - A reference to the object to place the object in - Data describing the prim object to rez - Group ID that this prim will be set to, or UUID.Zero if you - do not want the object to be associated with a specific group - An approximation of the position at which to rez the prim - Scale vector to size this prim - Rotation quaternion to rotate this prim - Specify the - Due to the way client prim rezzing is done on the server, - the requested position for an object is only close to where the prim - actually ends up. If you desire exact placement you'll need to - follow up by moving the object after it has been created. This - function will not set textures, light and flexible data, or other - extended primitive properties - - - - Rez a Linden tree - - A reference to the object where the object resides - The size of the tree - The rotation of the tree - The position of the tree - The Type of tree - The of the group to set the tree to, - or UUID.Zero if no group is to be set - true to use the "new" Linden trees, false to use the old - - - - Rez grass and ground cover - - A reference to the object where the object resides - The size of the grass - The rotation of the grass - The position of the grass - The type of grass from the enum - The of the group to set the tree to, - or UUID.Zero if no group is to be set - - - - Set the textures to apply to the faces of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The texture data to apply - - - - Set the textures to apply to the faces of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The texture data to apply - A media URL (not used) - - - - Set the Light data on an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A object containing the data to set - - - - Set the flexible data on an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A object containing the data to set - - - - Set the sculptie texture and data on an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A object containing the data to set - - - - Unset additional primitive parameters on an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The extra parameters to set - - - - Link multiple prims into a linkset - - A reference to the object where the objects reside - An array which contains the IDs of the objects to link - The last object in the array will be the root object of the linkset TODO: Is this true? - - - - Delink/Unlink multiple prims from a linkset - - A reference to the object where the objects reside - An array which contains the IDs of the objects to delink - - - - Change the rotation of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new rotation of the object - - - - Set the name of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A string containing the new name of the object - - - - Set the name of multiple objects - - A reference to the object where the objects reside - An array which contains the IDs of the objects to change the name of - An array which contains the new names of the objects - - - - Set the description of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A string containing the new description of the object - - - - Set the descriptions of multiple objects - - A reference to the object where the objects reside - An array which contains the IDs of the objects to change the description of - An array which contains the new descriptions of the objects - - - - Attach an object to this avatar - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The point on the avatar the object will be attached - The rotation of the attached object - - - - Drop an attached object from this avatar - - A reference to the - object where the objects reside. This will always be the simulator the avatar is currently in - - The object's ID which is local to the simulator the object is in - - - - Detach an object from yourself - - A reference to the - object where the objects reside - - This will always be the simulator the avatar is currently in - - An array which contains the IDs of the objects to detach - - - - Change the position of an object, Will change position of entire linkset - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new position of the object - - - - Change the position of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new position of the object - if true, will change position of (this) child prim only, not entire linkset - - - - Change the Scale (size) of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new scale of the object - If true, will change scale of this prim only, not entire linkset - True to resize prims uniformly - - - - Change the Rotation of an object that is either a child or a whole linkset - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new scale of the object - If true, will change rotation of this prim only, not entire linkset - - - - Send a Multiple Object Update packet to change the size, scale or rotation of a primitive - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new rotation, size, or position of the target object - The flags from the Enum - - - - Deed an object (prim) to a group, Object must be shared with group which - can be accomplished with SetPermissions() - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The of the group to deed the object to - - - - Deed multiple objects (prims) to a group, Objects must be shared with group which - can be accomplished with SetPermissions() - - A reference to the object where the object resides - An array which contains the IDs of the objects to deed - The of the group to deed the object to - - - - Set the permissions on multiple objects - - A reference to the object where the objects reside - An array which contains the IDs of the objects to set the permissions on - The new Who mask to set - The new Permissions mark to set - TODO: What does this do? - - - - Request additional properties for an object - - A reference to the object where the object resides - - - - - Request additional properties for an object - - A reference to the object where the object resides - Absolute UUID of the object - Whether to require server acknowledgement of this request - - - - Set the ownership of a list of objects to the specified group - - A reference to the object where the objects reside - An array which contains the IDs of the objects to set the group id on - The Groups ID - - - - Update current URL of the previously set prim media - - UUID of the prim - Set current URL to this - Prim face number - Simulator in which prim is located - - - - Set object media - - UUID of the prim - Array the length of prims number of faces. Null on face indexes where there is - no media, on faces which contain the media - Simulatior in which prim is located - - - - Retrieve information about object media - - UUID of the primitive - Simulator where prim is located - Call this callback when done - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - - A terse object update, used when a transformation matrix or - velocity/acceleration for an object changes but nothing else - (scale/position/rotation/acceleration/velocity) - - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - - Setup construction data for a basic primitive shape - - Primitive shape to construct - Construction data that can be plugged into a - - - - - - - - - - - - - - - - - - - - Set the Shape data of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - Data describing the prim shape - - - - Set the Material data of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new material of the object - - - - - - - - - - - - - - - - - - - - - Raised when the simulator sends us data containing - A , Foliage or Attachment - - - - - Raised when the simulator sends us data containing - additional information - - - - - Raised when the simulator sends us data containing - Primitive.ObjectProperties for an object we are currently tracking - - - Raised when the simulator sends us data containing - additional and details - - - - Raised when the simulator sends us data containing - updated information for an - - - Raised when the simulator sends us data containing - and movement changes - - - Raised when the simulator sends us data containing - updates to an Objects DataBlock - - - Raised when the simulator informs us an - or is no longer within view - - - Raised when the simulator sends us data containing - updated sit information for our - - - Raised when the simulator sends us data containing - purchase price information for a - - - - Callback for getting object media data via CAP - - Indicates if the operation was succesfull - Object media version string - Array indexed on prim face of media entry data - - - Provides data for the event - The event occurs when the simulator sends - an containing a Primitive, Foliage or Attachment data - Note 1: The event will not be raised when the object is an Avatar - Note 2: It is possible for the to be - raised twice for the same object if for example the primitive moved to a new simulator, then returned to the current simulator or - if an Avatar crosses the border into a new simulator and returns to the current simulator - - - The following code example uses the , , and - properties to display new Primitives and Attachments on the window. - - // Subscribe to the event that gives us prim and foliage information - Client.Objects.ObjectUpdate += Objects_ObjectUpdate; - - - private void Objects_ObjectUpdate(object sender, PrimEventArgs e) - { - Console.WriteLine("Primitive {0} {1} in {2} is an attachment {3}", e.Prim.ID, e.Prim.LocalID, e.Simulator.Name, e.IsAttachment); - } - - - - - - - - - Construct a new instance of the PrimEventArgs class - - The simulator the object originated from - The Primitive - The simulator time dilation - The prim was not in the dictionary before this update - true if the primitive represents an attachment to an agent - - - Get the simulator the originated from - - - Get the details - - - true if the did not exist in the dictionary before this update (always true if object tracking has been disabled) - - - true if the is attached to an - - - Get the simulator Time Dilation - - - Provides data for the event - The event occurs when the simulator sends - an containing Avatar data - Note 1: The event will not be raised when the object is an Avatar - Note 2: It is possible for the to be - raised twice for the same avatar if for example the avatar moved to a new simulator, then returned to the current simulator - - - The following code example uses the property to make a request for the top picks - using the method in the class to display the names - of our own agents picks listings on the window. - - // subscribe to the AvatarUpdate event to get our information - Client.Objects.AvatarUpdate += Objects_AvatarUpdate; - Client.Avatars.AvatarPicksReply += Avatars_AvatarPicksReply; - - private void Objects_AvatarUpdate(object sender, AvatarUpdateEventArgs e) - { - // we only want our own data - if (e.Avatar.LocalID == Client.Self.LocalID) - { - // Unsubscribe from the avatar update event to prevent a loop - // where we continually request the picks every time we get an update for ourselves - Client.Objects.AvatarUpdate -= Objects_AvatarUpdate; - // make the top picks request through AvatarManager - Client.Avatars.RequestAvatarPicks(e.Avatar.ID); - } - } - - private void Avatars_AvatarPicksReply(object sender, AvatarPicksReplyEventArgs e) - { - // we'll unsubscribe from the AvatarPicksReply event since we now have the data - // we were looking for - Client.Avatars.AvatarPicksReply -= Avatars_AvatarPicksReply; - // loop through the dictionary and extract the names of the top picks from our profile - foreach (var pickName in e.Picks.Values) - { - Console.WriteLine(pickName); - } - } - - - - - - - - Construct a new instance of the AvatarUpdateEventArgs class - - The simulator the packet originated from - The data - The simulator time dilation - The avatar was not in the dictionary before this update - - - Get the simulator the object originated from - - - Get the data - - - Get the simulator time dilation - - - true if the did not exist in the dictionary before this update (always true if avatar tracking has been disabled) - - - Provides additional primitive data for the event - The event occurs when the simulator sends - an containing additional details for a Primitive, Foliage data or Attachment data - The event is also raised when a request is - made. - - - The following code example uses the , and - - properties to display new attachments and send a request for additional properties containing the name of the - attachment then display it on the window. - - // Subscribe to the event that provides additional primitive details - Client.Objects.ObjectProperties += Objects_ObjectProperties; - - // handle the properties data that arrives - private void Objects_ObjectProperties(object sender, ObjectPropertiesEventArgs e) - { - Console.WriteLine("Primitive Properties: {0} Name is {1}", e.Properties.ObjectID, e.Properties.Name); - } - - - - - - Construct a new instance of the ObjectPropertiesEventArgs class - - The simulator the object is located - The primitive Properties - - - Get the simulator the object is located - - - Get the primitive properties - - - Provides additional primitive data for the event - The event occurs when the simulator sends - an containing additional details for a Primitive or Foliage data that is currently - being tracked in the dictionary - The event is also raised when a request is - made and is enabled - - - - - Construct a new instance of the ObjectPropertiesUpdatedEvenrArgs class - - The simulator the object is located - The Primitive - The primitive Properties - - - Get the simulator the object is located - - - Get the primitive details - - - Get the primitive properties - - - Provides additional primitive data, permissions and sale info for the event - The event occurs when the simulator sends - an containing additional details for a Primitive, Foliage data or Attachment. This includes - Permissions, Sale info, and other basic details on an object - The event is also raised when a request is - made, the viewer equivalent is hovering the mouse cursor over an object - - - - Get the simulator the object is located - - - - - - - - - Provides primitive data containing updated location, velocity, rotation, textures for the event - The event occurs when the simulator sends updated location, velocity, rotation, etc - - - - Get the simulator the object is located - - - Get the primitive details - - - - - - - - - - - - - - Get the simulator the object is located - - - Get the primitive details - - - - - - - - - - - - - - - Provides notification when an Avatar, Object or Attachment is DeRezzed or moves out of the avatars view for the - event - - - Get the simulator the object is located - - - The LocalID of the object - - - - Provides updates sit position data - - - - Get the simulator the object is located - - - - - - - - - - - - - - - - - Get the simulator the object is located - - - - - - - - - - - - - Indicates if the operation was successful - - - - - Media version string - - - - - Array of media entries indexed by face number - - - - - - - - - - - - - - - - De-serialization constructor for the InventoryNode Class - - - - - Serialization handler for the InventoryNode Class - - - - - De-serialization handler for the InventoryNode Class - - - - - - - - - - - - - - - - - - - - - - - For inventory folder nodes specifies weather the folder needs to be - refreshed from the server - - - - - - - - - The avatar has no rights - - - The avatar can see the online status of the target avatar - - - The avatar can see the location of the target avatar on the map - - - The avatar can modify the ojects of the target avatar - - - - This class holds information about an avatar in the friends list. There are two ways - to interface to this class. The first is through the set of boolean properties. This is the typical - way clients of this class will use it. The second interface is through two bitflag properties, - TheirFriendsRights and MyFriendsRights - - - - - Used internally when building the initial list of friends at login time - - System ID of the avatar being prepesented - Rights the friend has to see you online and to modify your objects - Rights you have to see your friend online and to modify their objects - - - - FriendInfo represented as a string - - A string reprentation of both my rights and my friends rights - - - - System ID of the avatar - - - - - full name of the avatar - - - - - True if the avatar is online - - - - - True if the friend can see if I am online - - - - - True if the friend can see me on the map - - - - - True if the freind can modify my objects - - - - - True if I can see if my friend is online - - - - - True if I can see if my friend is on the map - - - - - True if I can modify my friend's objects - - - - - My friend's rights represented as bitmapped flags - - - - - My rights represented as bitmapped flags - - - - - This class is used to add and remove avatars from your friends list and to manage their permission. - - - - The event subscribers. null if no subcribers - - - Raises the FriendOnline event - A FriendInfoEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the FriendOffline event - A FriendInfoEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the FriendRightsUpdate event - A FriendInfoEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the FriendNames event - A FriendNamesEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the FriendshipOffered event - A FriendshipOfferedEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the FriendshipResponse event - A FriendshipResponseEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the FriendshipTerminated event - A FriendshipTerminatedEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the FriendFoundReply event - A FriendFoundReplyEventArgs object containing the - data returned from the data server - - - Thread sync lock object - - - - A dictionary of key/value pairs containing known friends of this avatar. - - The Key is the of the friend, the value is a - object that contains detailed information including permissions you have and have given to the friend - - - - - A Dictionary of key/value pairs containing current pending frienship offers. - - The key is the of the avatar making the request, - the value is the of the request which is used to accept - or decline the friendship offer - - - - - Internal constructor - - A reference to the GridClient Object - - - - Accept a friendship request - - agentID of avatatar to form friendship with - imSessionID of the friendship request message - - - - Decline a friendship request - - of friend - imSessionID of the friendship request message - - - - Overload: Offer friendship to an avatar. - - System ID of the avatar you are offering friendship to - - - - Offer friendship to an avatar. - - System ID of the avatar you are offering friendship to - A message to send with the request - - - - Terminate a friendship with an avatar - - System ID of the avatar you are terminating the friendship with - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - - Change the rights of a friend avatar. - - the of the friend - the new rights to give the friend - This method will implicitly set the rights to those passed in the rights parameter. - - - - Use to map a friends location on the grid. - - Friends UUID to find - - - - - Use to track a friends movement on the grid - - Friends Key - - - - Ask for a notification of friend's online status - - Friend's UUID - - - - This handles the asynchronous response of a RequestAvatarNames call. - - - names cooresponding to the the list of IDs sent the the RequestAvatarNames call. - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - - Populate FriendList with data from the login reply - - true if login was successful - true if login request is requiring a redirect - A string containing the response to the login request - A string containing the reason for the request - A object containing the decoded - reply from the login server - - - Raised when the simulator sends notification one of the members in our friends list comes online - - - Raised when the simulator sends notification one of the members in our friends list goes offline - - - Raised when the simulator sends notification one of the members in our friends list grants or revokes permissions - - - Raised when the simulator sends us the names on our friends list - - - Raised when the simulator sends notification another agent is offering us friendship - - - Raised when a request we sent to friend another agent is accepted or declined - - - Raised when the simulator sends notification one of the members in our friends list has terminated - our friendship - - - Raised when the simulator sends the location of a friend we have - requested map location info for - - - Contains information on a member of our friends list - - - - Construct a new instance of the FriendInfoEventArgs class - - The FriendInfo - - - Get the FriendInfo - - - Contains Friend Names - - - - Construct a new instance of the FriendNamesEventArgs class - - A dictionary where the Key is the ID of the Agent, - and the Value is a string containing their name - - - A dictionary where the Key is the ID of the Agent, - and the Value is a string containing their name - - - Sent when another agent requests a friendship with our agent - - - - Construct a new instance of the FriendshipOfferedEventArgs class - - The ID of the agent requesting friendship - The name of the agent requesting friendship - The ID of the session, used in accepting or declining the - friendship offer - - - Get the ID of the agent requesting friendship - - - Get the name of the agent requesting friendship - - - Get the ID of the session, used in accepting or declining the - friendship offer - - - A response containing the results of our request to form a friendship with another agent - - - - Construct a new instance of the FriendShipResponseEventArgs class - - The ID of the agent we requested a friendship with - The name of the agent we requested a friendship with - true if the agent accepted our friendship offer - - - Get the ID of the agent we requested a friendship with - - - Get the name of the agent we requested a friendship with - - - true if the agent accepted our friendship offer - - - Contains data sent when a friend terminates a friendship with us - - - - Construct a new instance of the FrindshipTerminatedEventArgs class - - The ID of the friend who terminated the friendship with us - The name of the friend who terminated the friendship with us - - - Get the ID of the agent that terminated the friendship with us - - - Get the name of the agent that terminated the friendship with us - - - - Data sent in response to a request which contains the information to allow us to map the friends location - - - - - Construct a new instance of the FriendFoundReplyEventArgs class - - The ID of the agent we have requested location information for - The region handle where our friend is located - The simulator local position our friend is located - - - Get the ID of the agent we have received location information for - - - Get the region handle where our mapped friend is located - - - Get the simulator local position where our friend is located - - - - Reads in a byte array of an Animation Asset created by the SecondLife(tm) client. - - - - - Rotation Keyframe count (used internally) - - - - - Position Keyframe count (used internally) - - - - - Animation Priority - - - - - The animation length in seconds. - - - - - Expression set in the client. Null if [None] is selected - - - - - The time in seconds to start the animation - - - - - The time in seconds to end the animation - - - - - Loop the animation - - - - - Meta data. Ease in Seconds. - - - - - Meta data. Ease out seconds. - - - - - Meta Data for the Hand Pose - - - - - Number of joints defined in the animation - - - - - Contains an array of joints - - - - - Searialize an animation asset into it's joints/keyframes/meta data - - - - - - Variable length strings seem to be null terminated in the animation asset.. but.. - use with caution, home grown. - advances the index. - - The animation asset byte array - The offset to start reading - a string - - - - Read in a Joint from an animation asset byte array - Variable length Joint fields, yay! - Advances the index - - animation asset byte array - Byte Offset of the start of the joint - The Joint data serialized into the binBVHJoint structure - - - - Read Keyframes of a certain type - advance i - - Animation Byte array - Offset in the Byte Array. Will be advanced - Number of Keyframes - Scaling Min to pass to the Uint16ToFloat method - Scaling Max to pass to the Uint16ToFloat method - - - - - A Joint and it's associated meta data and keyframes - - - - - Name of the Joint. Matches the avatar_skeleton.xml in client distros - - - - - Joint Animation Override? Was the same as the Priority in testing.. - - - - - Array of Rotation Keyframes in order from earliest to latest - - - - - Array of Position Keyframes in order from earliest to latest - This seems to only be for the Pelvis? - - - - - A Joint Keyframe. This is either a position or a rotation. - - - - - Either a Vector3 position or a Vector3 Euler rotation - - - - - Poses set in the animation metadata for the hands. - - - - - The type of bump-mapping applied to a face - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The level of shininess applied to a face - - - - - - - - - - - - - - - - - The texture mapping style used for a face - - - - - - - - - - - - - - - - - Flags in the TextureEntry block that describe which properties are - set - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents an AssetScriptBinary object containing the - LSO compiled bytecode of an LSL script - - - - Initializes a new instance of an AssetScriptBinary object - - - Initializes a new instance of an AssetScriptBinary object with parameters - A unique specific to this asset - A byte array containing the raw asset data - - - - TODO: Encodes a scripts contents into a LSO Bytecode file - - - - - TODO: Decode LSO Bytecode into a string - - true - - - Override the base classes AssetType - - - - Temporary code to produce a tar archive in tar v7 format - - - - - Binary writer for the underlying stream - - - - - Write a directory entry to the tar archive. We can only handle one path level right now! - - - - - - Write a file to the tar archive - - - - - - - Write a file to the tar archive - - - - - - - Finish writing the raw tar archive data to a stream. The stream will be closed on completion. - - - - - Write a particular entry - - - - - - - - - - - - - - - - - - - - - - Thrown when a packet could not be successfully deserialized - - - - - Default constructor - - - - - Constructor that takes an additional error message - - An error message to attach to this exception - - - - The header of a message template packet. Holds packet flags, sequence - number, packet ID, and any ACKs that will be appended at the end of - the packet - - - - - Convert the AckList to a byte array, used for packet serializing - - Reference to the target byte array - Beginning position to start writing to in the byte - array, will be updated with the ending position of the ACK list - - - - - - - - - - - - - - - - - - - - - A block of data in a packet. Packets are composed of one or more blocks, - each block containing one or more fields - - - - - Create a block from a byte array - - Byte array containing the serialized block - Starting position of the block in the byte array. - This will point to the data after the end of the block when the - call returns - - - - Serialize this block into a byte array - - Byte array to serialize this block into - Starting position in the byte array to serialize to. - This will point to the position directly after the end of the - serialized block when the call returns - - - Current length of the data in this packet - - - A generic value, not an actual packet type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Represents a single Voice Session to the Vivox service. - - - - - Close this session. - - - - - Look up an existing Participants in this session - - - - - - - - - - - - An instance of DelegateWrapper which calls InvokeWrappedDelegate, - which in turn calls the DynamicInvoke method of the wrapped - delegate - - - - - Callback used to call EndInvoke on the asynchronously - invoked DelegateWrapper - - - - - Executes the specified delegate with the specified arguments - asynchronously on a thread pool thread - - - - - - - Invokes the wrapped delegate synchronously - - - - - - - Calls EndInvoke on the wrapper and Close on the resulting WaitHandle - to prevent resource leaks - - - - - - Delegate to wrap another delegate and its arguments - - - - - - The event subscribers. null if no subcribers - - - Raises the LandPatchReceived event - A LandPatchReceivedEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - - Default constructor - - - - - Raised when the simulator responds sends - - - Simulator from that sent tha data - - - Sim coordinate of the patch - - - Sim coordinate of the patch - - - Size of tha patch - - - Heightmap for the patch - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Size of the byte array used to store raw packet data - - - Raw packet data buffer - - - Length of the data to transmit - - - EndPoint of the remote host - - - - Create an allocated UDP packet buffer for receiving a packet - - - - - Create an allocated UDP packet buffer for sending a packet - - EndPoint of the remote host - - - - Create an allocated UDP packet buffer for sending a packet - - EndPoint of the remote host - Size of the buffer to allocate for packet data - - - - Object pool for packet buffers. This is used to allocate memory for all - incoming and outgoing packets, and zerocoding buffers for those packets - - - - - Initialize the object pool in client mode - - Server to connect to - - - - - - Initialize the object pool in server mode - - - - - - - Returns a packet buffer with EndPoint set if the buffer is in - client mode, or with EndPoint set to null in server mode - - Initialized UDPPacketBuffer object - - - - Default constructor - - - - - Check a packet buffer out of the pool - - A packet buffer object - - - - Singleton logging class for the entire library - - - - log4net logging engine - - - - Default constructor - - - - - Send a log message to the logging engine - - The log message - The severity of the log entry - - - - Send a log message to the logging engine - - The log message - The severity of the log entry - Instance of the client - - - - Send a log message to the logging engine - - The log message - The severity of the log entry - Exception that was raised - - - - Send a log message to the logging engine - - The log message - The severity of the log entry - Instance of the client - Exception that was raised - - - - If the library is compiled with DEBUG defined, an event will be - fired if an OnLogMessage handler is registered and the - message will be sent to the logging engine - - The message to log at the DEBUG level to the - current logging engine - - - - If the library is compiled with DEBUG defined and - GridClient.Settings.DEBUG is true, an event will be - fired if an OnLogMessage handler is registered and the - message will be sent to the logging engine - - The message to log at the DEBUG level to the - current logging engine - Instance of the client - - - Triggered whenever a message is logged. If this is left - null, log messages will go to the console - - - - Callback used for client apps to receive log messages from - the library - - Data being logged - The severity of the log entry from - - - Sort by name - - - Sort by date - - - Sort folders by name, regardless of whether items are - sorted by name or date - - - Place system folders at the top - - - - Possible destinations for DeRezObject request - - - - - - - Copy from in-world to agent inventory - - - Derez to TaskInventory - - - - - - Take Object - - - - - - Delete Object - - - Put an avatar attachment into agent inventory - - - - - - Return an object back to the owner's inventory - - - Return a deeded object back to the last owner's inventory - - - - Upper half of the Flags field for inventory items - - - - Indicates that the NextOwner permission will be set to the - most restrictive set of permissions found in the object set - (including linkset items and object inventory items) on next rez - - - Indicates that the object sale information has been - changed - - - If set, and a slam bit is set, indicates BaseMask will be overwritten on Rez - - - If set, and a slam bit is set, indicates OwnerMask will be overwritten on Rez - - - If set, and a slam bit is set, indicates GroupMask will be overwritten on Rez - - - If set, and a slam bit is set, indicates EveryoneMask will be overwritten on Rez - - - If set, and a slam bit is set, indicates NextOwnerMask will be overwritten on Rez - - - Indicates whether this object is composed of multiple - items or not - - - Indicates that the asset is only referenced by this - inventory item. If this item is deleted or updated to reference a - new assetID, the asset can be deleted - - - - Base Class for Inventory Items - - - - of item/folder - - - of parent folder - - - Name of item/folder - - - Item/Folder Owners - - - - Constructor, takes an itemID as a parameter - - The of the item - - - - - - - - - - - - - - - - Generates a number corresponding to the value of the object to support the use of a hash table, - suitable for use in hashing algorithms and data structures such as a hash table - - A Hashcode of all the combined InventoryBase fields - - - - Determine whether the specified object is equal to the current object - - InventoryBase object to compare against - true if objects are the same - - - - Determine whether the specified object is equal to the current object - - InventoryBase object to compare against - true if objects are the same - - - - An Item in Inventory - - - - The of this item - - - The combined of this item - - - The type of item from - - - The type of item from the enum - - - The of the creator of this item - - - A Description of this item - - - The s this item is set to or owned by - - - If true, item is owned by a group - - - The price this item can be purchased for - - - The type of sale from the enum - - - Combined flags from - - - Time and date this inventory item was created, stored as - UTC (Coordinated Universal Time) - - - Used to update the AssetID in requests sent to the server - - - The of the previous owner of the item - - - - Construct a new InventoryItem object - - The of the item - - - - Construct a new InventoryItem object of a specific Type - - The type of item from - of the item - - - - Indicates inventory item is a link - - True if inventory item is a link to another inventory item - - - - - - - - - - - - - - - - Generates a number corresponding to the value of the object to support the use of a hash table. - Suitable for use in hashing algorithms and data structures such as a hash table - - A Hashcode of all the combined InventoryItem fields - - - - Compares an object - - The object to compare - true if comparison object matches - - - - Determine whether the specified object is equal to the current object - - The object to compare against - true if objects are the same - - - - Determine whether the specified object is equal to the current object - - The object to compare against - true if objects are the same - - - - InventoryTexture Class representing a graphical image - - - - - - Construct an InventoryTexture object - - A which becomes the - objects AssetUUID - - - - Construct an InventoryTexture object from a serialization stream - - - - - InventorySound Class representing a playable sound - - - - - Construct an InventorySound object - - A which becomes the - objects AssetUUID - - - - Construct an InventorySound object from a serialization stream - - - - - InventoryCallingCard Class, contains information on another avatar - - - - - Construct an InventoryCallingCard object - - A which becomes the - objects AssetUUID - - - - Construct an InventoryCallingCard object from a serialization stream - - - - - InventoryLandmark Class, contains details on a specific location - - - - - Construct an InventoryLandmark object - - A which becomes the - objects AssetUUID - - - - Construct an InventoryLandmark object from a serialization stream - - - - - Landmarks use the InventoryItemFlags struct and will have a flag of 1 set if they have been visited - - - - - InventoryObject Class contains details on a primitive or coalesced set of primitives - - - - - Construct an InventoryObject object - - A which becomes the - objects AssetUUID - - - - Construct an InventoryObject object from a serialization stream - - - - - Gets or sets the upper byte of the Flags value - - - - - Gets or sets the object attachment point, the lower byte of the Flags value - - - - - InventoryNotecard Class, contains details on an encoded text document - - - - - Construct an InventoryNotecard object - - A which becomes the - objects AssetUUID - - - - Construct an InventoryNotecard object from a serialization stream - - - - - InventoryCategory Class - - TODO: Is this even used for anything? - - - - Construct an InventoryCategory object - - A which becomes the - objects AssetUUID - - - - Construct an InventoryCategory object from a serialization stream - - - - - InventoryLSL Class, represents a Linden Scripting Language object - - - - - Construct an InventoryLSL object - - A which becomes the - objects AssetUUID - - - - Construct an InventoryLSL object from a serialization stream - - - - - InventorySnapshot Class, an image taken with the viewer - - - - - Construct an InventorySnapshot object - - A which becomes the - objects AssetUUID - - - - Construct an InventorySnapshot object from a serialization stream - - - - - InventoryAttachment Class, contains details on an attachable object - - - - - Construct an InventoryAttachment object - - A which becomes the - objects AssetUUID - - - - Construct an InventoryAttachment object from a serialization stream - - - - - Get the last AttachmentPoint this object was attached to - - - - - InventoryWearable Class, details on a clothing item or body part - - - - - Construct an InventoryWearable object - - A which becomes the - objects AssetUUID - - - - Construct an InventoryWearable object from a serialization stream - - - - - The , Skin, Shape, Skirt, Etc - - - - - InventoryAnimation Class, A bvh encoded object which animates an avatar - - - - - Construct an InventoryAnimation object - - A which becomes the - objects AssetUUID - - - - Construct an InventoryAnimation object from a serialization stream - - - - - InventoryGesture Class, details on a series of animations, sounds, and actions - - - - - Construct an InventoryGesture object - - A which becomes the - objects AssetUUID - - - - Construct an InventoryGesture object from a serialization stream - - - - - A folder contains s and has certain attributes specific - to itself - - - - The Preferred for a folder. - - - The Version of this folder - - - Number of child items this folder contains. - - - - Constructor - - UUID of the folder - - - - - - - - - - Get Serilization data for this InventoryFolder object - - - - - Construct an InventoryFolder object from a serialization stream - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tools for dealing with agents inventory - - - - Used for converting shadow_id to asset_id - - - The event subscribers, null of no subscribers - - - Raises the ItemReceived Event - A ItemReceivedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the FolderUpdated Event - A FolderUpdatedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the InventoryObjectOffered Event - A InventoryObjectOfferedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the TaskItemReceived Event - A TaskItemReceivedEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the FindObjectByPath Event - A FindObjectByPathEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the TaskInventoryReply Event - A TaskInventoryReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the SaveAssetToInventory Event - A SaveAssetToInventoryEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the ScriptRunningReply Event - A ScriptRunningReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - Partial mapping of AssetTypes to folder names - - - - Default constructor - - Reference to the GridClient object - - - - Fetch an inventory item from the dataserver - - The items - The item Owners - a integer representing the number of milliseconds to wait for results - An object on success, or null if no item was found - Items will also be sent to the event - - - - Request A single inventory item - - The items - The item Owners - - - - - Request inventory items - - Inventory items to request - Owners of the inventory items - - - - - Get contents of a folder - - The of the folder to search - The of the folders owner - true to retrieve folders - true to retrieve items - sort order to return results in - a integer representing the number of milliseconds to wait for results - A list of inventory items matching search criteria within folder - - InventoryFolder.DescendentCount will only be accurate if both folders and items are - requested - - - - Request the contents of an inventory folder - - The folder to search - The folder owners - true to return s contained in folder - true to return s containd in folder - the sort order to return items in - - - - - Returns the UUID of the folder (category) that defaults to - containing 'type'. The folder is not necessarily only for that - type - - This will return the root folder if one does not exist - - The UUID of the desired folder if found, the UUID of the RootFolder - if not found, or UUID.Zero on failure - - - - Find an object in inventory using a specific path to search - - The folder to begin the search in - The object owners - A string path to search - milliseconds to wait for a reply - Found items or if - timeout occurs or item is not found - - - - Find inventory items by path - - The folder to begin the search in - The object owners - A string path to search, folders/objects separated by a '/' - Results are sent to the event - - - - Search inventory Store object for an item or folder - - The folder to begin the search in - An array which creates a path to search - Number of levels below baseFolder to conduct searches - if True, will stop searching after first match is found - A list of inventory items found - - - - Move an inventory item or folder to a new location - - The item or folder to move - The to move item or folder to - - - - Move an inventory item or folder to a new location and change its name - - The item or folder to move - The to move item or folder to - The name to change the item or folder to - - - - Move and rename a folder - - The source folders - The destination folders - The name to change the folder to - - - - Update folder properties - - of the folder to update - Sets folder's parent to - Folder name - Folder type - - - - Move a folder - - The source folders - The destination folders - - - - Move multiple folders, the keys in the Dictionary parameter, - to a new parents, the value of that folder's key. - - A Dictionary containing the - of the source as the key, and the - of the destination as the value - - - - Move an inventory item to a new folder - - The of the source item to move - The of the destination folder - - - - Move and rename an inventory item - - The of the source item to move - The of the destination folder - The name to change the folder to - - - - Move multiple inventory items to new locations - - A Dictionary containing the - of the source item as the key, and the - of the destination folder as the value - - - - Remove descendants of a folder - - The of the folder - - - - Remove a single item from inventory - - The of the inventory item to remove - - - - Remove a folder from inventory - - The of the folder to remove - - - - Remove multiple items or folders from inventory - - A List containing the s of items to remove - A List containing the s of the folders to remove - - - - Empty the Lost and Found folder - - - - - Empty the Trash folder - - - - - - - - - - - Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. - - - - - - - - - - - - - Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. - - - - - - - - Creates a new inventory folder - - ID of the folder to put this folder in - Name of the folder to create - The UUID of the newly created folder - - - - Creates a new inventory folder - - ID of the folder to put this folder in - Name of the folder to create - Sets this folder as the default folder - for new assets of the specified type. Use AssetType.Unknown - to create a normal folder, otherwise it will likely create a - duplicate of an existing folder type - The UUID of the newly created folder - If you specify a preferred type of AsseType.Folder - it will create a new root folder which may likely cause all sorts - of strange problems - - - - Create an inventory item and upload asset data - - Asset data - Inventory item name - Inventory item description - Asset type - Inventory type - Put newly created inventory in this folder - Delegate that will receive feedback on success or failure - - - - Create an inventory item and upload asset data - - Asset data - Inventory item name - Inventory item description - Asset type - Inventory type - Put newly created inventory in this folder - Permission of the newly created item - (EveryoneMask, GroupMask, and NextOwnerMask of Permissions struct are supported) - Delegate that will receive feedback on success or failure - - - - Creates inventory link to another inventory item or folder - - Put newly created link in folder with this UUID - Inventory item or folder - Method to call upon creation of the link - - - - Creates inventory link to another inventory item - - Put newly created link in folder with this UUID - Original inventory item - Method to call upon creation of the link - - - - Creates inventory link to another inventory folder - - Put newly created link in folder with this UUID - Original inventory folder - Method to call upon creation of the link - - - - Creates inventory link to another inventory item or folder - - Put newly created link in folder with this UUID - Original item's UUID - Name - Description - Asset Type - Inventory Type - Transaction UUID - Method to call upon creation of the link - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Request a copy of an asset embedded within a notecard - - Usually UUID.Zero for copying an asset from a notecard - UUID of the notecard to request an asset from - Target folder for asset to go to in your inventory - UUID of the embedded asset - callback to run when item is copied to inventory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Save changes to notecard embedded in object contents - - Encoded notecard asset data - Notecard UUID - Object's UUID - Called upon finish of the upload with status information - - - - Upload new gesture asset for an inventory gesture item - - Encoded gesture asset - Gesture inventory UUID - Callback whick will be called when upload is complete - - - - Update an existing script in an agents Inventory - - A byte[] array containing the encoded scripts contents - the itemID of the script - if true, sets the script content to run on the mono interpreter - - - - - Update an existing script in an task Inventory - - A byte[] array containing the encoded scripts contents - the itemID of the script - UUID of the prim containting the script - if true, sets the script content to run on the mono interpreter - if true, sets the script to running - - - - - Rez an object from inventory - - Simulator to place object in - Rotation of the object when rezzed - Vector of where to place object - InventoryItem object containing item details - - - - Rez an object from inventory - - Simulator to place object in - Rotation of the object when rezzed - Vector of where to place object - InventoryItem object containing item details - UUID of group to own the object - - - - Rez an object from inventory - - Simulator to place object in - Rotation of the object when rezzed - Vector of where to place object - InventoryItem object containing item details - UUID of group to own the object - User defined queryID to correlate replies - If set to true, the CreateSelected flag - will be set on the rezzed object - - - - DeRez an object from the simulator to the agents Objects folder in the agents Inventory - - The simulator Local ID of the object - If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed - - - - DeRez an object from the simulator and return to inventory - - The simulator Local ID of the object - The type of destination from the enum - The destination inventory folders -or- - if DeRezzing object to a tasks Inventory, the Tasks - The transaction ID for this request which - can be used to correlate this request with other packets - If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed - - - - Rez an item from inventory to its previous simulator location - - - - - - - - - Give an inventory item to another avatar - - The of the item to give - The name of the item - The type of the item from the enum - The of the recipient - true to generate a beameffect during transfer - - - - Give an inventory Folder with contents to another avatar - - The of the Folder to give - The name of the folder - The type of the item from the enum - The of the recipient - true to generate a beameffect during transfer - - - - Copy or move an from agent inventory to a task (primitive) inventory - - The target object - The item to copy or move from inventory - - For items with copy permissions a copy of the item is placed in the tasks inventory, - for no-copy items the object is moved to the tasks inventory - - - - Retrieve a listing of the items contained in a task (Primitive) - - The tasks - The tasks simulator local ID - milliseconds to wait for reply from simulator - A list containing the inventory items inside the task or null - if a timeout occurs - This request blocks until the response from the simulator arrives - or timeoutMS is exceeded - - - - Request the contents of a tasks (primitives) inventory from the - current simulator - - The LocalID of the object - - - - - Request the contents of a tasks (primitives) inventory - - The simulator Local ID of the object - A reference to the simulator object that contains the object - - - - - Move an item from a tasks (Primitive) inventory to the specified folder in the avatars inventory - - LocalID of the object in the simulator - UUID of the task item to move - The ID of the destination folder in this agents inventory - Simulator Object - Raises the event - - - - Remove an item from an objects (Prim) Inventory - - LocalID of the object in the simulator - UUID of the task item to remove - Simulator Object - You can confirm the removal by comparing the tasks inventory serial before and after the - request with the request combined with - the event - - - - Copy an InventoryScript item from the Agents Inventory into a primitives task inventory - - An unsigned integer representing a primitive being simulated - An which represents a script object from the agents inventory - true to set the scripts running state to enabled - A Unique Transaction ID - - The following example shows the basic steps necessary to copy a script from the agents inventory into a tasks inventory - and assumes the script exists in the agents inventory. - - uint primID = 95899503; // Fake prim ID - UUID scriptID = UUID.Parse("92a7fe8a-e949-dd39-a8d8-1681d8673232"); // Fake Script UUID in Inventory - - Client.Inventory.FolderContents(Client.Inventory.FindFolderForType(AssetType.LSLText), Client.Self.AgentID, - false, true, InventorySortOrder.ByName, 10000); - - Client.Inventory.RezScript(primID, (InventoryItem)Client.Inventory.Store[scriptID]); - - - - - - Request the running status of a script contained in a task (primitive) inventory - - The ID of the primitive containing the script - The ID of the script - The event can be used to obtain the results of the - request - - - - - Send a request to set the running state of a script contained in a task (primitive) inventory - - The ID of the primitive containing the script - The ID of the script - true to set the script running, false to stop a running script - To verify the change you can use the method combined - with the event - - - - Create a CRC from an InventoryItem - - The source InventoryItem - A uint representing the source InventoryItem as a CRC - - - - Reverses a cheesy XORing with a fixed UUID to convert a shadow_id to an asset_id - - Obfuscated shadow_id value - Deobfuscated asset_id value - - - - Does a cheesy XORing with a fixed UUID to convert an asset_id to a shadow_id - - asset_id value to obfuscate - Obfuscated shadow_id value - - - - Wrapper for creating a new object - - The type of item from the enum - The of the newly created object - An object with the type and id passed - - - - Parse the results of a RequestTaskInventory() response - - A string which contains the data from the task reply - A List containing the items contained within the tasks inventory - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - - UpdateCreateInventoryItem packets are received when a new inventory item - is created. This may occur when an object that's rezzed in world is - taken into inventory, when an item is created using the CreateInventoryItem - packet, or when an object is purchased - - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - an inventory object sent by another avatar or primitive - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - - Get this agents Inventory data - - - - - Callback for inventory item creation finishing - - Whether the request to create an inventory - item succeeded or not - Inventory item being created. If success is - false this will be null - - - - Callback for an inventory item being create from an uploaded asset - - true if inventory item creation was successful - - - - - - - - - - - - - Reply received when uploading an inventory asset - - Has upload been successful - Error message if upload failed - Inventory asset UUID - New asset UUID - - - - Delegate that is invoked when script upload is completed - - Has upload succeded (note, there still might be compile errors) - Upload status message - Is compilation successful - If compilation failed, list of error messages, null on compilation success - Script inventory UUID - Script's new asset UUID - - - Set to true to accept offer, false to decline it - - - The folder to accept the inventory into, if null default folder for will be used - - - - Callback when an inventory object is accepted and received from a - task inventory. This is the callback in which you actually get - the ItemID, as in ObjectOfferedCallback it is null when received - from a task. - - - - - Map layer request type - - - - Objects and terrain are shown - - - Only the terrain is shown, no objects - - - Overlay showing land for sale and for auction - - - - Type of grid item, such as telehub, event, populator location, etc. - - - - Telehub - - - PG rated event - - - Mature rated event - - - Popular location - - - Locations of avatar groups in a region - - - Land for sale - - - Classified ad - - - Adult rated event - - - Adult land for sale - - - - Information about a region on the grid map - - - - Sim X position on World Map - - - Sim Y position on World Map - - - Sim Name (NOTE: In lowercase!) - - - - - - Appears to always be zero (None) - - - Sim's defined Water Height - - - - - - UUID of the World Map image - - - Unique identifier for this region, a combination of the X - and Y position - - - - - - - - - - - - - - - - - - - - - - - Visual chunk of the grid map - - - - - Base class for Map Items - - - - The Global X position of the item - - - The Global Y position of the item - - - Get the Local X position of the item - - - Get the Local Y position of the item - - - Get the Handle of the region - - - - Represents an agent or group of agents location - - - - - Represents a Telehub location - - - - - Represents a non-adult parcel of land for sale - - - - - Represents an Adult parcel of land for sale - - - - - Represents a PG Event - - - - - Represents a Mature event - - - - - Represents an Adult event - - - - - Manages grid-wide tasks such as the world map - - - - The event subscribers. null if no subcribers - - - Raises the CoarseLocationUpdate event - A CoarseLocationUpdateEventArgs object containing the - data sent by simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GridRegion event - A GridRegionEventArgs object containing the - data sent by simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GridLayer event - A GridLayerEventArgs object containing the - data sent by simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the GridItems event - A GridItemEventArgs object containing the - data sent by simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the RegionHandleReply event - A RegionHandleReplyEventArgs object containing the - data sent by simulator - - - Thread sync lock object - - - A dictionary of all the regions, indexed by region name - - - A dictionary of all the regions, indexed by region handle - - - - Constructor - - Instance of GridClient object to associate with this GridManager instance - - - - - - - - - - Request a map layer - - The name of the region - The type of layer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Request data for all mainland (Linden managed) simulators - - - - - Request the region handle for the specified region UUID - - UUID of the region to look up - - - - Get grid region information using the region name, this function - will block until it can find the region or gives up - - Name of sim you're looking for - Layer that you are requesting - Will contain a GridRegion for the sim you're - looking for if successful, otherwise an empty structure - True if the GridRegion was successfully fetched, otherwise - false - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Raised when the simulator sends a - containing the location of agents in the simulator - - - Raised when the simulator sends a Region Data in response to - a Map request - - - Raised when the simulator sends GridLayer object containing - a map tile coordinates and texture information - - - Raised when the simulator sends GridItems object containing - details on events, land sales at a specific location - - - Raised in response to a Region lookup - - - Unknown - - - Current direction of the sun - - - Current angular velocity of the sun - - - Current world time - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Login Request Parameters - - - - The URL of the Login Server - - - The number of milliseconds to wait before a login is considered - failed due to timeout - - - The request method - login_to_simulator is currently the only supported method - - - The Agents First name - - - The Agents Last name - - - A md5 hashed password - plaintext password will be automatically hashed - - - The agents starting location once logged in - Either "last", "home", or a string encoded URI - containing the simulator name and x/y/z coordinates e.g: uri:hooper&128&152&17 - - - A string containing the client software channel information - Second Life Release - - - The client software version information - The official viewer uses: Second Life Release n.n.n.n - where n is replaced with the current version of the viewer - - - A string containing the platform information the agent is running on - - - A string hash of the network cards Mac Address - - - Unknown or deprecated - - - A string hash of the first disk drives ID used to identify this clients uniqueness - - - A string containing the viewers Software, this is not directly sent to the login server but - instead is used to generate the Version string - - - A string representing the software creator. This is not directly sent to the login server but - is used by the library to generate the Version information - - - If true, this agent agrees to the Terms of Service of the grid its connecting to - - - Unknown - - - An array of string sent to the login server to enable various options - - - A randomly generated ID to distinguish between login attempts. This value is only used - internally in the library and is never sent over the wire - - - - Default constuctor, initializes sane default values - - - - - Instantiates new LoginParams object and fills in the values - - Instance of GridClient to read settings from - Login first name - Login last name - Password - Login channnel (application name) - Client version, should be application name + version number - - - - Instantiates new LoginParams object and fills in the values - - Instance of GridClient to read settings from - Login first name - Login last name - Password - Login channnel (application name) - Client version, should be application name + version number - URI of the login server - - - - The decoded data returned from the login server after a successful login - - - - true, false, indeterminate - - - Login message of the day - - - M or PG, also agent_region_access and agent_access_max - - - - Parse LLSD Login Reply Data - - An - contaning the login response data - XML-RPC logins do not require this as XML-RPC.NET - automatically populates the struct properly using attributes - - - - - - - - OK - - - Transfer completed - - - + + Textual description of the status - - + + Details of the newly set display name - - Unknown error occurred - - - Equivalent to a 404 error - - - Client does not have permission for that resource - - - Unknown status - - - - - - - - - - - Unknown - - - Virtually all asset transfers use this channel - - - - - - - - - - - Asset from the asset server - - - Inventory item - - - Estate asset, such as an estate covenant - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Image file format - - - - - - - - - Number of milliseconds passed since the last transfer - packet was received - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Number of milliseconds to wait for a transfer header packet if out of order data was received - - - The event subscribers. null if no subcribers - - - Raises the XferReceived event - A XferReceivedEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the AssetUploaded event - A AssetUploadedEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the UploadProgress event - A UploadProgressEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the InitiateDownload event - A InitiateDownloadEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - The event subscribers. null if no subcribers - - - Raises the ImageReceiveProgress event - A ImageReceiveProgressEventArgs object containing the - data returned from the simulator - - - Thread sync lock object - - - Texture download cache - - - - Default constructor - - A reference to the GridClient object - - - - Request an asset download - - Asset UUID - Asset type, must be correct for the transfer to succeed - Whether to give this transfer an elevated priority - The callback to fire when the simulator responds with the asset data - - - - Request an asset download - - Asset UUID - Asset type, must be correct for the transfer to succeed - Whether to give this transfer an elevated priority - Source location of the requested asset - The callback to fire when the simulator responds with the asset data - - - - Request an asset download - - Asset UUID - Asset type, must be correct for the transfer to succeed - Whether to give this transfer an elevated priority - Source location of the requested asset - UUID of the transaction - The callback to fire when the simulator responds with the asset data - - - - Request an asset download through the almost deprecated Xfer system - - Filename of the asset to request - Whether or not to delete the asset - off the server after it is retrieved - Use large transfer packets or not - UUID of the file to request, if filename is - left empty - Asset type of vFileID, or - AssetType.Unknown if filename is not empty - Sets the FilePath in the request to Cache - (4) if true, otherwise Unknown (0) is used - - - - - - - Use UUID.Zero if you do not have the - asset ID but have all the necessary permissions - The item ID of this asset in the inventory - Use UUID.Zero if you are not requesting an - asset from an object inventory - The owner of this asset - Asset type - Whether to prioritize this asset download or not - - - - - Used to force asset data into the PendingUpload property, ie: for raw terrain uploads - - An AssetUpload object containing the data to upload to the simulator - - - - Request an asset be uploaded to the simulator - - The Object containing the asset data - If True, the asset once uploaded will be stored on the simulator - in which the client was connected in addition to being stored on the asset server - The of the transfer, can be used to correlate the upload with - events being fired - - - - Request an asset be uploaded to the simulator - - The of the asset being uploaded - A byte array containing the encoded asset data - If True, the asset once uploaded will be stored on the simulator - in which the client was connected in addition to being stored on the asset server - The of the transfer, can be used to correlate the upload with - events being fired - - - - Request an asset be uploaded to the simulator - - - Asset type to upload this data as - A byte array containing the encoded asset data - If True, the asset once uploaded will be stored on the simulator - in which the client was connected in addition to being stored on the asset server - The of the transfer, can be used to correlate the upload with - events being fired - - - - Initiate an asset upload - - The ID this asset will have if the - upload succeeds - Asset type to upload this data as - Raw asset data to upload - Whether to store this asset on the local - simulator or the grid-wide asset server - The tranaction id for the upload - The transaction ID of this transfer - - - - Request a texture asset from the simulator using the system to - manage the requests and re-assemble the image from the packets received from the simulator - - The of the texture asset to download - The of the texture asset. - Use for most textures, or for baked layer texture assets - A float indicating the requested priority for the transfer. Higher priority values tell the simulator - to prioritize the request before lower valued requests. An image already being transferred using the can have - its priority changed by resending the request with the new priority value - Number of quality layers to discard. - This controls the end marker of the data sent. Sending with value -1 combined with priority of 0 cancels an in-progress - transfer. - A bug exists in the Linden Simulator where a -1 will occasionally be sent with a non-zero priority - indicating an off-by-one error. - The packet number to begin the request at. A value of 0 begins the request - from the start of the asset texture - The callback to fire when the image is retrieved. The callback - will contain the result of the request and the texture asset data - If true, the callback will be fired for each chunk of the downloaded image. - The callback asset parameter will contain all previously received chunks of the texture asset starting - from the beginning of the request - - Request an image and fire a callback when the request is complete - - Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, TextureDownloader_OnDownloadFinished); - - private void TextureDownloader_OnDownloadFinished(TextureRequestState state, AssetTexture asset) - { - if(state == TextureRequestState.Finished) - { - Console.WriteLine("Texture {0} ({1} bytes) has been successfully downloaded", - asset.AssetID, - asset.AssetData.Length); - } - } - - Request an image and use an inline anonymous method to handle the downloaded texture data - - Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, delegate(TextureRequestState state, AssetTexture asset) - { - if(state == TextureRequestState.Finished) - { - Console.WriteLine("Texture {0} ({1} bytes) has been successfully downloaded", - asset.AssetID, - asset.AssetData.Length); - } - } - ); - - Request a texture, decode the texture to a bitmap image and apply it to a imagebox - - Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, TextureDownloader_OnDownloadFinished); - - private void TextureDownloader_OnDownloadFinished(TextureRequestState state, AssetTexture asset) - { - if(state == TextureRequestState.Finished) - { - ManagedImage imgData; - Image bitmap; - - if (state == TextureRequestState.Finished) - { - OpenJPEG.DecodeToImage(assetTexture.AssetData, out imgData, out bitmap); - picInsignia.Image = bitmap; - } - } - } - - - - - - Overload: Request a texture asset from the simulator using the system to - manage the requests and re-assemble the image from the packets received from the simulator - - The of the texture asset to download - The callback to fire when the image is retrieved. The callback - will contain the result of the request and the texture asset data - - - - Overload: Request a texture asset from the simulator using the system to - manage the requests and re-assemble the image from the packets received from the simulator - - The of the texture asset to download - The of the texture asset. - Use for most textures, or for baked layer texture assets - The callback to fire when the image is retrieved. The callback - will contain the result of the request and the texture asset data - - - - Overload: Request a texture asset from the simulator using the system to - manage the requests and re-assemble the image from the packets received from the simulator - - The of the texture asset to download - The of the texture asset. - Use for most textures, or for baked layer texture assets - The callback to fire when the image is retrieved. The callback - will contain the result of the request and the texture asset data - If true, the callback will be fired for each chunk of the downloaded image. - The callback asset parameter will contain all previously received chunks of the texture asset starting - from the beginning of the request - - + - Cancel a texture request + Throttles the network traffic for various different traffic types. + Access this class through GridClient.Throttle - The texture assets - + - Requests download of a mesh asset + Default constructor, uses a default high total of 1500 KBps (1536000) - UUID of the mesh asset - Callback when the request completes - + - Lets TexturePipeline class fire the progress event + Constructor that decodes an existing AgentThrottle packet in to + individual values - The texture ID currently being downloaded - the number of bytes transferred - the total number of bytes expected - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + Reference to the throttle data in an AgentThrottle + packet + Offset position to start reading at in the + throttle data + This is generally not needed in clients as the server will + never send a throttle packet to the client - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Maximum bits per second for resending unacknowledged packets - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Maximum bits per second for LayerData terrain - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Maximum bits per second for LayerData wind data - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Maximum bits per second for LayerData clouds - - Raised when the simulator responds sends + + Unknown, includes object data - - Raised during upload completes + + Maximum bits per second for textures - - Raised during upload with progres update + + Maximum bits per second for downloaded assets - - Fired when the simulator sends an InitiateDownloadPacket, used to download terrain .raw files + + Maximum bits per second the entire connection, divided up + between invidiual streams using default multipliers - - Fired when a texture is in the process of being downloaded by the TexturePipeline class - - + - Callback used for various asset download requests + Send an AgentThrottle packet to the current server using the + current values - Transfer information - Downloaded asset, null on fail - + - Callback used upon competition of baked texture upload + Send an AgentThrottle packet to the specified server using the + current values - Asset UUID of the newly uploaded baked texture - + - A callback that fires upon the completition of the RequestMesh call + Convert the current throttle values to a byte array that can be put + in an AgentThrottle packet - Was the download successfull - Resulting mesh or null on problems - - - Xfer data - - - Upload data - - - Filename used on the simulator - - - Filename used by the client - - - UUID of the image that is in progress - - - Number of bytes received so far - - - Image size in bytes + Byte array containing all the throttle values @@ -23369,7 +3499,8 @@ Agent sitting on a motorcycle - + + Agent moving head side to side @@ -23381,7 +3512,8 @@ Agent taunting another - + + Agent giving peace sign @@ -23453,7 +3585,8 @@ Agent sitting on ground - + + Agent sleeping on side @@ -23465,7 +3598,8 @@ Agent inhaling smoke - + + Agent taking a picture @@ -23555,463 +3689,3434 @@ A dictionary containing all pre-defined animations - A dictionary containing the pre-defined animations, + A dictionary containing the pre-defined animations, where the key is the animations ID, and the value is a string containing a name to identify the purpose of the animation - + - Level of Detail mesh + Index of TextureEntry slots for avatar appearances - + - A linkset asset, containing a parent primitive and zero or more children + Bake layers for avatar appearance - - Initializes a new instance of an AssetPrim object - - + - Initializes a new instance of an AssetPrim object + Default constructor - A unique specific to this asset - A byte array containing the raw asset data + A reference to our agent - + - + Contains information about a wearable inventory item - - - - - + + Inventory ItemID of the wearable - - Override the base classes AssetType + + AssetID of the wearable asset - + + WearableType of the wearable + + + AssetType of the wearable + + + Asset data for the wearable + + - Only used internally for XML serialization/deserialization + Data collected from visual params for each wearable + needed for the calculation of the color - + - The deserialized form of a single primitive in a linkset asset + Holds a texture assetID and the data needed to bake this layer into + an outfit texture. Used to keep track of currently worn textures + and baking data - - - - + + A texture AssetID - - The event subscribers, null of no subscribers + + Asset data for the texture - - Raises the AttachedSound Event - A AttachedSoundEventArgs object containing - the data sent from the simulator + + Collection of alpha masks that needs applying - + + Tint that should be applied to the texture + + + Where on avatar does this texture belong + + + Maximum number of concurrent downloads for wearable assets and textures + + + Maximum number of concurrent uploads for baked textures + + + Timeout for fetching inventory listings + + + Timeout for fetching a single wearable, or receiving a single packet response + + + Timeout for fetching a single texture + + + Timeout for uploading a single baked texture + + + Number of times to retry bake upload + + + When changing outfit, kick off rebake after + 20 seconds has passed since the last change + + + Total number of wearables for each avatar + + + Total number of baked textures on each avatar + + + Total number of wearables per bake layer + + + Mapping between BakeType and AvatarTextureIndex + + + Map of what wearables are included in each bake + + + Magic values to finalize the cache check hashes for each + bake + + + Default avatar texture, used to detect when a custom + texture is not set for a face + + + The event subscribers. null if no subcribers + + Thread sync lock object - - The event subscribers, null of no subscribers + + The event subscribers. null if no subcribers - - Raises the AttachedSoundGainChange Event - A AttachedSoundGainChangeEventArgs object containing - the data sent from the simulator - - + Thread sync lock object - - The event subscribers, null of no subscribers + + The event subscribers. null if no subcribers - - Raises the SoundTrigger Event - A SoundTriggerEventArgs object containing - the data sent from the simulator - - + Thread sync lock object - - The event subscribers, null of no subscribers + + The event subscribers. null if no subcribers - - Raises the PreloadSound Event - A PreloadSoundEventArgs object containing - the data sent from the simulator - - + Thread sync lock object - + + Visual parameters last sent to the sim + + + Textures about this client sent to the sim + + + A cache of wearables currently being worn + + + A cache of textures currently being worn + + + Incrementing serial number for AgentCachedTexture packets + + + Incrementing serial number for AgentSetAppearance packets + + + Indicates whether or not the appearance thread is currently + running, to prevent multiple appearance threads from running + simultaneously + + + Reference to our agent + + - Construct a new instance of the SoundManager class, used for playing and receiving - sound assets - - A reference to the current GridClient instance - - - - Plays a sound in the current region at full volume from avatar position - - UUID of the sound to be played - - - - Plays a sound in the current region at full volume - - UUID of the sound to be played. - position for the sound to be played at. Normally the avatar. - - - - Plays a sound in the current region - - UUID of the sound to be played. - position for the sound to be played at. Normally the avatar. - volume of the sound, from 0.0 to 1.0 - - - - Plays a sound in the specified sim - - UUID of the sound to be played. - UUID of the sound to be played. - position for the sound to be played at. Normally the avatar. - volume of the sound, from 0.0 to 1.0 - - - - Play a sound asset - - UUID of the sound to be played. - handle id for the sim to be played in. - position for the sound to be played at. Normally the avatar. - volume of the sound, from 0.0 to 1.0 - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Raised when the simulator sends us data containing - sound - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Provides data for the event - The event occurs when the simulator sends - the sound data which emits from an agents attachment - - The following code example shows the process to subscribe to the event - and a stub to handle the data passed from the simulator - - // Subscribe to the AttachedSound event - Client.Sound.AttachedSound += Sound_AttachedSound; - - // process the data raised in the event here - private void Sound_AttachedSound(object sender, AttachedSoundEventArgs e) - { - // ... Process AttachedSoundEventArgs here ... - } - - - - - - Construct a new instance of the SoundTriggerEventArgs class - - Simulator where the event originated - The sound asset id - The ID of the owner - The ID of the object - The volume level - The - - - Simulator where the event originated - - - Get the sound asset id - - - Get the ID of the owner - - - Get the ID of the Object - - - Get the volume level - - - Get the - - - Provides data for the event - The event occurs when an attached sound - changes its volume level - - - - Construct a new instance of the AttachedSoundGainChangedEventArgs class - - Simulator where the event originated - The ID of the Object - The new volume level - - - Simulator where the event originated - - - Get the ID of the Object - - - Get the volume level - - - Provides data for the event - The event occurs when the simulator forwards - a request made by yourself or another agent to play either an asset sound or a built in sound - - Requests to play sounds where the is not one of the built-in - will require sending a request to download the sound asset before it can be played - - - The following code example uses the , - and - properties to display some information on a sound request on the window. - - // subscribe to the event - Client.Sound.SoundTrigger += Sound_SoundTrigger; - - // play the pre-defined BELL_TING sound - Client.Sound.SendSoundTrigger(Sounds.BELL_TING); - - // handle the response data - private void Sound_SoundTrigger(object sender, SoundTriggerEventArgs e) - { - Console.WriteLine("{0} played the sound {1} at volume {2}", - e.OwnerID, e.SoundID, e.Gain); - } - - - - - - Construct a new instance of the SoundTriggerEventArgs class - - Simulator where the event originated - The sound asset id - The ID of the owner - The ID of the object - The ID of the objects parent - The volume level - The regionhandle - The source position - - - Simulator where the event originated - - - Get the sound asset id - - - Get the ID of the owner - - - Get the ID of the Object - - - Get the ID of the objects parent - - - Get the volume level - - - Get the regionhandle - - - Get the source position - - - Provides data for the event - The event occurs when the simulator sends - the appearance data for an avatar - - The following code example uses the and - properties to display the selected shape of an avatar on the window. - - // subscribe to the event - Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; - - // handle the data when the event is raised - void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) - { - Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") - } - - - - - - Construct a new instance of the PreloadSoundEventArgs class - - Simulator where the event originated - The sound asset id - The ID of the owner - The ID of the object - - - Simulator where the event originated - - - Get the sound asset id - - - Get the ID of the owner - - - Get the ID of the Object - - - - A Name Value pair with additional settings, used in the protocol - primarily to transmit avatar names and active group in object packets + Timer used for delaying rebake on changing outfit - - - - - - - - - - - - - - - - + - Constructor that takes all the fields as parameters + Main appearance thread - - - - - - + + Triggered when an AgentWearablesUpdate packet is received, + telling us what our avatar is currently wearing + request. + + + Raised when an AgentCachedTextureResponse packet is + received, giving a list of cached bakes that were found on the + simulator + request. + + - Constructor that takes a single line from a NameValue field + Raised when appearance data is sent to the simulator, also indicates + the main appearance thread is finished. - + request. + + + Triggered when the simulator requests the agent rebake its appearance. + + - - Type of the value + + + Returns true if AppearanceManager is busy and trying to set or change appearance will fail + - + + Raises the AgentWearablesReply event + An AgentWearablesReplyEventArgs object containing the + data returned from the data server + + + Raises the CachedBakesReply event + An AgentCachedBakesReplyEventArgs object containing the + data returned from the data server AgentCachedTextureResponse + + + Raises the AppearanceSet event + An AppearanceSetEventArgs object indicating if the operatin was successfull + + + Raises the RebakeAvatarRequested event + An RebakeAvatarTexturesEventArgs object containing the + data returned from the data server + + + + Obsolete method for setting appearance. This function no longer does anything. + Use RequestSetAppearance() to manually start the appearance thread + + + + + Obsolete method for setting appearance. This function no longer does anything. + Use RequestSetAppearance() to manually start the appearance thread + + Unused parameter + + + + Starts the appearance setting thread + + + + + Starts the appearance setting thread + + True to force rebaking, otherwise false + + + + Ask the server what textures our agent is currently wearing + + + + + Build hashes out of the texture assetIDs for each baking layer to + ask the simulator whether it has cached copies of each baked texture + + + + + Returns the AssetID of the asset that is currently being worn in a + given WearableType slot + + WearableType slot to get the AssetID for + The UUID of the asset being worn in the given slot, or + UUID.Zero if no wearable is attached to the given slot or wearables + have not been downloaded yet + + + + Add a wearable to the current outfit and set appearance + + Wearable to be added to the outfit + + + + Add a list of wearables to the current outfit and set appearance + + List of wearable inventory items to + be added to the outfit + + + + Remove a wearable from the current outfit and set appearance + + Wearable to be removed from the outfit + + + + Removes a list of wearables from the current outfit and set appearance + + List of wearable inventory items to + be removed from the outfit + + + + Replace the current outfit with a list of wearables and set appearance + + List of wearable inventory items that + define a new outfit + + + + Replace the current outfit with a list of wearables and set appearance + + List of wearable inventory items that + define a new outfit + Check if we have all body parts, set this to false only + if you know what you're doing + + + + Checks if an inventory item is currently being worn + + The inventory item to check against the agent + wearables + The WearableType slot that the item is being worn in, + or WearbleType.Invalid if it is not currently being worn + + + + Returns a copy of the agents currently worn wearables + + A copy of the agents currently worn wearables + Avoid calling this function multiple times as it will make + a copy of all of the wearable data each time + + + + Calls either or + depending on the value of + replaceItems + + List of wearable inventory items to add + to the outfit or become a new outfit + True to replace existing items with the + new list of items, false to add these items to the existing outfit + + + + Adds a list of attachments to our agent + + A List containing the attachments to add + If true, tells simulator to remove existing attachment + first + + + + Attach an item to our agent at a specific attach point + + A to attach + the on the avatar + to attach the item to + + + + Attach an item to our agent specifying attachment details + + The of the item to attach + The attachments owner + The name of the attachment + The description of the attahment + The to apply when attached + The of the attachment + The on the agent + to attach the item to + + + + Detach an item from our agent using an object + + An object + + + + Detach an item from our agent + + The inventory itemID of the item to detach + + + + Inform the sim which wearables are part of our current outfit + + + + + Replaces the Wearables collection with a list of new wearable items + + Wearable items to replace the Wearables collection with + + + + Calculates base color/tint for a specific wearable + based on its params + + All the color info gathered from wearable's VisualParams + passed as list of ColorParamInfo tuples + Base color/tint for the wearable + + + + Blocking method to populate the Wearables dictionary + + True on success, otherwise false + + + + Blocking method to populate the Textures array with cached bakes + + True on success, otherwise false + + + + Populates textures and visual params from a decoded asset + + Wearable to decode + + + + Blocking method to download and parse currently worn wearable assets + + True on success, otherwise false + + + + Get a list of all of the textures that need to be downloaded for a + single bake layer + + Bake layer to get texture AssetIDs for + A list of texture AssetIDs to download + + + + Helper method to lookup the TextureID for a single layer and add it + to a list if it is not already present + + + + + + + + + Blocking method to download all of the textures needed for baking + the given bake layers + + A list of layers that need baking + No return value is given because the baking will happen + whether or not all textures are successfully downloaded + + + + Blocking method to create and upload baked textures for all of the + missing bakes + + True on success, otherwise false + + + + Blocking method to create and upload a baked texture for a single + bake layer + + Layer to bake + True on success, otherwise false + + + + Blocking method to upload a baked texture + + Five channel JPEG2000 texture data to upload + UUID of the newly created asset on success, otherwise UUID.Zero + + + + Creates a dictionary of visual param values from the downloaded wearables + + A dictionary of visual param indices mapping to visual param + values for our agent that can be fed to the Baker class + + + + Create an AgentSetAppearance packet from Wearables data and the + Textures array and send it + + + + + Converts a WearableType to a bodypart or clothing WearableType + + A WearableType + AssetType.Bodypart or AssetType.Clothing or AssetType.Unknown + + + + Converts a BakeType to the corresponding baked texture slot in AvatarTextureIndex + + A BakeType + The AvatarTextureIndex slot that holds the given BakeType + + + + Gives the layer number that is used for morph mask + + >A BakeType + Which layer number as defined in BakeTypeToTextures is used for morph mask + + + + Converts a BakeType to a list of the texture slots that make up that bake + + A BakeType + A list of texture slots that are inputs for the given bake + + + Contains the Event data returned from the data server from an AgentWearablesRequest + + + Construct a new instance of the AgentWearablesReplyEventArgs class + + + Contains the Event data returned from the data server from an AgentCachedTextureResponse + + + Construct a new instance of the AgentCachedBakesReplyEventArgs class + + + Contains the Event data returned from an AppearanceSetRequest + + + + Triggered when appearance data is sent to the sim and + the main appearance thread is done. + Indicates whether appearance setting was successful + + + Indicates whether appearance setting was successful + + + Contains the Event data returned from the data server from an RebakeAvatarTextures + + + + Triggered when the simulator sends a request for this agent to rebake + its appearance + + The ID of the Texture Layer to bake + + + The ID of the Texture Layer to bake + + + + Class that handles the local asset cache + + + + + Default constructor + + A reference to the GridClient object + + + + Helper class for sorting files by their last accessed time + + + + + Allows setting weather to periodicale prune the cache if it grows too big + Default is enabled, when caching is enabled + + + + + How long (in ms) between cache checks (default is 5 min.) + + + + + Disposes cleanup timer + + + + + Only create timer when needed + + + + + Return bytes read from the local asset cache, null if it does not exist + + UUID of the asset we want to get + Raw bytes of the asset, or null on failure + + + + Returns ImageDownload object of the + image from the local image cache, null if it does not exist + + UUID of the image we want to get + ImageDownload object containing the image, or null on failure + + + + Constructs a file name of the cached asset + + UUID of the asset + String with the file name of the cahced asset + + + + Constructs a file name of the static cached asset + + UUID of the asset + String with the file name of the static cached asset + + + + Saves an asset to the local cache + + UUID of the asset + Raw bytes the asset consists of + Weather the operation was successfull + + + + Get the file name of the asset stored with gived UUID + + UUID of the asset + Null if we don't have that UUID cached on disk, file name if found in the cache folder + + + + Checks if the asset exists in the local cache + + UUID of the asset + True is the asset is stored in the cache, otherwise false + + + + Wipes out entire cache + + + + + Brings cache size to the 90% of the max size + + + + + Asynchronously brings cache size to the 90% of the max size + + + + + Adds up file sizes passes in a FileInfo array + + + + + Checks whether caching is enabled + + + + + Periodically prune the cache + + + + + Nicely formats file sizes + + Byte size we want to output + String with humanly readable file size + + + + + + + OK + + + Transfer completed + + + + + + + + + + + Unknown error occurred + + + Equivalent to a 404 error + + + Client does not have permission for that resource + + + Unknown status + + + + + + + + + + Unknown - - String value + + Virtually all asset transfers use this channel - - - - - - - - - - - - - - Deprecated - - - String value, but designated as an asset - - - - - + - - - - - - - - - - - - - - + - - - + + Asset from the asset server - - + + Inventory item - - + + Estate asset, such as an estate covenant - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + Image file format + + + + + + + + Number of milliseconds passed since the last transfer + packet was received + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default constructor + + A reference to the GridClient object + + + + Callback used for various asset download requests + + Transfer information + Downloaded asset, null on fail + + + + Callback used upon competition of baked texture upload + + Asset UUID of the newly uploaded baked texture + + + + A callback that fires upon the completition of the RequestMesh call + + Was the download successfull + Resulting mesh or null on problems + + + Number of milliseconds to wait for a transfer header packet if out of order data was received + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + Texture download cache + + + Raised when the simulator responds sends + + + Raised during upload completes + + + Raised during upload with progres update + + + Fired when the simulator sends an InitiateDownloadPacket, used to download terrain .raw files + + + Fired when a texture is in the process of being downloaded by the TexturePipeline class + + + Raises the XferReceived event + A XferReceivedEventArgs object containing the + data returned from the simulator + + + Raises the AssetUploaded event + A AssetUploadedEventArgs object containing the + data returned from the simulator + + + Raises the UploadProgress event + A UploadProgressEventArgs object containing the + data returned from the simulator + + + Raises the InitiateDownload event + A InitiateDownloadEventArgs object containing the + data returned from the simulator + + + Raises the ImageReceiveProgress event + A ImageReceiveProgressEventArgs object containing the + data returned from the simulator + + + + Request an asset download + + Asset UUID + Asset type, must be correct for the transfer to succeed + Whether to give this transfer an elevated priority + The callback to fire when the simulator responds with the asset data + + + + Request an asset download + + Asset UUID + Asset type, must be correct for the transfer to succeed + Whether to give this transfer an elevated priority + Source location of the requested asset + The callback to fire when the simulator responds with the asset data + + + + Request an asset download + + Asset UUID + Asset type, must be correct for the transfer to succeed + Whether to give this transfer an elevated priority + Source location of the requested asset + UUID of the transaction + The callback to fire when the simulator responds with the asset data + + + + Request an asset download through the almost deprecated Xfer system + + Filename of the asset to request + Whether or not to delete the asset + off the server after it is retrieved + Use large transfer packets or not + UUID of the file to request, if filename is + left empty + Asset type of vFileID, or + AssetType.Unknown if filename is not empty + Sets the FilePath in the request to Cache + (4) if true, otherwise Unknown (0) is used + + + + + + + Use UUID.Zero if you do not have the + asset ID but have all the necessary permissions + The item ID of this asset in the inventory + Use UUID.Zero if you are not requesting an + asset from an object inventory + The owner of this asset + Asset type + Whether to prioritize this asset download or not + + + + + + Used to force asset data into the PendingUpload property, ie: for raw terrain uploads + + An AssetUpload object containing the data to upload to the simulator + + + + Request an asset be uploaded to the simulator + + The Object containing the asset data + If True, the asset once uploaded will be stored on the simulator + in which the client was connected in addition to being stored on the asset server + The of the transfer, can be used to correlate the upload with + events being fired + + + + Request an asset be uploaded to the simulator + + The of the asset being uploaded + A byte array containing the encoded asset data + If True, the asset once uploaded will be stored on the simulator + in which the client was connected in addition to being stored on the asset server + The of the transfer, can be used to correlate the upload with + events being fired + + + + Request an asset be uploaded to the simulator + + + + Asset type to upload this data as + A byte array containing the encoded asset data + If True, the asset once uploaded will be stored on the simulator + in which the client was connected in addition to being stored on the asset server + The of the transfer, can be used to correlate the upload with + events being fired + + + + Initiate an asset upload + + The ID this asset will have if the + upload succeeds + Asset type to upload this data as + Raw asset data to upload + Whether to store this asset on the local + simulator or the grid-wide asset server + The tranaction id for the upload + The transaction ID of this transfer + + + + Request a texture asset from the simulator using the system to + manage the requests and re-assemble the image from the packets received from the simulator + + The of the texture asset to download + The of the texture asset. + Use for most textures, or for baked layer texture assets + A float indicating the requested priority for the transfer. Higher priority values tell the simulator + to prioritize the request before lower valued requests. An image already being transferred using the can have + its priority changed by resending the request with the new priority value + Number of quality layers to discard. + This controls the end marker of the data sent. Sending with value -1 combined with priority of 0 cancels an in-progress + transfer. + A bug exists in the Linden Simulator where a -1 will occasionally be sent with a non-zero priority + indicating an off-by-one error. + The packet number to begin the request at. A value of 0 begins the request + from the start of the asset texture + The callback to fire when the image is retrieved. The callback + will contain the result of the request and the texture asset data + If true, the callback will be fired for each chunk of the downloaded image. + The callback asset parameter will contain all previously received chunks of the texture asset starting + from the beginning of the request + + Request an image and fire a callback when the request is complete + + Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, TextureDownloader_OnDownloadFinished); + private void TextureDownloader_OnDownloadFinished(TextureRequestState state, AssetTexture asset) + { + if(state == TextureRequestState.Finished) + { + Console.WriteLine("Texture {0} ({1} bytes) has been successfully downloaded", + asset.AssetID, + asset.AssetData.Length); + } + } + + Request an image and use an inline anonymous method to handle the downloaded texture data + + Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, delegate(TextureRequestState state, AssetTexture asset) + { + if(state == TextureRequestState.Finished) + { + Console.WriteLine("Texture {0} ({1} bytes) has been successfully downloaded", + asset.AssetID, + asset.AssetData.Length); + } + } + ); + + Request a texture, decode the texture to a bitmap image and apply it to a imagebox + + Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, TextureDownloader_OnDownloadFinished); + private void TextureDownloader_OnDownloadFinished(TextureRequestState state, AssetTexture asset) + { + if(state == TextureRequestState.Finished) + { + ManagedImage imgData; + Image bitmap; + if (state == TextureRequestState.Finished) + { + OpenJPEG.DecodeToImage(assetTexture.AssetData, out imgData, out bitmap); + picInsignia.Image = bitmap; + } + } + } + + + + + Overload: Request a texture asset from the simulator using the system to + manage the requests and re-assemble the image from the packets received from the simulator + + The of the texture asset to download + The callback to fire when the image is retrieved. The callback + will contain the result of the request and the texture asset data + + + + Overload: Request a texture asset from the simulator using the system to + manage the requests and re-assemble the image from the packets received from the simulator + + The of the texture asset to download + The of the texture asset. + Use for most textures, or for baked layer texture assets + The callback to fire when the image is retrieved. The callback + will contain the result of the request and the texture asset data + + + + Overload: Request a texture asset from the simulator using the system to + manage the requests and re-assemble the image from the packets received from the simulator + + The of the texture asset to download + The of the texture asset. + Use for most textures, or for baked layer texture assets + The callback to fire when the image is retrieved. The callback + will contain the result of the request and the texture asset data + If true, the callback will be fired for each chunk of the downloaded image. + The callback asset parameter will contain all previously received chunks of the texture asset starting + from the beginning of the request + + + + Cancel a texture request + + The texture assets + + + + Requests download of a mesh asset + + UUID of the mesh asset + Callback when the request completes + + + + Lets TexturePipeline class fire the progress event + + The texture ID currently being downloaded + the number of bytes transferred + the total number of bytes expected + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Xfer data + + + Upload data + + + Filename used on the simulator + + + Filename used by the client + + + UUID of the image that is in progress + + + Number of bytes received so far + + + Image size in bytes + + + + Avatar profile flags + + + + + Represents an avatar (other than your own) + + + + + Default constructor + + + + + Positive and negative ratings + + + + Positive ratings for Behavior + + + Negative ratings for Behavior + + + Positive ratings for Appearance + + + Negative ratings for Appearance + + + Positive ratings for Building + + + Negative ratings for Building + + + Positive ratings given by this avatar + + + Negative ratings given by this avatar + + + + Avatar properties including about text, profile URL, image IDs and + publishing settings + + + + First Life about text + + + First Life image ID + + + + + + + + + + + + + + + + + + + Profile image ID + + + Flags of the profile + + + Web URL for this profile + + + Should this profile be published on the web + + + Avatar Online Status + + + Is this a mature profile + + + + + + + + + + + + Avatar interests including spoken languages, skills, and "want to" + choices + + + + Languages profile field + + + + + + + + + + + + + + + + + + + Groups that this avatar is a member of + + + Positive and negative ratings + + + Avatar properties including about text, profile URL, image IDs and + publishing settings + + + Avatar interests including spoken languages, skills, and "want to" + choices + + + Movement control flags for avatars. Typically not set or used by + clients. To move your avatar, use Client.Self.Movement instead + + + + Contains the visual parameters describing the deformation of the avatar + + + + First name + + + Last name + + + Full name + + + Active group + + + Information about agents display name + + + Agent UUID + + + Username + + + Display name + + + First name (legacy) + + + Last name (legacy) + + + Is display name default display name + + + Cache display name until + + + Full name (legacy) + + + + Creates AgentDisplayName object from OSD + + Incoming OSD data + AgentDisplayName object + + + + Return object as OSD map + + OSD containing agent's display name data + + + + Holds group information for Avatars such as those you might find in a profile + + + + true of Avatar accepts group notices + + + Groups Key + + + Texture Key for groups insignia + + + Name of the group + + + Powers avatar has in the group + + + Avatars Currently selected title + + + true of Avatar has chosen to list this in their profile + + + + Contains an animation currently being played by an agent + + + + The ID of the animation asset + + + A number to indicate start order of currently playing animations + On Linden Grids this number is unique per region, with OpenSim it is per client + + + + + + + + Holds group information on an individual profile pick + + + + + Retrieve friend status notifications, and retrieve avatar names and + profiles + + + + + Represents other avatars + + + + + + + Callback giving results when fetching display names + + If the request was successful + Array of display names + Array of UUIDs that could not be fetched + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + Raised when the simulator sends us data containing + an agents animation playlist + + + Raised when the simulator sends us data containing + the appearance information for an agent + + + Raised when the simulator sends us data containing + agent names/id values + + + Raised when the simulator sends us data containing + the interests listed in an agents profile + + + Raised when the simulator sends us data containing + profile property information for an agent + + + Raised when the simulator sends us data containing + the group membership an agent is a member of + + + Raised when the simulator sends us data containing + name/id pair + + + Raised when the simulator sends us data containing + the objects and effect when an agent is pointing at + + + Raised when the simulator sends us data containing + the objects and effect when an agent is looking at + + + Raised when the simulator sends us data containing + an agents viewer effect information + + + Raised when the simulator sends us data containing + the top picks from an agents profile + + + Raised when the simulator sends us data containing + the Pick details + + + Raised when the simulator sends us data containing + the classified ads an agent has placed + + + Raised when the simulator sends us data containing + the details of a classified ad + + + Raised when the simulator sends us data containing + the details of display name change + + + Raises the AvatarAnimation Event + An AvatarAnimationEventArgs object containing + the data sent from the simulator + + + Raises the AvatarAppearance Event + A AvatarAppearanceEventArgs object containing + the data sent from the simulator + + + Raises the UUIDNameReply Event + A UUIDNameReplyEventArgs object containing + the data sent from the simulator + + + Raises the AvatarInterestsReply Event + A AvatarInterestsReplyEventArgs object containing + the data sent from the simulator + + + Raises the AvatarPropertiesReply Event + A AvatarPropertiesReplyEventArgs object containing + the data sent from the simulator + + + Raises the AvatarGroupsReply Event + A AvatarGroupsReplyEventArgs object containing + the data sent from the simulator + + + Raises the AvatarPickerReply Event + A AvatarPickerReplyEventArgs object containing + the data sent from the simulator + + + Raises the ViewerEffectPointAt Event + A ViewerEffectPointAtEventArgs object containing + the data sent from the simulator + + + Raises the ViewerEffectLookAt Event + A ViewerEffectLookAtEventArgs object containing + the data sent from the simulator + + + Raises the ViewerEffect Event + A ViewerEffectEventArgs object containing + the data sent from the simulator + + + Raises the AvatarPicksReply Event + A AvatarPicksReplyEventArgs object containing + the data sent from the simulator + + + Raises the PickInfoReply Event + A PickInfoReplyEventArgs object containing + the data sent from the simulator + + + Raises the AvatarClassifiedReply Event + A AvatarClassifiedReplyEventArgs object containing + the data sent from the simulator + + + Raises the ClassifiedInfoReply Event + A ClassifiedInfoReplyEventArgs object containing + the data sent from the simulator + + + Raises the DisplayNameUpdate Event + A DisplayNameUpdateEventArgs object containing + the data sent from the simulator + + + Tracks the specified avatar on your map + Avatar ID to track + + + + Request a single avatar name + + The avatar key to retrieve a name for + + + + Request a list of avatar names + + The avatar keys to retrieve names for + + + + Check if Display Names functionality is available + + True if Display name functionality is available + + + + Request retrieval of display names (max 90 names per request) + + List of UUIDs to lookup + Callback to report result of the operation + + + + Start a request for Avatar Properties + + + + + + + Search for an avatar (first name, last name) + + The name to search for + An ID to associate with this query + + + + Start a request for Avatar Picks + + UUID of the avatar + + + + Start a request for Avatar Classifieds + + UUID of the avatar + + + + Start a request for details of a specific profile pick + + UUID of the avatar + UUID of the profile pick + + + + Start a request for details of a specific profile classified + + UUID of the avatar + UUID of the profile classified + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + + EQ Message fired when someone nearby changes their display name + + The message key + the IMessage object containing the deserialized data sent from the simulator + The which originated the packet + + + + Crossed region handler for message that comes across the EventQueue. Sent to an agent + when the agent crosses a sim border into a new region. + + The message key + the IMessage object containing the deserialized data sent from the simulator + The which originated the packet + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Provides data for the event + The event occurs when the simulator sends + the animation playlist for an agent + + The following code example uses the and + properties to display the animation playlist of an avatar on the window. + + // subscribe to the event + Client.Avatars.AvatarAnimation += Avatars_AvatarAnimation; + private void Avatars_AvatarAnimation(object sender, AvatarAnimationEventArgs e) + { + // create a dictionary of "known" animations from the Animations class using System.Reflection + Dictionary<UUID, string> systemAnimations = new Dictionary<UUID, string>(); + Type type = typeof(Animations); + System.Reflection.FieldInfo[] fields = type.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); + foreach (System.Reflection.FieldInfo field in fields) + { + systemAnimations.Add((UUID)field.GetValue(type), field.Name); + } + // find out which animations being played are known animations and which are assets + foreach (Animation animation in e.Animations) + { + if (systemAnimations.ContainsKey(animation.AnimationID)) + { + Console.WriteLine("{0} is playing {1} ({2}) sequence {3}", e.AvatarID, + systemAnimations[animation.AnimationID], animation.AnimationSequence); + } + else + { + Console.WriteLine("{0} is playing {1} (Asset) sequence {2}", e.AvatarID, + animation.AnimationID, animation.AnimationSequence); + } + } + } + + + + + Construct a new instance of the AvatarAnimationEventArgs class + + The ID of the agent + The list of animations to start + + + Get the ID of the agent + + + Get the list of animations to start + + + Provides data for the event + The event occurs when the simulator sends + the appearance data for an avatar + + The following code example uses the and + properties to display the selected shape of an avatar on the window. + + // subscribe to the event + Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; + // handle the data when the event is raised + void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) + { + Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") + } + + + + + Construct a new instance of the AvatarAppearanceEventArgs class + + The simulator request was from + The ID of the agent + true of the agent is a trial account + The default agent texture + The agents appearance layer textures + The for the agent + + + Get the Simulator this request is from of the agent + + + Get the ID of the agent + + + true if the agent is a trial account + + + Get the default agent texture + + + Get the agents appearance layer textures + + + Get the for the agent + + + Represents the interests from the profile of an agent + + + Get the ID of the agent + + + The properties of an agent + + + Get the ID of the agent + + + Get the ID of the agent + + + Get the ID of the agent + + + Get the ID of the avatar + + + + Event args class for display name notification messages + + + + + Reads in a byte array of an Animation Asset created by the SecondLife(tm) client. + + + + + Searialize an animation asset into it's joints/keyframes/meta data + + + + + + + Rotation Keyframe count (used internally) + + + + + Position Keyframe count (used internally) + + + + + Animation Priority + + + + + The animation length in seconds. + + + + + Expression set in the client. Null if [None] is selected + + + + + The time in seconds to start the animation + + + + + The time in seconds to end the animation + + + + + Loop the animation + + + + + Meta data. Ease in Seconds. + + + + + Meta data. Ease out seconds. + + + + + Meta Data for the Hand Pose + + + + + Number of joints defined in the animation + + + + + Contains an array of joints + + + + + Variable length strings seem to be null terminated in the animation asset.. but.. + use with caution, home grown. + advances the index. + + The animation asset byte array + The offset to start reading + a string + + + + Read in a Joint from an animation asset byte array + Variable length Joint fields, yay! + Advances the index + + animation asset byte array + Byte Offset of the start of the joint + The Joint data serialized into the binBVHJoint structure + + + + Read Keyframes of a certain type + advance i + + Animation Byte array + Offset in the Byte Array. Will be advanced + Number of Keyframes + Scaling Min to pass to the Uint16ToFloat method + Scaling Max to pass to the Uint16ToFloat method + + + + + + A Joint and it's associated meta data and keyframes + + + + + Name of the Joint. Matches the avatar_skeleton.xml in client distros + + + + + Joint Animation Override? Was the same as the Priority in testing.. + + + + + Array of Rotation Keyframes in order from earliest to latest + + + + + Array of Position Keyframes in order from earliest to latest + This seems to only be for the Pelvis? + + + + + Custom application data that can be attached to a joint + + + + + A Joint Keyframe. This is either a position or a rotation. + + + + + Either a Vector3 position or a Vector3 Euler rotation + + + + + Poses set in the animation metadata for the hands. + + + + + Wrapper around a byte array that allows bit to be packed and unpacked + one at a time or by a variable amount. Useful for very tightly packed + data like LayerData packets + + + + + Default constructor, initialize the bit packer / bit unpacker + with a byte array and starting position + + Byte array to pack bits in to or unpack from + Starting position in the byte array + + + + + + + + + + + + + + + + Pack a floating point value in to the data + + Floating point value to pack + + + + Pack part or all of an integer in to the data + + Integer containing the data to pack + Number of bits of the integer to pack + + + + Pack part or all of an unsigned integer in to the data + + Unsigned integer containing the data to pack + Number of bits of the integer to pack + + + + Pack a single bit in to the data + + Bit to pack + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unpacking a floating point value from the data + + Unpacked floating point value + + + + Unpack a variable number of bits from the data in to integer format + + Number of bits to unpack + An integer containing the unpacked bits + This function is only useful up to 32 bits + + + + Unpack a variable number of bits from the data in to unsigned + integer format + + Number of bits to unpack + An unsigned integer containing the unpacked bits + This function is only useful up to 32 bits + + + + Unpack a 16-bit signed integer + + 16-bit signed integer + + + + Unpack a 16-bit unsigned integer + + 16-bit unsigned integer + + + + Unpack a 32-bit signed integer + + 32-bit signed integer + + + + Unpack a 32-bit unsigned integer + + 32-bit unsigned integer + + + + Capabilities is the name of the bi-directional HTTP REST protocol + used to communicate non real-time transactions such as teleporting or + group messaging + + + + + Default constructor + + + + + + + + + Triggered when an event is received via the EventQueueGet + capability + + Event name + Decoded event data + The simulator that generated the event + + + Reference to the simulator this system is connected to + + + Capabilities URI this system was initialized with + + + Whether the capabilities event queue is connected and + listening for incoming events + + + + Request the URI of a named capability + + Name of the capability to request + The URI of the requested capability, or String.Empty if + the capability does not exist + + + + Process any incoming events, check to see if we have a message created for the event, + + + + + + + + + Attempts to convert an LLSD structure to a known Packet type + + Event name, this must match an actual + packet name for a Packet to be successfully built + LLSD to convert to a Packet + A Packet on success, otherwise null + + + Origin position of this coordinate frame + + + X axis of this coordinate frame, or Forward/At in grid terms + + + Y axis of this coordinate frame, or Left in grid terms + + + Z axis of this coordinate frame, or Up in grid terms + + + + + Looking direction, must be a normalized vector + Up direction, must be a normalized vector + + + + Align the coordinate frame X and Y axis with a given rotation + around the Z axis in radians + + Absolute rotation around the Z axis in + radians + + + + Access to the data server which allows searching for land, events, people, etc + + + + + Constructs a new instance of the DirectoryManager class + + An instance of GridClient + + + Classified Ad categories + + + Classified is listed in the Any category + + + Classified is shopping related + + + Classified is + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Event Categories + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Query Flags used in many of the DirectoryManager methods to specify which query to execute and how to return the results. + Flags can be combined using the | (pipe) character, not all flags are available in all queries + + + + Query the People database + + + + + + + + + + + Query the Groups database + + + Query the Events database + + + Query the land holdings database for land owned by the currently connected agent + + + + + + + Query the land holdings database for land which is owned by a Group + + + Specifies the query should pre sort the results based upon traffic + when searching the Places database + + + + + + + + + + + + + + + + + + + Specifies the query should pre sort the results in an ascending order when searching the land sales database. + This flag is only used when searching the land sales database + + + Specifies the query should pre sort the results using the SalePrice field when searching the land sales database. + This flag is only used when searching the land sales database + + + Specifies the query should pre sort the results by calculating the average price/sq.m (SalePrice / Area) when searching the land sales database. + This flag is only used when searching the land sales database + + + Specifies the query should pre sort the results using the ParcelSize field when searching the land sales database. + This flag is only used when searching the land sales database + + + Specifies the query should pre sort the results using the Name field when searching the land sales database. + This flag is only used when searching the land sales database + + + When set, only parcels less than the specified Price will be included when searching the land sales database. + This flag is only used when searching the land sales database + + + When set, only parcels greater than the specified Size will be included when searching the land sales database. + This flag is only used when searching the land sales database + + + + + + + + + + + Include PG land in results. This flag is used when searching both the Groups, Events and Land sales databases + + + Include Mature land in results. This flag is used when searching both the Groups, Events and Land sales databases + + + Include Adult land in results. This flag is used when searching both the Groups, Events and Land sales databases + + + + + + + + Land types to search dataserver for + + + + Search Auction, Mainland and Estate + + + Land which is currently up for auction + + + Parcels which are on the mainland (Linden owned) continents + + + Parcels which are on privately owned simulators + + + + The content rating of the event + + + + Event is PG + + + Event is Mature + + + Event is Adult + + + + Classified Ad Options + + There appear to be two formats the flags are packed in. + This set of flags is for the newer style + + + + + + + + + + + + + + + + + + + + + + + + Classified ad query options + + + + Include all ads in results + + + Include PG ads in results + + + Include Mature ads in results + + + Include Adult ads in results + + + + The For Sale flag in PlacesReplyData + + + + Parcel is not listed for sale + + + Parcel is For Sale + + + + A classified ad on the grid + + + + UUID for this ad, useful for looking up detailed + information about it + + + The title of this classified ad + + + Flags that show certain options applied to the classified + + + Creation date of the ad + + + Expiration date of the ad + + + Price that was paid for this ad + + + Print the struct data as a string + A string containing the field name, and field value + + + + A parcel retrieved from the dataserver such as results from the + "For-Sale" listings or "Places" Search + + + + The unique dataserver parcel ID + This id is used to obtain additional information from the entry + by using the method + + + A string containing the name of the parcel + + + The size of the parcel + This field is not returned for Places searches + + + The price of the parcel + This field is not returned for Places searches + + + If True, this parcel is flagged to be auctioned + + + If true, this parcel is currently set for sale + + + Parcel traffic + + + Print the struct data as a string + A string containing the field name, and field value + + + + An Avatar returned from the dataserver + + + + Online status of agent + This field appears to be obsolete and always returns false + + + The agents first name + + + The agents last name + + + The agents + + + Print the struct data as a string + A string containing the field name, and field value + + + + Response to a "Groups" Search + + + + The Group ID + + + The name of the group + + + The current number of members + + + Print the struct data as a string + A string containing the field name, and field value + + + + Parcel information returned from a request + + Represents one of the following: + A parcel of land on the grid that has its Show In Search flag set + A parcel of land owned by the agent making the request + A parcel of land owned by a group the agent making the request is a member of + + In a request for Group Land, the First record will contain an empty record + + Note: This is not the same as searching the land for sale data source + + + + The ID of the Agent of Group that owns the parcel + + + The name + + + The description + + + The Size of the parcel + + + The billable Size of the parcel, for mainland + parcels this will match the ActualArea field. For Group owned land this will be 10 percent smaller + than the ActualArea. For Estate land this will always be 0 + + + Indicates the ForSale status of the parcel + + + The Gridwide X position + + + The Gridwide Y position + + + The Z position of the parcel, or 0 if no landing point set + + + The name of the Region the parcel is located in + + + The Asset ID of the parcels Snapshot texture + + + The calculated visitor traffic + + + The billing product SKU + Known values are: + 023Mainland / Full Region024Estate / Full Region027Estate / Openspace029Estate / Homestead129Mainland / Homestead (Linden Owned) + + + No longer used, will always be 0 + + + Get a SL URL for the parcel + A string, containing a standard SLURL + + + Print the struct data as a string + A string containing the field name, and field value + + + + An "Event" Listing summary + + + + The ID of the event creator + + + The name of the event + + + The events ID + + + A string containing the short date/time the event will begin + + + The event start time in Unixtime (seconds since epoch) + + + The events maturity rating + + + Print the struct data as a string + A string containing the field name, and field value + + + + The details of an "Event" + + + + The events ID + + + The ID of the event creator + + + The name of the event + + + The category + + + The events description + + + The short date/time the event will begin + + + The event start time in Unixtime (seconds since epoch) UTC adjusted + + + The length of the event in minutes + + + 0 if no cover charge applies + + + The cover charge amount in L$ if applicable + + + The name of the region where the event is being held + + + The gridwide location of the event + + + The maturity rating + + + Get a SL URL for the parcel where the event is hosted + A string, containing a standard SLURL + + + Print the struct data as a string + A string containing the field name, and field value + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raises the EventInfoReply event + An EventInfoReplyEventArgs object containing the + data returned from the data server + + + Raises the DirEventsReply event + An DirEventsReplyEventArgs object containing the + data returned from the data server + + + Raises the PlacesReply event + A PlacesReplyEventArgs object containing the + data returned from the data server + + + Raises the DirPlacesReply event + A DirPlacesReplyEventArgs object containing the + data returned from the data server + + + Raises the DirClassifiedsReply event + A DirClassifiedsReplyEventArgs object containing the + data returned from the data server + + + Raises the DirGroupsReply event + A DirGroupsReplyEventArgs object containing the + data returned from the data server + + + Raises the DirPeopleReply event + A DirPeopleReplyEventArgs object containing the + data returned from the data server + + + Raises the DirLandReply event + A DirLandReplyEventArgs object containing the + data returned from the data server + + + + Query the data server for a list of classified ads containing the specified string. + Defaults to searching for classified placed in any category, and includes PG, Adult and Mature + results. + Responses are sent 16 per response packet, there is no way to know how many results a query reply will contain however assuming + the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received + The event is raised when a response is received from the simulator + + A string containing a list of keywords to search for + A UUID to correlate the results when the event is raised + + + + Query the data server for a list of classified ads which contain specified keywords (Overload) + The event is raised when a response is received from the simulator + + A string containing a list of keywords to search for + The category to search + A set of flags which can be ORed to modify query options + such as classified maturity rating. + A UUID to correlate the results when the event is raised + + Search classified ads containing the key words "foo" and "bar" in the "Any" category that are either PG or Mature + + UUID searchID = StartClassifiedSearch("foo bar", ClassifiedCategories.Any, ClassifiedQueryFlags.PG | ClassifiedQueryFlags.Mature); + + + Responses are sent 16 at a time, there is no way to know how many results a query reply will contain however assuming + the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received + + + + + Starts search for places (Overloaded) + The event is raised when a response is received from the simulator + + Search text + Each request is limited to 100 places + being returned. To get the first 100 result entries of a request use 0, + from 100-199 use 1, 200-299 use 2, etc. + A UUID to correlate the results when the event is raised + + + + Queries the dataserver for parcels of land which are flagged to be shown in search + The event is raised when a response is received from the simulator + + A string containing a list of keywords to search for separated by a space character + A set of flags which can be ORed to modify query options + such as classified maturity rating. + The category to search + Each request is limited to 100 places + being returned. To get the first 100 result entries of a request use 0, + from 100-199 use 1, 200-299 use 2, etc. + A UUID to correlate the results when the event is raised + + Search places containing the key words "foo" and "bar" in the "Any" category that are either PG or Adult + + UUID searchID = StartDirPlacesSearch("foo bar", DirFindFlags.DwellSort | DirFindFlags.IncludePG | DirFindFlags.IncludeAdult, ParcelCategory.Any, 0); + + + Additional information on the results can be obtained by using the ParcelManager.InfoRequest method + + + + + Starts a search for land sales using the directory + The event is raised when a response is received from the simulator + + What type of land to search for. Auction, + estate, mainland, "first land", etc + The OnDirLandReply event handler must be registered before + calling this function. There is no way to determine how many + results will be returned, or how many times the callback will be + fired other than you won't get more than 100 total parcels from + each query. + + + + Starts a search for land sales using the directory + The event is raised when a response is received from the simulator + + What type of land to search for. Auction, + estate, mainland, "first land", etc + Maximum price to search for + Maximum area to search for + Each request is limited to 100 parcels + being returned. To get the first 100 parcels of a request use 0, + from 100-199 use 1, 200-299 use 2, etc. + The OnDirLandReply event handler must be registered before + calling this function. There is no way to determine how many + results will be returned, or how many times the callback will be + fired other than you won't get more than 100 total parcels from + each query. + + + + Send a request to the data server for land sales listings + + Flags sent to specify query options + Available flags: + Specify the parcel rating with one or more of the following: + IncludePG IncludeMature IncludeAdult + Specify the field to pre sort the results with ONLY ONE of the following: + PerMeterSort NameSort AreaSort PricesSort + Specify the order the results are returned in, if not specified the results are pre sorted in a Descending Order + SortAsc + Specify additional filters to limit the results with one or both of the following: + LimitByPrice LimitByArea + Flags can be combined by separating them with the | (pipe) character + Additional details can be found in + What type of land to search for. Auction, + Estate or Mainland + Maximum price to search for when the + DirFindFlags.LimitByPrice flag is specified in findFlags + Maximum area to search for when the + DirFindFlags.LimitByArea flag is specified in findFlags + Each request is limited to 100 parcels + being returned. To get the first 100 parcels of a request use 0, + from 100-199 use 100, 200-299 use 200, etc. + + The event will be raised with the response from the simulator + There is no way to determine how many results will be returned, or how many times the callback will be + fired other than you won't get more than 100 total parcels from + each reply. + Any land set for sale to either anybody or specific to the connected agent will be included in the + results if the land is included in the query + + + + // request all mainland, any maturity rating that is larger than 512 sq.m + StartLandSearch(DirFindFlags.SortAsc | DirFindFlags.PerMeterSort | DirFindFlags.LimitByArea | DirFindFlags.IncludePG | DirFindFlags.IncludeMature | DirFindFlags.IncludeAdult, SearchTypeFlags.Mainland, 0, 512, 0); + + + + + + Search for Groups + + The name or portion of the name of the group you wish to search for + Start from the match number + + + + + + Search for Groups + + The name or portion of the name of the group you wish to search for + Start from the match number + Search flags + + + + + + Search the People directory for other avatars + + The name or portion of the name of the avatar you wish to search for + + + + + + + + Search Places for parcels of land you personally own + + + + + Searches Places for land owned by the specified group + + ID of the group you want to recieve land list for (You must be a member of the group) + Transaction (Query) ID which can be associated with results from your request. + + + + Search the Places directory for parcels that are listed in search and contain the specified keywords + + A string containing the keywords to search for + Transaction (Query) ID which can be associated with results from your request. + + + + Search Places - All Options + + One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc. + One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer + A string containing a list of keywords to search for separated by a space character + String Simulator Name to search in + LLUID of group you want to recieve results for + Transaction (Query) ID which can be associated with results from your request. + Transaction (Query) ID which can be associated with results from your request. + + + + Search All Events with specifid searchText in all categories, includes PG, Mature and Adult + + A string containing a list of keywords to search for separated by a space character + Each request is limited to 100 entries + being returned. To get the first group of entries of a request use 0, + from 100-199 use 100, 200-299 use 200, etc. + UUID of query to correlate results in callback. + + + + Search Events + + A string containing a list of keywords to search for separated by a space character + One or more of the following flags: DateEvents, IncludePG, IncludeMature, IncludeAdult + from the Enum + Multiple flags can be combined by separating the flags with the | (pipe) character + "u" for in-progress and upcoming events, -or- number of days since/until event is scheduled + For example "0" = Today, "1" = tomorrow, "2" = following day, "-1" = yesterday, etc. + Each request is limited to 100 entries + being returned. To get the first group of entries of a request use 0, + from 100-199 use 100, 200-299 use 200, etc. + EventCategory event is listed under. + UUID of query to correlate results in callback. + + + Requests Event Details + ID of Event returned from the method + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming event message + The Unique Capabilities Key + The event message containing the data + The simulator the message originated from + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming event message + The Unique Capabilities Key + The event message containing the data + The simulator the message originated from + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Contains the Event data returned from the data server from an EventInfoRequest + + + Construct a new instance of the EventInfoReplyEventArgs class + A single EventInfo object containing the details of an event + + + + A single EventInfo object containing the details of an event + + + + Contains the "Event" detail data returned from the data server + + + Construct a new instance of the DirEventsReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list containing the "Events" returned by the search query + + + The ID returned by + + + A list of "Events" returned by the data server + + + Contains the "Event" list data returned from the data server + + + Construct a new instance of PlacesReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list containing the "Places" returned by the data server query + + + The ID returned by + + + A list of "Places" returned by the data server + + + Contains the places data returned from the data server + + + Construct a new instance of the DirPlacesReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list containing land data returned by the data server + + + The ID returned by + + + A list containing Places data returned by the data server + + + Contains the classified data returned from the data server + + + Construct a new instance of the DirClassifiedsReplyEventArgs class + A list of classified ad data returned from the data server + + + A list containing Classified Ads returned by the data server + + + Contains the group data returned from the data server + + + Construct a new instance of the DirGroupsReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list of groups data returned by the data server + + + The ID returned by + + + A list containing Groups data returned by the data server + + + Contains the people data returned from the data server + + + Construct a new instance of the DirPeopleReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list of people data returned by the data server + + + The ID returned by + + + A list containing People data returned by the data server + + + Contains the land sales data returned from the data server + + + Construct a new instance of the DirLandReplyEventArgs class + A list of parcels for sale returned by the data server + + + A list containing land forsale data returned by the data server + + + + Represends individual HTTP Download request + + + + Default constructor + + + Constructor + + + URI of the item to fetch + + + Timout specified in milliseconds + + + Download progress callback + + + Download completed callback + + + Accept the following content type + + + + Manages async HTTP downloads with a limit on maximum + concurrent downloads + + + + Default constructor + + + Maximum number of parallel downloads from a single endpoint + + + Client certificate + + + Cleanup method + + + Setup http download request + + + Check the queue for pending work + + + Enqueue a new HTPP download Describes tasks returned in LandStatReply @@ -24021,114 +7126,177 @@ Estate level administration and utilities + + + Constructor for EstateTools class + + + + + + Used in the ReportType field of a LandStatRequest + + + Used by EstateOwnerMessage packets + + + Used by EstateOwnerMessage packets + + + + + + + No flags set + + + Only return targets scripted objects + + + Only return targets objects if on others land + + + Returns target's scripted objects and objects on other parcels + + + Ground texture settings for each corner of the region + + + Used by GroundTextureHeightSettings + + + The high and low texture thresholds for each corner of the sim + Textures for each of the four terrain height levels Upper/lower texture boundaries for each corner of the sim - - - Constructor for EstateTools class - - - The event subscribers. null if no subcribers - - Raises the TopCollidersReply event - A TopCollidersReplyEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the TopScriptsReply event - A TopScriptsReplyEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the EstateUsersReply event - A EstateUsersReplyEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the EstateGroupsReply event - A EstateGroupsReplyEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the EstateManagersReply event - A EstateManagersReplyEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the EstateBansReply event - A EstateBansReplyEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers - - Raises the EstateCovenantReply event - A EstateCovenantReplyEventArgs object containing the - data returned from the data server - Thread sync lock object The event subscribers. null if no subcribers + + Thread sync lock object + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raised when the data server responds to a request. + + + Raises the TopCollidersReply event + A TopCollidersReplyEventArgs object containing the + data returned from the data server + + + Raises the TopScriptsReply event + A TopScriptsReplyEventArgs object containing the + data returned from the data server + + + Raises the EstateUsersReply event + A EstateUsersReplyEventArgs object containing the + data returned from the data server + + + Raises the EstateGroupsReply event + A EstateGroupsReplyEventArgs object containing the + data returned from the data server + + + Raises the EstateManagersReply event + A EstateManagersReplyEventArgs object containing the + data returned from the data server + + + Raises the EstateBansReply event + A EstateBansReplyEventArgs object containing the + data returned from the data server + + + Raises the EstateCovenantReply event + A EstateCovenantReplyEventArgs object containing the + data returned from the data server + Raises the EstateUpdateInfoReply event A EstateUpdateInfoReplyEventArgs object containing the data returned from the data server - - Thread sync lock object - Requests estate information such as top scripts and colliders - - - - + + + + + + + + Requests estate settings, including estate manager and access/ban lists @@ -24153,16 +7321,19 @@ - Request return of objects owned by specified avatar + Request return of objects owned by specified avatar - The Agents owning the primitives to return + The Agents owning the primitives to return specify the coverage and type of objects to be included in the return true to perform return on entire estate - - - + + + + + + @@ -24186,8 +7357,7 @@ Unban an avatar from an estate Key of Agent to remove - /// Unban user from this estate and all others owned by the estate owner - + /// Unban user from this estate and all others owned by the estate owner Send a message dialog to everyone in an entire estate @@ -24224,13 +7394,17 @@ Used for setting the region's terrain textures for its four height levels - - - - + + + + + + + + - Used for setting sim terrain texture heights + Used for setting sim terrain texture heights Requests the estate covenant @@ -24273,18 +7447,16 @@ Removes agent as an allowed reisdent from All estates if true - - - Add's a group to the estate Allowed list - Key of Group to Add - Add Group as an allowed group to All estates if true + + Add's a group to the estate Allowed list + Key of Group to Add + Add Group as an allowed group to All estates if true - - - Removes a group from the estate Allowed list - Key of Group to Remove - Removes Group as an allowed Group from All estates if true + + Removes a group from the estate Allowed list + Key of Group to Remove + Removes Group as an allowed Group from All estates if true Process an incoming packet and raise the appropriate events @@ -24301,65 +7473,6 @@ The sender The EventArgs object containing the packet data - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Raised when the data server responds to a request. - - - Used in the ReportType field of a LandStatRequest - - - Used by EstateOwnerMessage packets - - - Used by EstateOwnerMessage packets - - - - - - - - No flags set - - - Only return targets scripted objects - - - Only return targets objects if on others land - - - Returns target's scripted objects and objects on other parcels - - - Ground texture settings for each corner of the region - - - Used by GroundTextureHeightSettings - - - The high and low texture thresholds for each corner of the sim - Raised on LandStatReply when the report type is for "top colliders" @@ -24530,7 +7643,8 @@ The estate's name The Estate Owners ID (can be a GroupID) The estate's identifier on the grid - + + @@ -24548,521 +7662,18761 @@ - - - - Holds group information for Avatars such as those you might find in a profile - - true of Avatar accepts group notices - - - Groups Key - - - Texture Key for groups insignia - - - Name of the group - - - Powers avatar has in the group - - - Avatars Currently selected title - - - true of Avatar has chosen to list this in their profile - - + - Contains an animation currently being played by an agent + Registers, unregisters, and fires events generated by incoming packets - - The ID of the animation asset - - - A number to indicate start order of currently playing animations - On Linden Grids this number is unique per region, with OpenSim it is per client - - - - - + - Holds group information on an individual profile pick + Default constructor + + + + + + + Object that is passed to worker threads in the ThreadPool for + firing packet callbacks - + + Callback to fire for this packet + + + Reference to the simulator that this packet came from + + + The packet that needs to be processed + + + Reference to the GridClient object + + - Retrieve friend status notifications, and retrieve avatar names and - profiles + Register an event handler + + Use PacketType.Default to fire this event on every + incoming packet + Packet type to register the handler for + Callback to be fired + True if this callback should be ran + asynchronously, false to run it synchronous + + + + Unregister an event handler + + Packet type to unregister the handler for + Callback to be unregistered + + + + Fire the events registered for this packet type + + Incoming packet type + Incoming packet + Simulator this packet was received from + + + + Registers, unregisters, and fires events generated by the Capabilities + event queue - - The event subscribers, null of no subscribers - - - Raises the AvatarAnimation Event - An AvatarAnimationEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AvatarAppearance Event - A AvatarAppearanceEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the UUIDNameReply Event - A UUIDNameReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AvatarInterestsReply Event - A AvatarInterestsReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AvatarPropertiesReply Event - A AvatarPropertiesReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AvatarGroupsReply Event - A AvatarGroupsReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AvatarPickerReply Event - A AvatarPickerReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the ViewerEffectPointAt Event - A ViewerEffectPointAtEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the ViewerEffectLookAt Event - A ViewerEffectLookAtEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the ViewerEffect Event - A ViewerEffectEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AvatarPicksReply Event - A AvatarPicksReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the PickInfoReply Event - A PickInfoReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AvatarClassifiedReply Event - A AvatarClassifiedReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the ClassifiedInfoReply Event - A ClassifiedInfoReplyEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - + - Represents other avatars + Default constructor - + Reference to the GridClient object - - Tracks the specified avatar on your map - Avatar ID to track - - + - Request a single avatar name + Object that is passed to worker threads in the ThreadPool for + firing CAPS callbacks - The avatar key to retrieve a name for - + + Callback to fire for this packet + + + Name of the CAPS event + + + Strongly typed decoded data + + + Reference to the simulator that generated this event + + + Reference to the GridClient object + + - Request a list of avatar names + Register an new event handler for a capabilities event sent via the EventQueue - The avatar keys to retrieve names for + Use String.Empty to fire this event on every CAPS event + Capability event name to register the + handler for + Callback to fire - + - Start a request for Avatar Properties + Unregister a previously registered capabilities handler - + Capability event name unregister the + handler for + Callback to unregister - + - Search for an avatar (first name, last name) + Fire the events registered for this event type synchronously - The name to search for - An ID to associate with this query + Capability name + Decoded event body + Reference to the simulator that + generated this event - + - Start a request for Avatar Picks + Fire the events registered for this event type asynchronously - UUID of the avatar + Capability name + Decoded event body + Reference to the simulator that + generated this event - + - Start a request for Avatar Classifieds - UUID of the avatar - + + The avatar has no rights + + + The avatar can see the online status of the target avatar + + + The avatar can see the location of the target avatar on the map + + + The avatar can modify the ojects of the target avatar + + - Start a request for details of a specific profile pick + This class holds information about an avatar in the friends list. There are two ways + to interface to this class. The first is through the set of boolean properties. This is the typical + way clients of this class will use it. The second interface is through two bitflag properties, + TheirFriendsRights and MyFriendsRights - UUID of the avatar - UUID of the profile pick - + - Start a request for details of a specific profile classified + Used internally when building the initial list of friends at login time - UUID of the avatar - UUID of the profile classified + System ID of the avatar being prepesented + Rights the friend has to see you online and to modify your objects + Rights you have to see your friend online and to modify their objects - + + + System ID of the avatar + + + + + full name of the avatar + + + + + True if the avatar is online + + + + + True if the friend can see if I am online + + + + + True if the friend can see me on the map + + + + + True if the freind can modify my objects + + + + + True if I can see if my friend is online + + + + + True if I can see if my friend is on the map + + + + + True if I can modify my friend's objects + + + + + My friend's rights represented as bitmapped flags + + + + + My rights represented as bitmapped flags + + + + + FriendInfo represented as a string + + A string reprentation of both my rights and my friends rights + + + + This class is used to add and remove avatars from your friends list and to manage their permission. + + + + + Internal constructor + + A reference to the GridClient Object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + + A dictionary of key/value pairs containing known friends of this avatar. + The Key is the of the friend, the value is a + object that contains detailed information including permissions you have and have given to the friend + + + + + A Dictionary of key/value pairs containing current pending frienship offers. + The key is the of the avatar making the request, + the value is the of the request which is used to accept + or decline the friendship offer + + + + Raised when the simulator sends notification one of the members in our friends list comes online + + + Raised when the simulator sends notification one of the members in our friends list goes offline + + + Raised when the simulator sends notification one of the members in our friends list grants or revokes permissions + + + Raised when the simulator sends us the names on our friends list + + + Raised when the simulator sends notification another agent is offering us friendship + + + Raised when a request we sent to friend another agent is accepted or declined + + + Raised when the simulator sends notification one of the members in our friends list has terminated + our friendship + + + Raised when the simulator sends the location of a friend we have + requested map location info for + + + Raises the FriendOnline event + A FriendInfoEventArgs object containing the + data returned from the data server + + + Raises the FriendOffline event + A FriendInfoEventArgs object containing the + data returned from the data server + + + Raises the FriendRightsUpdate event + A FriendInfoEventArgs object containing the + data returned from the data server + + + Raises the FriendNames event + A FriendNamesEventArgs object containing the + data returned from the data server + + + Raises the FriendshipOffered event + A FriendshipOfferedEventArgs object containing the + data returned from the data server + + + Raises the FriendshipResponse event + A FriendshipResponseEventArgs object containing the + data returned from the data server + + + Raises the FriendshipTerminated event + A FriendshipTerminatedEventArgs object containing the + data returned from the data server + + + Raises the FriendFoundReply event + A FriendFoundReplyEventArgs object containing the + data returned from the data server + + + + Accept a friendship request + + agentID of avatatar to form friendship with + imSessionID of the friendship request message + + + + Decline a friendship request + + + of friend + imSessionID of the friendship request message + + + + Overload: Offer friendship to an avatar. + + System ID of the avatar you are offering friendship to + + + + Offer friendship to an avatar. + + System ID of the avatar you are offering friendship to + A message to send with the request + + + + Terminate a friendship with an avatar + + System ID of the avatar you are terminating the friendship with + + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - + - Crossed region handler for message that comes across the EventQueue. Sent to an agent - when the agent crosses a sim border into a new region. + Change the rights of a friend avatar. - The message key - the IMessage object containing the deserialized data sent from the simulator - The which originated the packet + the of the friend + the new rights to give the friend + This method will implicitly set the rights to those passed in the rights parameter. - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Raised when the simulator sends us data containing - an agents animation playlist - - - Raised when the simulator sends us data containing - the appearance information for an agent - - - Raised when the simulator sends us data containing - agent names/id values - - - Raised when the simulator sends us data containing - the interests listed in an agents profile - - - Raised when the simulator sends us data containing - profile property information for an agent - - - Raised when the simulator sends us data containing - the group membership an agent is a member of - - - Raised when the simulator sends us data containing - name/id pair - - - Raised when the simulator sends us data containing - the objects and effect when an agent is pointing at - - - Raised when the simulator sends us data containing - the objects and effect when an agent is looking at - - - Raised when the simulator sends us data containing - an agents viewer effect information - - - Raised when the simulator sends us data containing - the top picks from an agents profile - - - Raised when the simulator sends us data containing - the Pick details - - - Raised when the simulator sends us data containing - the classified ads an agent has placed - - - Raised when the simulator sends us data containing - the details of a classified ad - - - Provides data for the event - The event occurs when the simulator sends - the animation playlist for an agent - - The following code example uses the and - properties to display the animation playlist of an avatar on the window. - - // subscribe to the event - Client.Avatars.AvatarAnimation += Avatars_AvatarAnimation; - - private void Avatars_AvatarAnimation(object sender, AvatarAnimationEventArgs e) - { - // create a dictionary of "known" animations from the Animations class using System.Reflection - Dictionary<UUID, string> systemAnimations = new Dictionary<UUID, string>(); - Type type = typeof(Animations); - System.Reflection.FieldInfo[] fields = type.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); - foreach (System.Reflection.FieldInfo field in fields) - { - systemAnimations.Add((UUID)field.GetValue(type), field.Name); - } - - // find out which animations being played are known animations and which are assets - foreach (Animation animation in e.Animations) - { - if (systemAnimations.ContainsKey(animation.AnimationID)) - { - Console.WriteLine("{0} is playing {1} ({2}) sequence {3}", e.AvatarID, - systemAnimations[animation.AnimationID], animation.AnimationSequence); - } - else - { - Console.WriteLine("{0} is playing {1} (Asset) sequence {2}", e.AvatarID, - animation.AnimationID, animation.AnimationSequence); - } - } - } - - - - + - Construct a new instance of the AvatarAnimationEventArgs class + Use to map a friends location on the grid. - The ID of the agent - The list of animations to start + Friends UUID to find + + + - - Get the ID of the agent + + + Use to track a friends movement on the grid + + Friends Key - - Get the list of animations to start + + + Ask for a notification of friend's online status + + Friend's UUID - - Provides data for the event - The event occurs when the simulator sends - the appearance data for an avatar + + + This handles the asynchronous response of a RequestAvatarNames call. + + + + names cooresponding to the the list of IDs sent the the RequestAvatarNames call. + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + + Populate FriendList with data from the login reply + + true if login was successful + true if login request is requiring a redirect + A string containing the response to the login request + A string containing the reason for the request + A object containing the decoded + reply from the login server + + + Contains information on a member of our friends list + + + + Construct a new instance of the FriendInfoEventArgs class + + The FriendInfo + + + Get the FriendInfo + + + Contains Friend Names + + + + Construct a new instance of the FriendNamesEventArgs class + + A dictionary where the Key is the ID of the Agent, + and the Value is a string containing their name + + + A dictionary where the Key is the ID of the Agent, + and the Value is a string containing their name + + + Sent when another agent requests a friendship with our agent + + + + Construct a new instance of the FriendshipOfferedEventArgs class + + The ID of the agent requesting friendship + The name of the agent requesting friendship + The ID of the session, used in accepting or declining the + friendship offer + + + Get the ID of the agent requesting friendship + + + Get the name of the agent requesting friendship + + + Get the ID of the session, used in accepting or declining the + friendship offer + + + A response containing the results of our request to form a friendship with another agent + + + + Construct a new instance of the FriendShipResponseEventArgs class + + The ID of the agent we requested a friendship with + The name of the agent we requested a friendship with + true if the agent accepted our friendship offer + + + Get the ID of the agent we requested a friendship with + + + Get the name of the agent we requested a friendship with + + + true if the agent accepted our friendship offer + + + Contains data sent when a friend terminates a friendship with us + + + + Construct a new instance of the FrindshipTerminatedEventArgs class + + The ID of the friend who terminated the friendship with us + The name of the friend who terminated the friendship with us + + + Get the ID of the agent that terminated the friendship with us + + + Get the name of the agent that terminated the friendship with us + + + + Data sent in response to a request which contains the information to allow us to map the friends location + + + + + Construct a new instance of the FriendFoundReplyEventArgs class + + The ID of the agent we have requested location information for + The region handle where our friend is located + The simulator local position our friend is located + + + Get the ID of the agent we have received location information for + + + Get the region handle where our mapped friend is located + + + Get the simulator local position where our friend is located + + + + Main class to expose grid functionality to clients. All of the + classes needed for sending and receiving data are accessible through + this class. + - The following code example uses the and - properties to display the selected shape of an avatar on the window. - - // subscribe to the event - Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; - - // handle the data when the event is raised - void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) - { - Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") - } + + // Example minimum code required to instantiate class and + // connect to a simulator. + using System; + using System.Collections.Generic; + using System.Text; + using OpenMetaverse; + namespace FirstBot + { + class Bot + { + public static GridClient Client; + static void Main(string[] args) + { + Client = new GridClient(); // instantiates the GridClient class + // to the global Client object + // Login to Simulator + Client.Network.Login("FirstName", "LastName", "Password", "FirstBot", "1.0"); + // Wait for a Keypress + Console.ReadLine(); + // Logout of simulator + Client.Network.Logout(); + } + } + } - + - Construct a new instance of the AvatarAppearanceEventArgs class + Default constructor - The simulator request was from - The ID of the agent - true of the agent is a trial account - The default agent texture - The agents appearance layer textures - The for the agent - - Get the Simulator this request is from of the agent + + Networking subsystem - - Get the ID of the agent + + Settings class including constant values and changeable + parameters for everything - - true if the agent is a trial account + + Parcel (subdivided simulator lots) subsystem - - Get the default agent texture + + Our own avatars subsystem - - Get the agents appearance layer textures + + Other avatars subsystem - - Get the for the agent + + Estate subsystem - - Represents the interests from the profile of an agent + + Friends list subsystem - - Get the ID of the agent + + Grid (aka simulator group) subsystem - - The properties of an agent + + Object subsystem - - Get the ID of the agent + + Group subsystem - - Get the ID of the agent + + Asset subsystem - - Get the ID of the agent + + Appearance subsystem - - Get the ID of the avatar + + Inventory subsystem + + + Directory searches including classifieds, people, land + sales, etc + + + Handles land, wind, and cloud heightmaps + + + Handles sound-related networking + + + Throttling total bandwidth usage, or allocating bandwidth + for specific data stream types + + + + Return the full name of this instance + + Client avatars full name + + + + Map layer request type + + + + Objects and terrain are shown + + + Only the terrain is shown, no objects + + + Overlay showing land for sale and for auction + + + + Type of grid item, such as telehub, event, populator location, etc. + + + + Telehub + + + PG rated event + + + Mature rated event + + + Popular location + + + Locations of avatar groups in a region + + + Land for sale + + + Classified ad + + + Adult rated event + + + Adult land for sale + + + + Information about a region on the grid map + + + + Sim X position on World Map + + + Sim Y position on World Map + + + Sim Name (NOTE: In lowercase!) + + + + + + + Appears to always be zero (None) + + + Sim's defined Water Height + + + + + + + UUID of the World Map image + + + Unique identifier for this region, a combination of the X + and Y position + + + + + + + + + + + + + + + + + + + + + + + + Visual chunk of the grid map + + + + + Base class for Map Items + + + + The Global X position of the item + + + The Global Y position of the item + + + Get the Local X position of the item + + + Get the Local Y position of the item + + + Get the Handle of the region + + + + Represents an agent or group of agents location + + + + + Represents a Telehub location + + + + + Represents a non-adult parcel of land for sale + + + + + Represents an Adult parcel of land for sale + + + + + Represents a PG Event + + + + + Represents a Mature event + + + + + Represents an Adult event + + + + + Manages grid-wide tasks such as the world map + + + + + Constructor + + Instance of GridClient object to associate with this GridManager instance + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + A dictionary of all the regions, indexed by region name + + + A dictionary of all the regions, indexed by region handle + + + Raised when the simulator sends a + containing the location of agents in the simulator + + + Raised when the simulator sends a Region Data in response to + a Map request + + + Raised when the simulator sends GridLayer object containing + a map tile coordinates and texture information + + + Raised when the simulator sends GridItems object containing + details on events, land sales at a specific location + + + Raised in response to a Region lookup + + + Unknown + + + Current direction of the sun + + + Current angular velocity of the sun + + + Microseconds since the start of SL 4-hour day + + + Raises the CoarseLocationUpdate event + A CoarseLocationUpdateEventArgs object containing the + data sent by simulator + + + Raises the GridRegion event + A GridRegionEventArgs object containing the + data sent by simulator + + + Raises the GridLayer event + A GridLayerEventArgs object containing the + data sent by simulator + + + Raises the GridItems event + A GridItemEventArgs object containing the + data sent by simulator + + + Raises the RegionHandleReply event + A RegionHandleReplyEventArgs object containing the + data sent by simulator + + + + + + + + + + Request a map layer + + The name of the region + The type of layer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Request data for all mainland (Linden managed) simulators + + + + + Request the region handle for the specified region UUID + + UUID of the region to look up + + + + Get grid region information using the region name, this function + will block until it can find the region or gives up + + Name of sim you're looking for + Layer that you are requesting + Will contain a GridRegion for the sim you're + looking for if successful, otherwise an empty structure + True if the GridRegion was successfully fetched, otherwise + false + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + + Avatar group management + + + + Key of Group Member + + + Total land contribution + + + Online status information + + + Abilities that the Group Member has + + + Current group title + + + Is a group owner + + + + Role manager for a group + + + + Key of the group + + + Key of Role + + + Name of Role + + + Group Title associated with Role + + + Description of Role + + + Abilities Associated with Role + + + Returns the role's title + The role's title + + + + Class to represent Group Title + + + + Key of the group + + + ID of the role title belongs to + + + Group Title + + + Whether title is Active + + + Returns group title + + + + Represents a group on the grid + + + + Key of Group + + + Key of Group Insignia + + + Key of Group Founder + + + Key of Group Role for Owners + + + Name of Group + + + Text of Group Charter + + + Title of "everyone" role + + + Is the group open for enrolement to everyone + + + Will group show up in search + + + + + + + + + + + + + + + Is the group Mature + + + Cost of group membership + + + + + + + + + + + The total number of current members this group has + + + The number of roles this group has configured + + + Show this group in agent's profile + + + Returns the name of the group + A string containing the name of the group + + + + A group Vote + + + + Key of Avatar who created Vote + + + Text of the Vote proposal + + + Total number of votes + + + + A group proposal + + + + The Text of the proposal + + + The minimum number of members that must vote before proposal passes or failes + + + The required ration of yes/no votes required for vote to pass + The three options are Simple Majority, 2/3 Majority, and Unanimous + TODO: this should be an enum + + The duration in days votes are accepted + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Struct representing a group notice + + + + + + + + + + + + + + + + + + + + + + + + + + + Struct representing a group notice list entry + + + + Notice ID + + + Creation timestamp of notice + + + Agent name who created notice + + + Notice subject + + + Is there an attachment? + + + Attachment Type + + + + Struct representing a member of a group chat session and their settings + + + + The of the Avatar + + + True if user has voice chat enabled + + + True of Avatar has moderator abilities + + + True if a moderator has muted this avatars chat + + + True if a moderator has muted this avatars voice + + + + Role update flags + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Can send invitations to groups default role + + + Can eject members from group + + + Can toggle 'Open Enrollment' and change 'Signup fee' + + + Member is visible in the public member list + + + Can create new roles + + + Can delete existing roles + + + Can change Role names, titles and descriptions + + + Can assign other members to assigners role + + + Can assign other members to any role + + + Can remove members from roles + + + Can assign and remove abilities in roles + + + Can change group Charter, Insignia, 'Publish on the web' and which + members are publicly visible in group member listings + + + Can buy land or deed land to group + + + Can abandon group owned land to Governor Linden on mainland, or Estate owner for + private estates + + + Can set land for-sale information on group owned parcels + + + Can subdivide and join parcels + + + Can join group chat sessions + + + Can use voice chat in Group Chat sessions + + + Can moderate group chat sessions + + + Can toggle "Show in Find Places" and set search category + + + Can change parcel name, description, and 'Publish on web' settings + + + Can set the landing point and teleport routing on group land + + + Can change music and media settings + + + Can toggle 'Edit Terrain' option in Land settings + + + Can toggle various About Land > Options settings + + + Can always terraform land, even if parcel settings have it turned off + + + Can always fly while over group owned land + + + Can always rez objects on group owned land + + + Can always create landmarks for group owned parcels + + + Can set home location on any group owned parcel + + + Can modify public access settings for group owned parcels + + + Can manager parcel ban lists on group owned land + + + Can manage pass list sales information + + + Can eject and freeze other avatars on group owned land + + + Can return objects set to group + + + Can return non-group owned/set objects + + + Can return group owned objects + + + Can landscape using Linden plants + + + Can deed objects to group + + + Can move group owned objects + + + Can set group owned objects for-sale + + + Pay group liabilities and receive group dividends + + + Can send group notices + + + Can receive group notices + + + Can create group proposals + + + Can vote on group proposals + + + + Handles all network traffic related to reading and writing group + information + + + + + Construct a new instance of the GroupManager class + + A reference to the current instance + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + A reference to the current instance + + + Currently-active group members requests + + + Currently-active group roles requests + + + Currently-active group role-member requests + + + Dictionary keeping group members while request is in progress + + + Dictionary keeping mebmer/role mapping while request is in progress + + + Dictionary keeping GroupRole information while request is in progress + + + Caches group name lookups + + + Raised when the simulator sends us data containing + our current group membership + + + Raised when the simulator responds to a RequestGroupName + or RequestGroupNames request + + + Raised when the simulator responds to a request + + + Raised when the simulator responds to a request + + + Raised when the simulator responds to a request + + + Raised when the simulator responds to a request + + + Raised when the simulator responds to a request + + + Raised when a response to a RequestGroupAccountSummary is returned + by the simulator + + + Raised when a request to create a group is successful + + + Raised when a request to join a group either + fails or succeeds + + + Raised when a request to leave a group either + fails or succeeds + + + Raised when A group is removed from the group server + + + Raised when a request to eject a member from a group either + fails or succeeds + + + Raised when the simulator sends us group notices + + + + Raised when another agent invites our avatar to join a group + + + Raises the CurrentGroups event + A CurrentGroupsEventArgs object containing the + data sent from the simulator + + + Raises the GroupNamesReply event + A GroupNamesEventArgs object containing the + data response from the simulator + + + Raises the GroupProfile event + An GroupProfileEventArgs object containing the + data returned from the simulator + + + Raises the GroupMembers event + A GroupMembersEventArgs object containing the + data returned from the simulator + + + Raises the GroupRolesDataReply event + A GroupRolesDataReplyEventArgs object containing the + data returned from the simulator + + + Raises the GroupRoleMembersReply event + A GroupRolesRoleMembersReplyEventArgs object containing the + data returned from the simulator + + + Raises the GroupTitlesReply event + A GroupTitlesReplyEventArgs object containing the + data returned from the simulator + + + Raises the GroupAccountSummary event + A GroupAccountSummaryReplyEventArgs object containing the + data returned from the simulator + + + Raises the GroupCreated event + An GroupCreatedEventArgs object containing the + data returned from the simulator + + + Raises the GroupJoined event + A GroupOperationEventArgs object containing the + result of the operation returned from the simulator + + + Raises the GroupLeft event + A GroupOperationEventArgs object containing the + result of the operation returned from the simulator + + + Raises the GroupDropped event + An GroupDroppedEventArgs object containing the + the group your agent left + + + Raises the GroupMemberEjected event + An GroupMemberEjectedEventArgs object containing the + data returned from the simulator + + + Raises the GroupNoticesListReply event + An GroupNoticesListReplyEventArgs object containing the + data returned from the simulator + + + Raises the GroupInvitation event + An GroupInvitationEventArgs object containing the + data returned from the simulator + + + + Request a current list of groups the avatar is a member of. + + CAPS Event Queue must be running for this to work since the results + come across CAPS. + + + + Lookup name of group based on groupID + + groupID of group to lookup name for. + + + + Request lookup of multiple group names + + List of group IDs to request. + + + Lookup group profile data such as name, enrollment, founder, logo, etc + Subscribe to OnGroupProfile event to receive the results. + group ID (UUID) + + + Request a list of group members. + Subscribe to OnGroupMembers event to receive the results. + group ID (UUID) + UUID of the request, use to index into cache + + + Request group roles + Subscribe to OnGroupRoles event to receive the results. + group ID (UUID) + UUID of the request, use to index into cache + + + Request members (members,role) role mapping for a group. + Subscribe to OnGroupRolesMembers event to receive the results. + group ID (UUID) + UUID of the request, use to index into cache + + + Request a groups Titles + Subscribe to OnGroupTitles event to receive the results. + group ID (UUID) + UUID of the request, use to index into cache + + + Begin to get the group account summary + Subscribe to the OnGroupAccountSummary event to receive the results. + group ID (UUID) + How long of an interval + Which interval (0 for current, 1 for last) + + + Invites a user to a group + The group to invite to + A list of roles to invite a person to + Key of person to invite + + + Set a group as the current active group + group ID (UUID) + + + Change the role that determines your active title + Group ID to use + Role ID to change to + + + Set this avatar's tier contribution + Group ID to change tier in + amount of tier to donate + + + + Save wheather agent wants to accept group notices and list this group in their profile + + Group + Accept notices from this group + List this group in the profile + + + Request to join a group + Subscribe to OnGroupJoined event for confirmation. + group ID (UUID) to join. + + + + Request to create a new group. If the group is successfully + created, L$100 will automatically be deducted + + Subscribe to OnGroupCreated event to receive confirmation. + Group struct containing the new group info + + + Update a group's profile and other information + Groups ID (UUID) to update. + Group struct to update. + + + Eject a user from a group + Group ID to eject the user from + Avatar's key to eject + + + Update role information + Modified role to be updated + + + Create a new group role + Group ID to update + Role to create + + + Delete a group role + Group ID to update + Role to delete + + + Remove an avatar from a role + Group ID to update + Role ID to be removed from + Avatar's Key to remove + + + Assign an avatar to a role + Group ID to update + Role ID to assign to + Avatar's ID to assign to role + + + Request the group notices list + Group ID to fetch notices for + + + Request a group notice by key + ID of group notice + + + Send out a group notice + Group ID to update + + GroupNotice structure containing notice data + + + Start a group proposal (vote) + The Group ID to send proposal to + + GroupProposal structure containing the proposal + + + Request to leave a group + Subscribe to OnGroupLeft event to receive confirmation + The group to leave + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Contains the current groups your agent is a member of + + + Construct a new instance of the CurrentGroupsEventArgs class + The current groups your agent is a member of + + + Get the current groups your agent is a member of + + + A Dictionary of group names, where the Key is the groups ID and the value is the groups name + + + Construct a new instance of the GroupNamesEventArgs class + The Group names dictionary + + + Get the Group Names dictionary + + + Represents the members of a group + + + + Construct a new instance of the GroupMembersReplyEventArgs class + + The ID of the request + The ID of the group + The membership list of the group + + + Get the ID as returned by the request to correlate + this result set and the request + + + Get the ID of the group + + + Get the dictionary of members + + + Represents the roles associated with a group + + + Construct a new instance of the GroupRolesDataReplyEventArgs class + The ID as returned by the request to correlate + this result set and the request + The ID of the group + The dictionary containing the roles + + + Get the ID as returned by the request to correlate + this result set and the request + + + Get the ID of the group + + + Get the dictionary containing the roles + + + Represents the Role to Member mappings for a group + + + Construct a new instance of the GroupRolesMembersReplyEventArgs class + The ID as returned by the request to correlate + this result set and the request + The ID of the group + The member to roles map + + + Get the ID as returned by the request to correlate + this result set and the request + + + Get the ID of the group + + + Get the member to roles map + + + Represents the titles for a group + + + Construct a new instance of the GroupTitlesReplyEventArgs class + The ID as returned by the request to correlate + this result set and the request + The ID of the group + The titles + + + Get the ID as returned by the request to correlate + this result set and the request + + + Get the ID of the group + + + Get the titles + + + Represents the summary data for a group + + + Construct a new instance of the GroupAccountSummaryReplyEventArgs class + The ID of the group + The summary data + + + Get the ID of the group + + + Get the summary data + + + A response to a group create request + + + Construct a new instance of the GroupCreatedReplyEventArgs class + The ID of the group + the success or faulure of the request + A string containing additional information + + + Get the ID of the group + + + true of the group was created successfully + + + A string containing the message + + + Represents a response to a request + + + Construct a new instance of the GroupOperationEventArgs class + The ID of the group + true of the request was successful + + + Get the ID of the group + + + true of the request was successful + + + Represents your agent leaving a group + + + Construct a new instance of the GroupDroppedEventArgs class + The ID of the group + + + Get the ID of the group + + + Represents a list of active group notices + + + Construct a new instance of the GroupNoticesListReplyEventArgs class + The ID of the group + The list containing active notices + + + Get the ID of the group + + + Get the notices list + + + Represents the profile of a group + + + Construct a new instance of the GroupProfileEventArgs class + The group profile + + + Get the group profile + + + + Provides notification of a group invitation request sent by another Avatar + + The invitation is raised when another avatar makes an offer for our avatar + to join a group. + + + The ID of the Avatar sending the group invitation + + + The name of the Avatar sending the group invitation + + + A message containing the request information which includes + the name of the group, the groups charter and the fee to join details + + + The Simulator + + + Set to true to accept invitation, false to decline + + + + Static helper functions and global variables + + + + + Passed to Logger.Log() to identify the severity of a log entry + + + + No logging information will be output + + + Non-noisy useful information, may be helpful in + debugging a problem + + + A non-critical error occurred. A warning will not + prevent the rest of the library from operating as usual, + although it may be indicative of an underlying issue + + + A critical error has occurred. Generally this will + be followed by the network layer shutting down, although the + stability of the library after an error is uncertain + + + Used for internal testing, this logging level can + generate very noisy (long and/or repetitive) messages. Don't + pass this to the Log() function, use DebugLog() instead. + + + + This header flag signals that ACKs are appended to the packet + + + This header flag signals that this packet has been sent before + + + This header flags signals that an ACK is expected for this packet + + + This header flag signals that the message is compressed using zerocoding + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Given an X/Y location in absolute (grid-relative) terms, a region + handle is returned along with the local X/Y location in that region + + The absolute X location, a number such as + 255360.35 + The absolute Y location, a number such as + 255360.35 + The sim-local X position of the global X + position, a value from 0.0 to 256.0 + The sim-local Y position of the global Y + position, a value from 0.0 to 256.0 + A 64-bit region handle that can be used to teleport to + + + + Converts a floating point number to a terse string format used for + transmitting numbers in wearable asset files + + Floating point number to convert to a string + A terse string representation of the input number + + + + Convert a variable length field (byte array) to a string, with a + field name prepended to each line of the output + + If the byte array has unprintable characters in it, a + hex dump will be written instead + The StringBuilder object to write to + The byte array to convert to a string + A field name to prepend to each line of output + + + + Decode a zerocoded byte array, used to decompress packets marked + with the zerocoded flag + + Any time a zero is encountered, the next byte is a count + of how many zeroes to expand. One zero is encoded with 0x00 0x01, + two zeroes is 0x00 0x02, three zeroes is 0x00 0x03, etc. The + first four bytes are copied directly to the output buffer. + + The byte array to decode + The length of the byte array to decode. This + would be the length of the packet up to (but not including) any + appended ACKs + The output byte array to decode to + The length of the output buffer + + + + Encode a byte array with zerocoding. Used to compress packets marked + with the zerocoded flag. Any zeroes in the array are compressed down + to a single zero byte followed by a count of how many zeroes to expand + out. A single zero becomes 0x00 0x01, two zeroes becomes 0x00 0x02, + three zeroes becomes 0x00 0x03, etc. The first four bytes are copied + directly to the output buffer. + + The byte array to encode + The length of the byte array to encode + The output byte array to encode to + The length of the output buffer + + + + Calculates the CRC (cyclic redundancy check) needed to upload inventory. + + Creation date + Sale type + Inventory type + Type + Asset ID + Group ID + Sale price + Owner ID + Creator ID + Item ID + Folder ID + Everyone mask (permissions) + Flags + Next owner mask (permissions) + Group mask (permissions) + Owner mask (permissions) + The calculated CRC + + + + Attempts to load a file embedded in the assembly + + The filename of the resource to load + A Stream for the requested file, or null if the resource + was not successfully loaded + + + + Attempts to load a file either embedded in the assembly or found in + a given search path + + The filename of the resource to load + An optional path that will be searched if + the asset is not found embedded in the assembly + A Stream for the requested file, or null if the resource + was not successfully loaded + + + + Converts a list of primitives to an object that can be serialized + with the LLSD system + + Primitives to convert to a serializable object + An object that can be serialized with LLSD + + + + Deserializes OSD in to a list of primitives + + Structure holding the serialized primitive list, + must be of the SDMap type + A list of deserialized primitives + + + + Converts a struct or class object containing fields only into a key value separated string + + The struct object + A string containing the struct fields as the keys, and the field value as the value separated + + + // Add the following code to any struct or class containing only fields to override the ToString() + // method to display the values of the passed object + /// Print the struct data as a string + ///A string containing the field name, and field value + public override string ToString() + { + return Helpers.StructToString(this); + } + + + + + + The InternalDictionary class is used through the library for storing key/value pairs. + It is intended to be a replacement for the generic Dictionary class and should + be used in its place. It contains several methods for allowing access to the data from + outside the library that are read only and thread safe. + + Key + Value + + + + Initializes a new instance of the Class + with the specified key/value, has the default initial capacity. + + + + // initialize a new InternalDictionary named testDict with a string as the key and an int as the value. + public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(); + + + + + + Initializes a new instance of the Class + with the specified key/value, has its initial valies copied from the specified + + + + to copy initial values from + + + // initialize a new InternalDictionary named testAvName with a UUID as the key and an string as the value. + // populates with copied values from example KeyNameCache Dictionary. + // create source dictionary + Dictionary<UUID, string> KeyNameCache = new Dictionary<UUID, string>(); + KeyNameCache.Add("8300f94a-7970-7810-cf2c-fc9aa6cdda24", "Jack Avatar"); + KeyNameCache.Add("27ba1e40-13f7-0708-3e98-5819d780bd62", "Jill Avatar"); + // Initialize new dictionary. + public InternalDictionary<UUID, string> testAvName = new InternalDictionary<UUID, string>(KeyNameCache); + + + + + + Initializes a new instance of the Class + with the specified key/value, With its initial capacity specified. + + Initial size of dictionary + + + // initialize a new InternalDictionary named testDict with a string as the key and an int as the value, + // initially allocated room for 10 entries. + public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(10); + + + + + Internal dictionary that this class wraps around. Do not + modify or enumerate the contents of this dictionary without locking + on this member + + + + Indexer for the dictionary + + The key + The value + + + + Gets the number of Key/Value pairs contained in the + + + + Try to get entry from with specified key + + Key to use for lookup + Value returned + + if specified key exists, if not found + + + // find your avatar using the Simulator.ObjectsAvatars InternalDictionary: + Avatar av; + if (Client.Network.CurrentSim.ObjectsAvatars.TryGetValue(Client.Self.AgentID, out av)) + Console.WriteLine("Found Avatar {0}", av.Name); + + + + + + + Finds the specified match. + + The match. + Matched value + + + // use a delegate to find a prim in the ObjectsPrimitives InternalDictionary + // with the ID 95683496 + uint findID = 95683496; + Primitive findPrim = sim.ObjectsPrimitives.Find( + delegate(Primitive prim) { return prim.ID == findID; }); + + + + + Find All items in an + return matching items. + a containing found items. + + Find All prims within 20 meters and store them in a List + + int radius = 20; + List<Primitive> prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll( + delegate(Primitive prim) { + Vector3 pos = prim.Position; + return ((prim.ParentID == 0) && (pos != Vector3.Zero) && (Vector3.Distance(pos, location) < radius)); + } + ); + + + + Find All items in an + return matching keys. + a containing found keys. + + Find All keys which also exist in another dictionary + + List<UUID> matches = myDict.FindAll( + delegate(UUID id) { + return myOtherDict.ContainsKey(id); + } + ); + + + + Perform an on each entry in an + + to perform + + + // Iterates over the ObjectsPrimitives InternalDictionary and prints out some information. + Client.Network.CurrentSim.ObjectsPrimitives.ForEach( + delegate(Primitive prim) + { + if (prim.Text != null) + { + Console.WriteLine("NAME={0} ID = {1} TEXT = '{2}'", + prim.PropertiesFamily.Name, prim.ID, prim.Text); + } + }); + + + + + Perform an on each key of an + + to perform + + + + Perform an on each KeyValuePair of an + + to perform + + + Check if Key exists in Dictionary + Key to check for + + if found, otherwise + + + Check if Value exists in Dictionary + Value to check for + + if found, otherwise + + + + Adds the specified key to the dictionary, dictionary locking is not performed, + + The key + The value + + + + Removes the specified key, dictionary locking is not performed + + The key. + + if successful, otherwise + + + + Exception class to identify inventory exceptions + + + + + Responsible for maintaining inventory structure. Inventory constructs nodes + and manages node children as is necessary to maintain a coherant hirarchy. + Other classes should not manipulate or create InventoryNodes explicitly. When + A node's parent changes (when a folder is moved, for example) simply pass + Inventory the updated InventoryFolder and it will make the appropriate changes + to its internal representation. + + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + + By using the bracket operator on this class, the program can get the + InventoryObject designated by the specified uuid. If the value for the corresponding + UUID is null, the call is equivelant to a call to RemoveNodeFor(this[uuid]). + If the value is non-null, it is equivelant to a call to UpdateNodeFor(value), + the uuid parameter is ignored. + + The UUID of the InventoryObject to get or set, ignored if set to non-null value. + The InventoryObject corresponding to uuid. + + + + The root folder of this avatars inventory + + + + + The default shared library folder + + + + + The root node of the avatars inventory + + + + + The root node of the default shared library + + + + Raises the InventoryObjectUpdated Event + A InventoryObjectUpdatedEventArgs object containing + the data sent from the simulator + + + Raises the InventoryObjectRemoved Event + A InventoryObjectRemovedEventArgs object containing + the data sent from the simulator + + + Raises the InventoryObjectAdded Event + A InventoryObjectAddedEventArgs object containing + the data sent from the simulator + + + + Returns the contents of the specified folder + + A folder's UUID + The contents of the folder corresponding to folder + When folder does not exist in the inventory + + + + Updates the state of the InventoryNode and inventory data structure that + is responsible for the InventoryObject. If the item was previously not added to inventory, + it adds the item, and updates structure accordingly. If it was, it updates the + InventoryNode, changing the parent node if item.parentUUID does + not match node.Parent.Data.UUID. + You can not set the inventory root folder using this method + + The InventoryObject to store + + + + Removes the InventoryObject and all related node data from Inventory. + + The InventoryObject to remove. + + + + Used to find out if Inventory contains the InventoryObject + specified by uuid. + + The UUID to check. + true if inventory contains uuid, false otherwise + + + + Saves the current inventory structure to a cache file + + Name of the cache file to save to + + + + Loads in inventory cache file into the inventory structure. Note only valid to call after login has been successful. + + Name of the cache file to load + The number of inventory items sucessfully reconstructed into the inventory node tree + + + Sort by name + + + Sort by date + + + Sort folders by name, regardless of whether items are + sorted by name or date + + + Place system folders at the top + + + + Possible destinations for DeRezObject request + + + + + + + + Copy from in-world to agent inventory + + + Derez to TaskInventory + + + + + + + Take Object + + + + + + + Delete Object + + + Put an avatar attachment into agent inventory + + + + + + + Return an object back to the owner's inventory + + + Return a deeded object back to the last owner's inventory + + + + Upper half of the Flags field for inventory items + + + + Indicates that the NextOwner permission will be set to the + most restrictive set of permissions found in the object set + (including linkset items and object inventory items) on next rez + + + Indicates that the object sale information has been + changed + + + If set, and a slam bit is set, indicates BaseMask will be overwritten on Rez + + + If set, and a slam bit is set, indicates OwnerMask will be overwritten on Rez + + + If set, and a slam bit is set, indicates GroupMask will be overwritten on Rez + + + If set, and a slam bit is set, indicates EveryoneMask will be overwritten on Rez + + + If set, and a slam bit is set, indicates NextOwnerMask will be overwritten on Rez + + + Indicates whether this object is composed of multiple + items or not + + + Indicates that the asset is only referenced by this + inventory item. If this item is deleted or updated to reference a + new assetID, the asset can be deleted + + + + Base Class for Inventory Items + + + + + Constructor, takes an itemID as a parameter + + The of the item + + + + + + + + + + of item/folder + + + + of parent folder + + + Name of item/folder + + + Item/Folder Owners + + + + + + + + + + Generates a number corresponding to the value of the object to support the use of a hash table, + suitable for use in hashing algorithms and data structures such as a hash table + + A Hashcode of all the combined InventoryBase fields + + + + Determine whether the specified object is equal to the current object + + InventoryBase object to compare against + true if objects are the same + + + + Determine whether the specified object is equal to the current object + + InventoryBase object to compare against + true if objects are the same + + + + An Item in Inventory + + + + + Construct a new InventoryItem object + + The of the item + + + + Construct a new InventoryItem object of a specific Type + + The type of item from + + of the item + + + + + + + + + The of this item + + + The combined of this item + + + The type of item from + + + The type of item from the enum + + + The of the creator of this item + + + A Description of this item + + + The s this item is set to or owned by + + + If true, item is owned by a group + + + The price this item can be purchased for + + + The type of sale from the enum + + + Combined flags from + + + Time and date this inventory item was created, stored as + UTC (Coordinated Universal Time) + + + Used to update the AssetID in requests sent to the server + + + The of the previous owner of the item + + + + Indicates inventory item is a link + + True if inventory item is a link to another inventory item + + + + + + + + + + Generates a number corresponding to the value of the object to support the use of a hash table. + Suitable for use in hashing algorithms and data structures such as a hash table + + A Hashcode of all the combined InventoryItem fields + + + + Compares an object + + The object to compare + true if comparison object matches + + + + Determine whether the specified object is equal to the current object + + The object to compare against + true if objects are the same + + + + Determine whether the specified object is equal to the current object + + The object to compare against + true if objects are the same + + + + InventoryTexture Class representing a graphical image + + + + + + Construct an InventoryTexture object + + A which becomes the + objects AssetUUID + + + + Construct an InventoryTexture object from a serialization stream + + + + + InventorySound Class representing a playable sound + + + + + Construct an InventorySound object + + A which becomes the + objects AssetUUID + + + + Construct an InventorySound object from a serialization stream + + + + + InventoryCallingCard Class, contains information on another avatar + + + + + Construct an InventoryCallingCard object + + A which becomes the + objects AssetUUID + + + + Construct an InventoryCallingCard object from a serialization stream + + + + + InventoryLandmark Class, contains details on a specific location + + + + + Construct an InventoryLandmark object + + A which becomes the + objects AssetUUID + + + + Construct an InventoryLandmark object from a serialization stream + + + + + Landmarks use the InventoryItemFlags struct and will have a flag of 1 set if they have been visited + + + + + InventoryObject Class contains details on a primitive or coalesced set of primitives + + + + + Construct an InventoryObject object + + A which becomes the + objects AssetUUID + + + + Construct an InventoryObject object from a serialization stream + + + + + Gets or sets the upper byte of the Flags value + + + + + Gets or sets the object attachment point, the lower byte of the Flags value + + + + + InventoryNotecard Class, contains details on an encoded text document + + + + + Construct an InventoryNotecard object + + A which becomes the + objects AssetUUID + + + + Construct an InventoryNotecard object from a serialization stream + + + + + InventoryCategory Class + + TODO: Is this even used for anything? + + + + Construct an InventoryCategory object + + A which becomes the + objects AssetUUID + + + + Construct an InventoryCategory object from a serialization stream + + + + + InventoryLSL Class, represents a Linden Scripting Language object + + + + + Construct an InventoryLSL object + + A which becomes the + objects AssetUUID + + + + Construct an InventoryLSL object from a serialization stream + + + + + InventorySnapshot Class, an image taken with the viewer + + + + + Construct an InventorySnapshot object + + A which becomes the + objects AssetUUID + + + + Construct an InventorySnapshot object from a serialization stream + + + + + InventoryAttachment Class, contains details on an attachable object + + + + + Construct an InventoryAttachment object + + A which becomes the + objects AssetUUID + + + + Construct an InventoryAttachment object from a serialization stream + + + + + Get the last AttachmentPoint this object was attached to + + + + + InventoryWearable Class, details on a clothing item or body part + + + + + Construct an InventoryWearable object + + A which becomes the + objects AssetUUID + + + + Construct an InventoryWearable object from a serialization stream + + + + + The , Skin, Shape, Skirt, Etc + + + + + InventoryAnimation Class, A bvh encoded object which animates an avatar + + + + + Construct an InventoryAnimation object + + A which becomes the + objects AssetUUID + + + + Construct an InventoryAnimation object from a serialization stream + + + + + InventoryGesture Class, details on a series of animations, sounds, and actions + + + + + Construct an InventoryGesture object + + A which becomes the + objects AssetUUID + + + + Construct an InventoryGesture object from a serialization stream + + + + + A folder contains s and has certain attributes specific + to itself + + + + + Constructor + + UUID of the folder + + + + Construct an InventoryFolder object from a serialization stream + + + + The Preferred for a folder. + + + The Version of this folder + + + Number of child items this folder contains. + + + + + + + + + + Get Serilization data for this InventoryFolder object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tools for dealing with agents inventory + + + + + Default constructor + + Reference to the GridClient object + + + + Callback for inventory item creation finishing + + Whether the request to create an inventory + item succeeded or not + Inventory item being created. If success is + false this will be null + + + + Callback for an inventory item being create from an uploaded asset + + true if inventory item creation was successful + + + + + + + + + + + + + + + + Reply received when uploading an inventory asset + + Has upload been successful + Error message if upload failed + Inventory asset UUID + New asset UUID + + + + Delegate that is invoked when script upload is completed + + Has upload succeded (note, there still might be compile errors) + Upload status message + Is compilation successful + If compilation failed, list of error messages, null on compilation success + Script inventory UUID + Script's new asset UUID + + + Used for converting shadow_id to asset_id + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + Partial mapping of AssetTypes to folder names + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + an inventory object sent by another avatar or primitive + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + + Get this agents Inventory data + + + + Raises the ItemReceived Event + A ItemReceivedEventArgs object containing + the data sent from the simulator + + + Raises the FolderUpdated Event + A FolderUpdatedEventArgs object containing + the data sent from the simulator + + + Raises the InventoryObjectOffered Event + A InventoryObjectOfferedEventArgs object containing + the data sent from the simulator + + + Raises the TaskItemReceived Event + A TaskItemReceivedEventArgs object containing + the data sent from the simulator + + + Raises the FindObjectByPath Event + A FindObjectByPathEventArgs object containing + the data sent from the simulator + + + Raises the TaskInventoryReply Event + A TaskInventoryReplyEventArgs object containing + the data sent from the simulator + + + Raises the SaveAssetToInventory Event + A SaveAssetToInventoryEventArgs object containing + the data sent from the simulator + + + Raises the ScriptRunningReply Event + A ScriptRunningReplyEventArgs object containing + the data sent from the simulator + + + + Fetch an inventory item from the dataserver + + The items + The item Owners + a integer representing the number of milliseconds to wait for results + An object on success, or null if no item was found + Items will also be sent to the event + + + + Request A single inventory item + + The items + The item Owners + + + + + Request inventory items + + Inventory items to request + Owners of the inventory items + + + + + Get contents of a folder + + The of the folder to search + The of the folders owner + true to retrieve folders + true to retrieve items + sort order to return results in + a integer representing the number of milliseconds to wait for results + A list of inventory items matching search criteria within folder + + InventoryFolder.DescendentCount will only be accurate if both folders and items are + requested + + + + Request the contents of an inventory folder + + The folder to search + The folder owners + true to return s contained in folder + true to return s containd in folder + the sort order to return items in + + + + + Request the contents of an inventory folder using HTTP capabilities + + The folder to search + The folder owners + true to return s contained in folder + true to return s containd in folder + the sort order to return items in + + + + + Returns the UUID of the folder (category) that defaults to + containing 'type'. The folder is not necessarily only for that + type + + This will return the root folder if one does not exist + + + The UUID of the desired folder if found, the UUID of the RootFolder + if not found, or UUID.Zero on failure + + + + Find an object in inventory using a specific path to search + + The folder to begin the search in + The object owners + A string path to search + milliseconds to wait for a reply + Found items or if + timeout occurs or item is not found + + + + Find inventory items by path + + The folder to begin the search in + The object owners + A string path to search, folders/objects separated by a '/' + Results are sent to the event + + + + Search inventory Store object for an item or folder + + The folder to begin the search in + An array which creates a path to search + Number of levels below baseFolder to conduct searches + if True, will stop searching after first match is found + A list of inventory items found + + + + Move an inventory item or folder to a new location + + The item or folder to move + The to move item or folder to + + + + Move an inventory item or folder to a new location and change its name + + The item or folder to move + The to move item or folder to + The name to change the item or folder to + + + + Move and rename a folder + + The source folders + The destination folders + The name to change the folder to + + + + Update folder properties + + + of the folder to update + Sets folder's parent to + Folder name + Folder type + + + + Move a folder + + The source folders + The destination folders + + + + Move multiple folders, the keys in the Dictionary parameter, + to a new parents, the value of that folder's key. + + A Dictionary containing the + of the source as the key, and the + of the destination as the value + + + + Move an inventory item to a new folder + + The of the source item to move + The of the destination folder + + + + Move and rename an inventory item + + The of the source item to move + The of the destination folder + The name to change the folder to + + + + Move multiple inventory items to new locations + + A Dictionary containing the + of the source item as the key, and the + of the destination folder as the value + + + + Remove descendants of a folder + + The of the folder + + + + Remove a single item from inventory + + The of the inventory item to remove + + + + Remove a folder from inventory + + The of the folder to remove + + + + Remove multiple items or folders from inventory + + A List containing the s of items to remove + A List containing the s of the folders to remove + + + + Empty the Lost and Found folder + + + + + Empty the Trash folder + + + + + + + + + + + + + + Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. + + + + + + + + + + + + + + + + + + + Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. + + + + + + + + + + + + Creates a new inventory folder + + ID of the folder to put this folder in + Name of the folder to create + The UUID of the newly created folder + + + + Creates a new inventory folder + + ID of the folder to put this folder in + Name of the folder to create + Sets this folder as the default folder + for new assets of the specified type. Use AssetType.Unknown + to create a normal folder, otherwise it will likely create a + duplicate of an existing folder type + The UUID of the newly created folder + If you specify a preferred type of AsseType.Folder + it will create a new root folder which may likely cause all sorts + of strange problems + + + + Create an inventory item and upload asset data + + Asset data + Inventory item name + Inventory item description + Asset type + Inventory type + Put newly created inventory in this folder + Delegate that will receive feedback on success or failure + + + + Create an inventory item and upload asset data + + Asset data + Inventory item name + Inventory item description + Asset type + Inventory type + Put newly created inventory in this folder + Permission of the newly created item + (EveryoneMask, GroupMask, and NextOwnerMask of Permissions struct are supported) + Delegate that will receive feedback on success or failure + + + + Creates inventory link to another inventory item or folder + + Put newly created link in folder with this UUID + Inventory item or folder + Method to call upon creation of the link + + + + Creates inventory link to another inventory item + + Put newly created link in folder with this UUID + Original inventory item + Method to call upon creation of the link + + + + Creates inventory link to another inventory folder + + Put newly created link in folder with this UUID + Original inventory folder + Method to call upon creation of the link + + + + Creates inventory link to another inventory item or folder + + Put newly created link in folder with this UUID + Original item's UUID + Name + Description + Asset Type + Inventory Type + Transaction UUID + Method to call upon creation of the link + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Request a copy of an asset embedded within a notecard + + Usually UUID.Zero for copying an asset from a notecard + UUID of the notecard to request an asset from + Target folder for asset to go to in your inventory + UUID of the embedded asset + callback to run when item is copied to inventory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Save changes to notecard embedded in object contents + + Encoded notecard asset data + Notecard UUID + Object's UUID + Called upon finish of the upload with status information + + + + Upload new gesture asset for an inventory gesture item + + Encoded gesture asset + Gesture inventory UUID + Callback whick will be called when upload is complete + + + + Update an existing script in an agents Inventory + + A byte[] array containing the encoded scripts contents + the itemID of the script + if true, sets the script content to run on the mono interpreter + + + + + + Update an existing script in an task Inventory + + A byte[] array containing the encoded scripts contents + the itemID of the script + UUID of the prim containting the script + if true, sets the script content to run on the mono interpreter + if true, sets the script to running + + + + + + Rez an object from inventory + + Simulator to place object in + Rotation of the object when rezzed + Vector of where to place object + InventoryItem object containing item details + + + + Rez an object from inventory + + Simulator to place object in + Rotation of the object when rezzed + Vector of where to place object + InventoryItem object containing item details + UUID of group to own the object + + + + Rez an object from inventory + + Simulator to place object in + Rotation of the object when rezzed + Vector of where to place object + InventoryItem object containing item details + UUID of group to own the object + User defined queryID to correlate replies + If set to true, the CreateSelected flag + will be set on the rezzed object + + + + DeRez an object from the simulator to the agents Objects folder in the agents Inventory + + The simulator Local ID of the object + If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed + + + + DeRez an object from the simulator and return to inventory + + The simulator Local ID of the object + The type of destination from the enum + The destination inventory folders -or- + if DeRezzing object to a tasks Inventory, the Tasks + The transaction ID for this request which + can be used to correlate this request with other packets + If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed + + + + Rez an item from inventory to its previous simulator location + + + + + + + + + + + + + Give an inventory item to another avatar + + The of the item to give + The name of the item + The type of the item from the enum + The of the recipient + true to generate a beameffect during transfer + + + + Give an inventory Folder with contents to another avatar + + The of the Folder to give + The name of the folder + The type of the item from the enum + The of the recipient + true to generate a beameffect during transfer + + + + Copy or move an from agent inventory to a task (primitive) inventory + + The target object + The item to copy or move from inventory + + + For items with copy permissions a copy of the item is placed in the tasks inventory, + for no-copy items the object is moved to the tasks inventory + + + + Retrieve a listing of the items contained in a task (Primitive) + + The tasks + The tasks simulator local ID + milliseconds to wait for reply from simulator + A list containing the inventory items inside the task or null + if a timeout occurs + This request blocks until the response from the simulator arrives + or timeoutMS is exceeded + + + + Request the contents of a tasks (primitives) inventory from the + current simulator + + The LocalID of the object + + + + + Request the contents of a tasks (primitives) inventory + + The simulator Local ID of the object + A reference to the simulator object that contains the object + + + + + Move an item from a tasks (Primitive) inventory to the specified folder in the avatars inventory + + LocalID of the object in the simulator + UUID of the task item to move + The ID of the destination folder in this agents inventory + Simulator Object + Raises the event + + + + Remove an item from an objects (Prim) Inventory + + LocalID of the object in the simulator + UUID of the task item to remove + Simulator Object + You can confirm the removal by comparing the tasks inventory serial before and after the + request with the request combined with + the event + + + + Copy an InventoryScript item from the Agents Inventory into a primitives task inventory + + An unsigned integer representing a primitive being simulated + An which represents a script object from the agents inventory + true to set the scripts running state to enabled + A Unique Transaction ID + + The following example shows the basic steps necessary to copy a script from the agents inventory into a tasks inventory + and assumes the script exists in the agents inventory. + + uint primID = 95899503; // Fake prim ID + UUID scriptID = UUID.Parse("92a7fe8a-e949-dd39-a8d8-1681d8673232"); // Fake Script UUID in Inventory + Client.Inventory.FolderContents(Client.Inventory.FindFolderForType(AssetType.LSLText), Client.Self.AgentID, + false, true, InventorySortOrder.ByName, 10000); + Client.Inventory.RezScript(primID, (InventoryItem)Client.Inventory.Store[scriptID]); + + + + + Request the running status of a script contained in a task (primitive) inventory + + The ID of the primitive containing the script + The ID of the script + The event can be used to obtain the results of the + request + + + + + Send a request to set the running state of a script contained in a task (primitive) inventory + + The ID of the primitive containing the script + The ID of the script + true to set the script running, false to stop a running script + To verify the change you can use the method combined + with the event + + + + Create a CRC from an InventoryItem + + The source InventoryItem + A uint representing the source InventoryItem as a CRC + + + + Reverses a cheesy XORing with a fixed UUID to convert a shadow_id to an asset_id + + Obfuscated shadow_id value + Deobfuscated asset_id value + + + + Does a cheesy XORing with a fixed UUID to convert an asset_id to a shadow_id + + asset_id value to obfuscate + Obfuscated shadow_id value + + + + Wrapper for creating a new object + + The type of item from the enum + The of the newly created object + An object with the type and id passed + + + + Parse the results of a RequestTaskInventory() response + + A string which contains the data from the task reply + A List containing the items contained within the tasks inventory + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + + UpdateCreateInventoryItem packets are received when a new inventory item + is created. This may occur when an object that's rezzed in world is + taken into inventory, when an item is created using the CreateInventoryItem + packet, or when an object is purchased + + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Set to true to accept offer, false to decline it + + + The folder to accept the inventory into, if null default folder for will be used + + + + Callback when an inventory object is accepted and received from a + task inventory. This is the callback in which you actually get + the ItemID, as in ObjectOfferedCallback it is null when received + from a task. + + + + + + + + + + + + + + + De-serialization constructor for the InventoryNode Class + + + + + De-serialization handler for the InventoryNode Class + + + + + + + + + + + + + + + + + + + + + For inventory folder nodes specifies weather the folder needs to be + refreshed from the server + + + + + Serialization handler for the InventoryNode Class + + + + + + + + + + + Singleton logging class for the entire library + + + + + Default constructor + + + + + Callback used for client apps to receive log messages from + the library + + Data being logged + The severity of the log entry from + + + log4net logging engine + + + Triggered whenever a message is logged. If this is left + null, log messages will go to the console + + + + Send a log message to the logging engine + + The log message + The severity of the log entry + + + + Send a log message to the logging engine + + The log message + The severity of the log entry + Instance of the client + + + + Send a log message to the logging engine + + The log message + The severity of the log entry + Exception that was raised + + + + Send a log message to the logging engine + + The log message + The severity of the log entry + Instance of the client + Exception that was raised + + + + If the library is compiled with DEBUG defined, an event will be + fired if an OnLogMessage handler is registered and the + message will be sent to the logging engine + + The message to log at the DEBUG level to the + current logging engine + + + + If the library is compiled with DEBUG defined and + GridClient.Settings.DEBUG is true, an event will be + fired if an OnLogMessage handler is registered and the + message will be sent to the logging engine + + The message to log at the DEBUG level to the + current logging engine + Instance of the client + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Login Request Parameters + + + + + Default constuctor, initializes sane default values + + + + + Instantiates new LoginParams object and fills in the values + + Instance of GridClient to read settings from + Login first name + Login last name + Password + Login channnel (application name) + Client version, should be application name + version number + + + + Instantiates new LoginParams object and fills in the values + + Instance of GridClient to read settings from + Login first name + Login last name + Password + Login channnel (application name) + Client version, should be application name + version number + URI of the login server + + + The URL of the Login Server + + + The number of milliseconds to wait before a login is considered + failed due to timeout + + + The request method + login_to_simulator is currently the only supported method + + + The Agents First name + + + The Agents Last name + + + A md5 hashed password + plaintext password will be automatically hashed + + + The agents starting location once logged in + Either "last", "home", or a string encoded URI + containing the simulator name and x/y/z coordinates e.g: uri:hooper&128&152&17 + + + A string containing the client software channel information + Second Life Release + + + The client software version information + The official viewer uses: Second Life Release n.n.n.n + where n is replaced with the current version of the viewer + + + A string containing the platform information the agent is running on + + + A string hash of the network cards Mac Address + + + Unknown or deprecated + + + A string hash of the first disk drives ID used to identify this clients uniqueness + + + A string containing the viewers Software, this is not directly sent to the login server but + instead is used to generate the Version string + + + A string representing the software creator. This is not directly sent to the login server but + is used by the library to generate the Version information + + + If true, this agent agrees to the Terms of Service of the grid its connecting to + + + Unknown + + + An array of string sent to the login server to enable various options + + + A randomly generated ID to distinguish between login attempts. This value is only used + internally in the library and is never sent over the wire + + + + The decoded data returned from the login server after a successful login + + + + true, false, indeterminate + + + Login message of the day + + + M or PG, also agent_region_access and agent_access_max + + + + Parse LLSD Login Reply Data + + An + contaning the login response data + XML-RPC logins do not require this as XML-RPC.NET + automatically populates the struct properly using attributes + + + + Login Routines + + + NetworkManager is responsible for managing the network layer of + OpenMetaverse. It tracks all the server connections, serializes + outgoing traffic and deserializes incoming traffic, and provides + instances of delegates for network-related events. + + + + + Default constructor + + Reference to the GridClient object + + + + Explains why a simulator or the grid disconnected from us + + + + The client requested the logout or simulator disconnect + + + The server notified us that it is disconnecting + + + Either a socket was closed or network traffic timed out + + + The last active simulator shut down + + + + Holds a simulator reference and a decoded packet, these structs are put in + the packet inbox for event handling + + + + Reference to the simulator that this packet came from + + + Packet that needs to be processed + + + + Holds a simulator reference and a serialized packet, these structs are put in + the packet outbox for sending + + + + Reference to the simulator this packet is destined for + + + Packet that needs to be sent + + + Sequence number of the wrapped packet + + + Number of times this packet has been resent + + + Environment.TickCount when this packet was last sent over the wire + + + Type of the packet + + + + + + + + + + + + + + + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + Seed CAPS URL returned from the login server + + + Maximum number of groups an agent can belong to, -1 for unlimited + + + XMPP server to connect to for Group chat and IM services + + + A list of packets obtained during the login process which + networkmanager will log but not process + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + All of the simulators we are currently connected to + + + Handlers for incoming capability events + + + Handlers for incoming packets + + + Incoming packets that are awaiting handling + + + Outgoing packets that are awaiting handling + + + Raised when the simulator sends us data containing + ... + + + Called when a reply is received from the login server, the + login sequence will block until this event returns + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Current state of logging in + + + Upon login failure, contains a short string key for the + type of login error that occurred + + + The raw XML-RPC reply from the login server, exactly as it + was received (minus the HTTP header) + + + During login this contains a descriptive version of + LoginStatusCode. After a successful login this will contain the + message of the day, and after a failed login a descriptive error + message will be returned + + + Unique identifier associated with our connections to + simulators + + + The simulator that the logged in avatar is currently + occupying + + + Shows whether the network layer is logged in to the + grid or not + + + Number of packets in the incoming queue + + + Number of packets in the outgoing queue + + + Raises the LoginProgress Event + A LoginProgressEventArgs object containing + the data sent from the simulator + + + + Generate sane default values for a login request + + Account first name + Account last name + Account password + Client application name + Client application version + A populated struct containing + sane defaults + + + + Simplified login that takes the most common and required fields + + Account first name + Account last name + Account password + Client application name + Client application version + Whether the login was successful or not. On failure the + LoginErrorKey string will contain the error code and LoginMessage + will contain a description of the error + + + + Simplified login that takes the most common fields along with a + starting location URI, and can accept an MD5 string instead of a + plaintext password + + Account first name + Account last name + Account password or MD5 hash of the password + such as $1$1682a1e45e9f957dcdf0bb56eb43319c + Client application name + Starting location URI that can be built with + StartLocation() + Client application version + Whether the login was successful or not. On failure the + LoginErrorKey string will contain the error code and LoginMessage + will contain a description of the error + + + + Login that takes a struct of all the values that will be passed to + the login server + + The values that will be passed to the login + server, all fields must be set even if they are String.Empty + Whether the login was successful or not. On failure the + LoginErrorKey string will contain the error code and LoginMessage + will contain a description of the error + + + + Build a start location URI for passing to the Login function + + Name of the simulator to start in + X coordinate to start at + Y coordinate to start at + Z coordinate to start at + String with a URI that can be used to login to a specified + location + + + + LoginParams and the initial login XmlRpcRequest were made on a remote machine. + This method now initializes libomv with the results. + + + + + Handles response from XML-RPC login replies + + + + + Handles response from XML-RPC login replies with already parsed LoginResponseData + + + + + Handle response from LLSD login replies + + + + + + + + + + + Get current OS + + Either "Win" or "Linux" + + + + Get clients default Mac Address + + A string containing the first found Mac Address + + + Raises the PacketSent Event + A PacketSentEventArgs object containing + the data sent from the simulator + + + Raises the LoggedOut Event + A LoggedOutEventArgs object containing + the data sent from the simulator + + + Raises the SimConnecting Event + A SimConnectingEventArgs object containing + the data sent from the simulator + + + Raises the SimConnected Event + A SimConnectedEventArgs object containing + the data sent from the simulator + + + Raises the SimDisconnected Event + A SimDisconnectedEventArgs object containing + the data sent from the simulator + + + Raises the Disconnected Event + A DisconnectedEventArgs object containing + the data sent from the simulator + + + Raises the SimChanged Event + A SimChangedEventArgs object containing + the data sent from the simulator + + + Raises the EventQueueRunning Event + A EventQueueRunningEventArgs object containing + the data sent from the simulator + + + + Register an event handler for a packet. This is a low level event + interface and should only be used if you are doing something not + supported in the library + + Packet type to trigger events for + Callback to fire when a packet of this type + is received + + + + Register an event handler for a packet. This is a low level event + interface and should only be used if you are doing something not + supported in the library + + Packet type to trigger events for + Callback to fire when a packet of this type + is received + True if the callback should be ran + asynchronously. Only set this to false (synchronous for callbacks + that will always complete quickly) + If any callback for a packet type is marked as + asynchronous, all callbacks for that packet type will be fired + asynchronously + + + + Unregister an event handler for a packet. This is a low level event + interface and should only be used if you are doing something not + supported in the library + + Packet type this callback is registered with + Callback to stop firing events for + + + + Register a CAPS event handler. This is a low level event interface + and should only be used if you are doing something not supported in + the library + + Name of the CAPS event to register a handler for + Callback to fire when a CAPS event is received + + + + Unregister a CAPS event handler. This is a low level event interface + and should only be used if you are doing something not supported in + the library + + Name of the CAPS event this callback is + registered with + Callback to stop firing events for + + + + Send a packet to the simulator the avatar is currently occupying + + Packet to send + + + + Send a packet to a specified simulator + + Packet to send + Simulator to send the packet to + + + + Connect to a simulator + + IP address to connect to + Port to connect to + Handle for this simulator, to identify its + location in the grid + Whether to set CurrentSim to this new + connection, use this if the avatar is moving in to this simulator + URL of the capabilities server to use for + this sim connection + A Simulator object on success, otherwise null + + + + Connect to a simulator + + IP address and port to connect to + Handle for this simulator, to identify its + location in the grid + Whether to set CurrentSim to this new + connection, use this if the avatar is moving in to this simulator + URL of the capabilities server to use for + this sim connection + A Simulator object on success, otherwise null + + + + Initiate a blocking logout request. This will return when the logout + handshake has completed or when Settings.LOGOUT_TIMEOUT + has expired and the network layer is manually shut down + + + + + Initiate the logout process. Check if logout succeeded with the + OnLogoutReply event, and if this does not fire the + Shutdown() function needs to be manually called + + + + + Close a connection to the given simulator + + + + + + + + + Shutdown will disconnect all the sims except for the current sim + first, and then kill the connection to CurrentSim. This should only + be called if the logout process times out on RequestLogout + Type of shutdown + + + + Shutdown will disconnect all the sims except for the current sim + first, and then kill the connection to CurrentSim. This should only + be called if the logout process times out on RequestLogout + Type of shutdown + Shutdown message + + + + Searches through the list of currently connected simulators to find + one attached to the given IPEndPoint + + IPEndPoint of the Simulator to search for + A Simulator reference on success, otherwise null + + + + Fire an event when an event queue connects for capabilities + + Simulator the event queue is attached to + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + + A Name Value pair with additional settings, used in the protocol + primarily to transmit avatar names and active group in object packets + + + + + Constructor that takes all the fields as parameters + + + + + + + + + + + + + + + Constructor that takes a single line from a NameValue field + + + + + + Type of the value + + + Unknown + + + String value + + + + + + + + + + + + + + + + + + + Deprecated + + + String value, but designated as an asset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No report + + + Unknown report type + + + Bug report + + + Complaint report + + + Customer service report + + + + Bitflag field for ObjectUpdateCompressed data blocks, describing + which options are present for each object + + + + Unknown + + + Whether the object has a TreeSpecies + + + Whether the object has floating text ala llSetText + + + Whether the object has an active particle system + + + Whether the object has sound attached to it + + + Whether the object is attached to a root object or not + + + Whether the object has texture animation settings + + + Whether the object has an angular velocity + + + Whether the object has a name value pairs string + + + Whether the object has a Media URL set + + + + Specific Flags for MultipleObjectUpdate requests + + + + None + + + Change position of prims + + + Change rotation of prims + + + Change size of prims + + + Perform operation on link set + + + Scale prims uniformly, same as selecing ctrl+shift in the + viewer. Used in conjunction with Scale + + + + Special values in PayPriceReply. If the price is not one of these + literal value of the price should be use + + + + + Indicates that this pay option should be hidden + + + + + Indicates that this pay option should have the default value + + + + + Contains the variables sent in an object update packet for objects. + Used to track position and movement of prims and avatars + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Handles all network traffic related to prims and avatar positions and + movement. + + + + + Construct a new instance of the ObjectManager class + + A reference to the instance + + + + Callback for getting object media data via CAP + + Indicates if the operation was succesfull + Object media version string + Array indexed on prim face of media entry data + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + Reference to the GridClient object + + + Does periodic dead reckoning calculation to convert + velocity and acceleration to new positions for objects + + + Raised when the simulator sends us data containing + A , Foliage or Attachment + + + + + Raised when the simulator sends us data containing + additional information + + + + + Raised when the simulator sends us data containing + Primitive.ObjectProperties for an object we are currently tracking + + + Raised when the simulator sends us data containing + additional and details + + + + Raised when the simulator sends us data containing + updated information for an + + + Raised when the simulator sends us data containing + and movement changes + + + Raised when the simulator sends us data containing + updates to an Objects DataBlock + + + Raised when the simulator informs us an + or is no longer within view + + + Raised when the simulator sends us data containing + updated sit information for our + + + Raised when the simulator sends us data containing + purchase price information for a + + + Raised when the simulator sends us data containing + additional information + + + + + Raises the ObjectProperties Event + A ObjectPropertiesEventArgs object containing + the data sent from the simulator + + + Raises the ObjectPropertiesUpdated Event + A ObjectPropertiesUpdatedEventArgs object containing + the data sent from the simulator + + + Raises the ObjectPropertiesFamily Event + A ObjectPropertiesFamilyEventArgs object containing + the data sent from the simulator + + + Raises the AvatarUpdate Event + A AvatarUpdateEventArgs object containing + the data sent from the simulator + + + Raises the ObjectDataBlockUpdate Event + A ObjectDataBlockUpdateEventArgs object containing + the data sent from the simulator + + + Raises the KillObject Event + A KillObjectEventArgs object containing + the data sent from the simulator + + + Raises the AvatarSitChanged Event + A AvatarSitChangedEventArgs object containing + the data sent from the simulator + + + Raises the PayPriceReply Event + A PayPriceReplyEventArgs object containing + the data sent from the simulator + + + Raises the PhysicsProperties Event + A PhysicsPropertiesEventArgs object containing + the data sent from the simulator + + + + Request information for a single object from a + you are currently connected to + + The the object is located + The Local ID of the object + + + + Request information for multiple objects contained in + the same simulator + + The the objects are located + An array containing the Local IDs of the objects + + + + Attempt to purchase an original object, a copy, or the contents of + an object + + The the object is located + The Local ID of the object + Whether the original, a copy, or the object + contents are on sale. This is used for verification, if the this + sale type is not valid for the object the purchase will fail + Price of the object. This is used for + verification, if it does not match the actual price the purchase + will fail + Group ID that will be associated with the new + purchase + Inventory folder UUID where the object or objects + purchased should be placed + + + BuyObject(Client.Network.CurrentSim, 500, SaleType.Copy, + 100, UUID.Zero, Client.Self.InventoryRootFolderUUID); + + + + + + Request prices that should be displayed in pay dialog. This will triggger the simulator + to send us back a PayPriceReply which can be handled by OnPayPriceReply event + + The the object is located + The ID of the object + The result is raised in the event + + + + Select a single object. This will cause the to send us + an which will raise the event + + The the object is located + The Local ID of the object + + + + + Select a single object. This will cause the to send us + an which will raise the event + + The the object is located + The Local ID of the object + if true, a call to is + made immediately following the request + + + + + Select multiple objects. This will cause the to send us + an which will raise the event + + The the objects are located + An array containing the Local IDs of the objects + Should objects be deselected immediately after selection + + + + + Select multiple objects. This will cause the to send us + an which will raise the event + + The the objects are located + An array containing the Local IDs of the objects + + + + + Update the properties of an object + + The the object is located + The Local ID of the object + true to turn the objects physical property on + true to turn the objects temporary property on + true to turn the objects phantom property on + true to turn the objects cast shadows property on + + + + Update the properties of an object + + The the object is located + The Local ID of the object + true to turn the objects physical property on + true to turn the objects temporary property on + true to turn the objects phantom property on + true to turn the objects cast shadows property on + Type of the represetnation prim will have in the physics engine + Density - normal value 1000 + Friction - normal value 0.6 + Restitution - standard value 0.5 + Gravity multiplier - standar value 1.0 + + + + Sets the sale properties of a single object + + The the object is located + The Local ID of the object + One of the options from the enum + The price of the object + + + + Sets the sale properties of multiple objects + + The the objects are located + An array containing the Local IDs of the objects + One of the options from the enum + The price of the object + + + + Deselect a single object + + The the object is located + The Local ID of the object + + + + Deselect multiple objects. + + The the objects are located + An array containing the Local IDs of the objects + + + + Perform a click action on an object + + The the object is located + The Local ID of the object + + + + Perform a click action (Grab) on a single object + + The the object is located + The Local ID of the object + The texture coordinates to touch + The surface coordinates to touch + The face of the position to touch + The region coordinates of the position to touch + The surface normal of the position to touch (A normal is a vector perpindicular to the surface) + The surface binormal of the position to touch (A binormal is a vector tangen to the surface + pointing along the U direction of the tangent space + + + + Create (rez) a new prim object in a simulator + + A reference to the object to place the object in + Data describing the prim object to rez + Group ID that this prim will be set to, or UUID.Zero if you + do not want the object to be associated with a specific group + An approximation of the position at which to rez the prim + Scale vector to size this prim + Rotation quaternion to rotate this prim + Due to the way client prim rezzing is done on the server, + the requested position for an object is only close to where the prim + actually ends up. If you desire exact placement you'll need to + follow up by moving the object after it has been created. This + function will not set textures, light and flexible data, or other + extended primitive properties + + + + Create (rez) a new prim object in a simulator + + A reference to the object to place the object in + Data describing the prim object to rez + Group ID that this prim will be set to, or UUID.Zero if you + do not want the object to be associated with a specific group + An approximation of the position at which to rez the prim + Scale vector to size this prim + Rotation quaternion to rotate this prim + Specify the + Due to the way client prim rezzing is done on the server, + the requested position for an object is only close to where the prim + actually ends up. If you desire exact placement you'll need to + follow up by moving the object after it has been created. This + function will not set textures, light and flexible data, or other + extended primitive properties + + + + Rez a Linden tree + + A reference to the object where the object resides + The size of the tree + The rotation of the tree + The position of the tree + The Type of tree + The of the group to set the tree to, + or UUID.Zero if no group is to be set + true to use the "new" Linden trees, false to use the old + + + + Rez grass and ground cover + + A reference to the object where the object resides + The size of the grass + The rotation of the grass + The position of the grass + The type of grass from the enum + The of the group to set the tree to, + or UUID.Zero if no group is to be set + + + + Set the textures to apply to the faces of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The texture data to apply + + + + Set the textures to apply to the faces of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The texture data to apply + A media URL (not used) + + + + Set the Light data on an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A object containing the data to set + + + + Set the flexible data on an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A object containing the data to set + + + + Set the sculptie texture and data on an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A object containing the data to set + + + + Unset additional primitive parameters on an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The extra parameters to set + + + + Link multiple prims into a linkset + + A reference to the object where the objects reside + An array which contains the IDs of the objects to link + The last object in the array will be the root object of the linkset TODO: Is this true? + + + + Delink/Unlink multiple prims from a linkset + + A reference to the object where the objects reside + An array which contains the IDs of the objects to delink + + + + Change the rotation of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new rotation of the object + + + + Set the name of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A string containing the new name of the object + + + + Set the name of multiple objects + + A reference to the object where the objects reside + An array which contains the IDs of the objects to change the name of + An array which contains the new names of the objects + + + + Set the description of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A string containing the new description of the object + + + + Set the descriptions of multiple objects + + A reference to the object where the objects reside + An array which contains the IDs of the objects to change the description of + An array which contains the new descriptions of the objects + + + + Attach an object to this avatar + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The point on the avatar the object will be attached + The rotation of the attached object + + + + Drop an attached object from this avatar + + A reference to the + object where the objects reside. This will always be the simulator the avatar is currently in + + The object's ID which is local to the simulator the object is in + + + + Detach an object from yourself + + A reference to the + object where the objects reside + This will always be the simulator the avatar is currently in + + An array which contains the IDs of the objects to detach + + + + Change the position of an object, Will change position of entire linkset + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new position of the object + + + + Change the position of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new position of the object + if true, will change position of (this) child prim only, not entire linkset + + + + Change the Scale (size) of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new scale of the object + If true, will change scale of this prim only, not entire linkset + True to resize prims uniformly + + + + Change the Rotation of an object that is either a child or a whole linkset + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new scale of the object + If true, will change rotation of this prim only, not entire linkset + + + + Send a Multiple Object Update packet to change the size, scale or rotation of a primitive + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new rotation, size, or position of the target object + The flags from the Enum + + + + Deed an object (prim) to a group, Object must be shared with group which + can be accomplished with SetPermissions() + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The of the group to deed the object to + + + + Deed multiple objects (prims) to a group, Objects must be shared with group which + can be accomplished with SetPermissions() + + A reference to the object where the object resides + An array which contains the IDs of the objects to deed + The of the group to deed the object to + + + + Set the permissions on multiple objects + + A reference to the object where the objects reside + An array which contains the IDs of the objects to set the permissions on + The new Who mask to set + Which permission to modify + The new state of permission + + + + Request additional properties for an object + + A reference to the object where the object resides + + + + + + Request additional properties for an object + + A reference to the object where the object resides + Absolute UUID of the object + Whether to require server acknowledgement of this request + + + + Set the ownership of a list of objects to the specified group + + A reference to the object where the objects reside + An array which contains the IDs of the objects to set the group id on + The Groups ID + + + + Update current URL of the previously set prim media + + UUID of the prim + Set current URL to this + Prim face number + Simulator in which prim is located + + + + Set object media + + UUID of the prim + Array the length of prims number of faces. Null on face indexes where there is + no media, on faces which contain the media + Simulatior in which prim is located + + + + Retrieve information about object media + + UUID of the primitive + Simulator where prim is located + Call this callback when done + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + + A terse object update, used when a transformation matrix or + velocity/acceleration for an object changes but nothing else + (scale/position/rotation/acceleration/velocity) + + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + + + + + + + + + + + + Setup construction data for a basic primitive shape + + Primitive shape to construct + Construction data that can be plugged into a + + + + + + + + + + + + + + + + + + + + + + + + Set the Shape data of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + Data describing the prim shape + + + + Set the Material data of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new material of the object + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides data for the event + + The event occurs when the simulator sends + an containing a Primitive, Foliage or Attachment data + Note 1: The event will not be raised when the object is an Avatar + Note 2: It is possible for the to be + raised twice for the same object if for example the primitive moved to a new simulator, then returned to the current simulator or + if an Avatar crosses the border into a new simulator and returns to the current simulator + + + The following code example uses the , , and + properties to display new Primitives and Attachments on the window. + + // Subscribe to the event that gives us prim and foliage information + Client.Objects.ObjectUpdate += Objects_ObjectUpdate; + private void Objects_ObjectUpdate(object sender, PrimEventArgs e) + { + Console.WriteLine("Primitive {0} {1} in {2} is an attachment {3}", e.Prim.ID, e.Prim.LocalID, e.Simulator.Name, e.IsAttachment); + } + + + + + + + + Construct a new instance of the PrimEventArgs class + + The simulator the object originated from + The Primitive + The simulator time dilation + The prim was not in the dictionary before this update + true if the primitive represents an attachment to an agent + + + Get the simulator the originated from + + + Get the details + + + true if the did not exist in the dictionary before this update (always true if object tracking has been disabled) + + + true if the is attached to an + + + Get the simulator Time Dilation + + + Provides data for the event + + The event occurs when the simulator sends + an containing Avatar data + Note 1: The event will not be raised when the object is an Avatar + Note 2: It is possible for the to be + raised twice for the same avatar if for example the avatar moved to a new simulator, then returned to the current simulator + + + The following code example uses the property to make a request for the top picks + using the method in the class to display the names + of our own agents picks listings on the window. + + // subscribe to the AvatarUpdate event to get our information + Client.Objects.AvatarUpdate += Objects_AvatarUpdate; + Client.Avatars.AvatarPicksReply += Avatars_AvatarPicksReply; + private void Objects_AvatarUpdate(object sender, AvatarUpdateEventArgs e) + { + // we only want our own data + if (e.Avatar.LocalID == Client.Self.LocalID) + { + // Unsubscribe from the avatar update event to prevent a loop + // where we continually request the picks every time we get an update for ourselves + Client.Objects.AvatarUpdate -= Objects_AvatarUpdate; + // make the top picks request through AvatarManager + Client.Avatars.RequestAvatarPicks(e.Avatar.ID); + } + } + private void Avatars_AvatarPicksReply(object sender, AvatarPicksReplyEventArgs e) + { + // we'll unsubscribe from the AvatarPicksReply event since we now have the data + // we were looking for + Client.Avatars.AvatarPicksReply -= Avatars_AvatarPicksReply; + // loop through the dictionary and extract the names of the top picks from our profile + foreach (var pickName in e.Picks.Values) + { + Console.WriteLine(pickName); + } + } + + + + + + + Construct a new instance of the AvatarUpdateEventArgs class + + The simulator the packet originated from + The data + The simulator time dilation + The avatar was not in the dictionary before this update + + + Get the simulator the object originated from + + + Get the data + + + Get the simulator time dilation + + + true if the did not exist in the dictionary before this update (always true if avatar tracking has been disabled) + + + Provides additional primitive data for the event + + The event occurs when the simulator sends + an containing additional details for a Primitive, Foliage data or Attachment data + The event is also raised when a request is + made. + + + The following code example uses the , and + + properties to display new attachments and send a request for additional properties containing the name of the + attachment then display it on the window. + + // Subscribe to the event that provides additional primitive details + Client.Objects.ObjectProperties += Objects_ObjectProperties; + // handle the properties data that arrives + private void Objects_ObjectProperties(object sender, ObjectPropertiesEventArgs e) + { + Console.WriteLine("Primitive Properties: {0} Name is {1}", e.Properties.ObjectID, e.Properties.Name); + } + + + + + Construct a new instance of the ObjectPropertiesEventArgs class + + The simulator the object is located + The primitive Properties + + + Get the simulator the object is located + + + Get the primitive properties + + + Provides additional primitive data for the event + + The event occurs when the simulator sends + an containing additional details for a Primitive or Foliage data that is currently + being tracked in the dictionary + The event is also raised when a request is + made and is enabled + + + + + Construct a new instance of the ObjectPropertiesUpdatedEvenrArgs class + + The simulator the object is located + The Primitive + The primitive Properties + + + Get the simulator the object is located + + + Get the primitive details + + + Get the primitive properties + + + Provides additional primitive data, permissions and sale info for the event + + The event occurs when the simulator sends + an containing additional details for a Primitive, Foliage data or Attachment. This includes + Permissions, Sale info, and other basic details on an object + The event is also raised when a request is + made, the viewer equivalent is hovering the mouse cursor over an object + + + + Get the simulator the object is located + + + + + + + + + + + Provides primitive data containing updated location, velocity, rotation, textures for the event + + The event occurs when the simulator sends updated location, velocity, rotation, etc + + + + Get the simulator the object is located + + + Get the primitive details + + + + + + + + + + + + + + + Get the simulator the object is located + + + Get the primitive details + + + + + + + + + + + + + + + + + + + Provides notification when an Avatar, Object or Attachment is DeRezzed or moves out of the avatars view for the + event + + + Get the simulator the object is located + + + The LocalID of the object + + + + Provides updates sit position data + + + + Get the simulator the object is located + + + + + + + + + + + + + + + + + + + Get the simulator the object is located + + + + + + + + + + + + + + + + Indicates if the operation was successful + + + + + Media version string + + + + + Array of media entries indexed by face number + + + + + Set when simulator sends us infomation on primitive's physical properties + + + + + Constructor + + Simulator where the message originated + Updated physical properties + + + Simulator where the message originated + + + Updated physical properties + + + + Create an allocated UDP packet buffer for receiving a packet + + + + + Create an allocated UDP packet buffer for sending a packet + + EndPoint of the remote host + + + + Create an allocated UDP packet buffer for sending a packet + + EndPoint of the remote host + Size of the buffer to allocate for packet data + + + Size of the byte array used to store raw packet data + + + Raw packet data buffer + + + Length of the data to transmit + + + EndPoint of the remote host + + + + Object pool for packet buffers. This is used to allocate memory for all + incoming and outgoing packets, and zerocoding buffers for those packets + + + + + Initialize the object pool in client mode + + Server to connect to + + + + + + + + Initialize the object pool in server mode + + + + + + + + + Returns a packet buffer with EndPoint set if the buffer is in + client mode, or with EndPoint set to null in server mode + + Initialized UDPPacketBuffer object + + + + Default constructor + + + + + Check a packet buffer out of the pool + + A packet buffer object + + + + Returns an instance of the class that has been checked out of the Object Pool. + + + + + Checks the instance back into the object pool + + + + + Creates a new instance of the ObjectPoolBase class. Initialize MUST be called + after using this constructor. + + + + + Creates a new instance of the ObjectPool Base class. + + The object pool is composed of segments, which + are allocated whenever the size of the pool is exceeded. The number of items + in a segment should be large enough that allocating a new segmeng is a rare + thing. For example, on a server that will have 10k people logged in at once, + the receive buffer object pool should have segment sizes of at least 1000 + byte arrays per segment. + + The minimun number of segments that may exist. + Perform a full GC.Collect whenever a segment is allocated, and then again after allocation to compact the heap. + The frequency which segments are checked to see if they're eligible for cleanup. + + + + The total number of segments created. Intended to be used by the Unit Tests. + + + + + The number of items that are in a segment. Items in a segment + are all allocated at the same time, and are hopefully close to + each other in the managed heap. + + + + + The minimum number of segments. When segments are reclaimed, + this number of segments will always be left alone. These + segments are allocated at startup. + + + + + The age a segment must be before it's eligible for cleanup. + This is used to prevent thrash, and typical values are in + the 5 minute range. + + + + + The frequence which the cleanup thread runs. This is typically + expected to be in the 5 minute range. + + + + + Forces the segment cleanup algorithm to be run. This method is intended + primarly for use from the Unit Test libraries. + + + + + Responsible for allocate 1 instance of an object that will be stored in a segment. + + An instance of whatever objec the pool is pooling. + + + + Checks in an instance of T owned by the object pool. This method is only intended to be called + by the WrappedObject class. + + The segment from which the instance is checked out. + The instance of T to check back into the segment. + + + + Checks an instance of T from the pool. If the pool is not sufficient to + allow the checkout, a new segment is created. + + A WrappedObject around the instance of T. To check + the instance back into the segment, be sureto dispose the WrappedObject + when finished. + + + + + + + + + + + + + + + + + + + + The ObservableDictionary class is used for storing key/value pairs. It has methods for firing + events to subscribers when items are added, removed, or changed. + + Key + Value + + + + Initializes a new instance of the Class + with the specified key/value, has the default initial capacity. + + + + // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value. + public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(); + + + + + + Initializes a new instance of the Class + with the specified key/value, With its initial capacity specified. + + Initial size of dictionary + + + // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value, + // initially allocated room for 10 entries. + public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(10); + + + + + + A dictionary of callbacks to fire when specified action occurs + + + + Internal dictionary that this class wraps around. Do not + modify or enumerate the contents of this dictionary without locking + + + + Indexer for the dictionary + + The key + The value + + + + Gets the number of Key/Value pairs contained in the + + + + Register a callback to be fired when an action occurs + + The action + The callback to fire + + + + Unregister a callback + + The action + The callback to fire + + + + + + + + + + + + Try to get entry from the with specified key + + Key to use for lookup + Value returned + + if specified key exists, if not found + + + // find your avatar using the Simulator.ObjectsAvatars ObservableDictionary: + Avatar av; + if (Client.Network.CurrentSim.ObjectsAvatars.TryGetValue(Client.Self.AgentID, out av)) + Console.WriteLine("Found Avatar {0}", av.Name); + + + + + + + Finds the specified match. + + The match. + Matched value + + + // use a delegate to find a prim in the ObjectsPrimitives ObservableDictionary + // with the ID 95683496 + uint findID = 95683496; + Primitive findPrim = sim.ObjectsPrimitives.Find( + delegate(Primitive prim) { return prim.ID == findID; }); + + + + + Find All items in an + return matching items. + a containing found items. + + Find All prims within 20 meters and store them in a List + + int radius = 20; + List<Primitive> prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll( + delegate(Primitive prim) { + Vector3 pos = prim.Position; + return ((prim.ParentID == 0) && (pos != Vector3.Zero) && (Vector3.Distance(pos, location) < radius)); + } + ); + + + + Find All items in an + return matching keys. + a containing found keys. + + Find All keys which also exist in another dictionary + + List<UUID> matches = myDict.FindAll( + delegate(UUID id) { + return myOtherDict.ContainsKey(id); + } + ); + + + + Check if Key exists in Dictionary + Key to check for + + if found, otherwise + + + Check if Value exists in Dictionary + Value to check for + + if found, otherwise + + + + Adds the specified key to the dictionary, dictionary locking is not performed, + + The key + The value + + + + Removes the specified key, dictionary locking is not performed + + The key. + + if successful, otherwise + + + + Clear the contents of the dictionary + + + + + Enumerator for iterating dictionary entries + + + + + + + A custom decoder callback + + The key of the object + the data to decode + A string represending the fieldData + + + + Add a custom decoder callback + + The key of the field to decode + The custom decode handler + + + + Remove a custom decoder callback + + The key of the field to decode + The custom decode handler + + + + Creates a formatted string containing the values of a Packet + + The Packet + A formatted string of values of the nested items in the Packet object + + + + Decode an IMessage object into a beautifully formatted string + + The IMessage object + Recursion level (used for indenting) + A formatted string containing the names and values of the source object + + + + Type of return to use when returning objects from a parcel + + + + + + + + Return objects owned by parcel owner + + + Return objects set to group + + + Return objects not owned by parcel owner or set to group + + + Return a specific list of objects on parcel + + + Return objects that are marked for-sale + + + + Blacklist/Whitelist flags used in parcels Access List + + + + Agent is denied access + + + Agent is granted access + + + + The result of a request for parcel properties + + + + No matches were found for the request + + + Request matched a single parcel + + + Request matched multiple parcels + + + + Flags used in the ParcelAccessListRequest packet to specify whether + we want the access list (whitelist), ban list (blacklist), or both + + + + Request the access list + + + Request the ban list + + + Request both White and Black lists + + + + Sequence ID in ParcelPropertiesReply packets (sent when avatar + tries to cross a parcel border) + + + + Parcel is currently selected + + + Parcel restricted to a group the avatar is not a + member of + + + Avatar is banned from the parcel + + + Parcel is restricted to an access list that the + avatar is not on + + + Response to hovering over a parcel + + + + The tool to use when modifying terrain levels + + + + Level the terrain + + + Raise the terrain + + + Lower the terrain + + + Smooth the terrain + + + Add random noise to the terrain + + + Revert terrain to simulator default + + + + The tool size to use when changing terrain levels + + + + Small + + + Medium + + + Large + + + + Reasons agent is denied access to a parcel on the simulator + + + + Agent is not denied, access is granted + + + Agent is not a member of the group set for the parcel, or which owns the parcel + + + Agent is not on the parcels specific allow list + + + Agent is on the parcels ban list + + + Unknown + + + Agent is not age verified and parcel settings deny access to non age verified avatars + + + + Parcel overlay type. This is used primarily for highlighting and + coloring which is why it is a single integer instead of a set of + flags + + These values seem to be poorly thought out. The first three + bits represent a single value, not flags. For example Auction (0x05) is + not a combination of OwnedByOther (0x01) and ForSale(0x04). However, + the BorderWest and BorderSouth values are bit flags that get attached + to the value stored in the first three bits. Bits four, five, and six + are unused + + + Public land + + + Land is owned by another avatar + + + Land is owned by a group + + + Land is owned by the current avatar + + + Land is for sale + + + Land is being auctioned + + + Land is private + + + To the west of this area is a parcel border + + + To the south of this area is a parcel border + + + + Various parcel properties + + + + No flags set + + + Allow avatars to fly (a client-side only restriction) + + + Allow foreign scripts to run + + + This parcel is for sale + + + Allow avatars to create a landmark on this parcel + + + Allows all avatars to edit the terrain on this parcel + + + Avatars have health and can take damage on this parcel. + If set, avatars can be killed and sent home here + + + Foreign avatars can create objects here + + + All objects on this parcel can be purchased + + + Access is restricted to a group + + + Access is restricted to a whitelist + + + Ban blacklist is enabled + + + Unknown + + + List this parcel in the search directory + + + Allow personally owned parcels to be deeded to group + + + If Deeded, owner contributes required tier to group parcel is deeded to + + + Restrict sounds originating on this parcel to the + parcel boundaries + + + Objects on this parcel are sold when the land is + purchsaed + + + Allow this parcel to be published on the web + + + The information for this parcel is mature content + + + The media URL is an HTML page + + + The media URL is a raw HTML string + + + Restrict foreign object pushes + + + Ban all non identified/transacted avatars + + + Allow group-owned scripts to run + + + Allow object creation by group members or group + objects + + + Allow all objects to enter this parcel + + + Only allow group and owner objects to enter this parcel + + + Voice Enabled on this parcel + + + Use Estate Voice channel for Voice on this parcel + + + Deny Age Unverified Users + + + + Parcel ownership status + + + + Placeholder + + + Parcel is leased (owned) by an avatar or group + + + Parcel is in process of being leased (purchased) by an avatar or group + + + Parcel has been abandoned back to Governor Linden + + + + Category parcel is listed in under search + + + + No assigned category + + + Linden Infohub or public area + + + Adult themed area + + + Arts and Culture + + + Business + + + Educational + + + Gaming + + + Hangout or Club + + + Newcomer friendly + + + Parks and Nature + + + Residential + + + Shopping + + + Not Used? + + + Other + + + Not an actual category, only used for queries + + + + Type of teleport landing for a parcel + + + + Unset, simulator default + + + Specific landing point set for this parcel + + + No landing point set, direct teleports enabled for + this parcel + + + + Parcel Media Command used in ParcelMediaCommandMessage + + + + Stop the media stream and go back to the first frame + + + Pause the media stream (stop playing but stay on current frame) + + + Start the current media stream playing and stop when the end is reached + + + Start the current media stream playing, + loop to the beginning when the end is reached and continue to play + + + Specifies the texture to replace with video + If passing the key of a texture, it must be explicitly typecast as a key, + not just passed within double quotes. + + + Specifies the movie URL (254 characters max) + + + Specifies the time index at which to begin playing + + + Specifies a single agent to apply the media command to + + + Unloads the stream. While the stop command sets the texture to the first frame of the movie, + unload resets it to the real texture that the movie was replacing. + + + Turn on/off the auto align feature, similar to the auto align checkbox in the parcel media properties + (NOT to be confused with the "align" function in the textures view of the editor!) Takes TRUE or FALSE as parameter. + + + Allows a Web page or image to be placed on a prim (1.19.1 RC0 and later only). + Use "text/html" for HTML. + + + Resizes a Web page to fit on x, y pixels (1.19.1 RC0 and later only). + This might still not be working + + + Sets a description for the media being displayed (1.19.1 RC0 and later only). + + + + Some information about a parcel of land returned from a DirectoryManager search + + + + Global Key of record + + + Parcel Owners + + + Name field of parcel, limited to 128 characters + + + Description field of parcel, limited to 256 characters + + + Total Square meters of parcel + + + Total area billable as Tier, for group owned land this will be 10% less than ActualArea + + + True of parcel is in Mature simulator + + + Grid global X position of parcel + + + Grid global Y position of parcel + + + Grid global Z position of parcel (not used) + + + Name of simulator parcel is located in + + + Texture of parcels display picture + + + Float representing calculated traffic based on time spent on parcel by avatars + + + Sale price of parcel (not used) + + + Auction ID of parcel + + + + Parcel Media Information + + + + A byte, if 0x1 viewer should auto scale media to fit object + + + A boolean, if true the viewer should loop the media + + + The Asset UUID of the Texture which when applied to a + primitive will display the media + + + A URL which points to any Quicktime supported media type + + + A description of the media + + + An Integer which represents the height of the media + + + An integer which represents the width of the media + + + A string which contains the mime type of the media + + + + Parcel of land, a portion of virtual real estate in a simulator + + + + + Defalt constructor + + Local ID of this parcel + + + The total number of contiguous 4x4 meter blocks your agent owns within this parcel + + + The total number of contiguous 4x4 meter blocks contained in this parcel owned by a group or agent other than your own + + + Deprecated, Value appears to always be 0 + + + Simulator-local ID of this parcel + + + UUID of the owner of this parcel + + + Whether the land is deeded to a group or not + + + + + + + Date land was claimed + + + Appears to always be zero + + + This field is no longer used + + + Minimum corner of the axis-aligned bounding box for this + parcel + + + Maximum corner of the axis-aligned bounding box for this + parcel + + + Bitmap describing land layout in 4x4m squares across the + entire region + + + Total parcel land area + + + + + + + Maximum primitives across the entire simulator owned by the same agent or group that owns this parcel that can be used + + + Total primitives across the entire simulator calculated by combining the allowed prim counts for each parcel + owned by the agent or group that owns this parcel + + + Maximum number of primitives this parcel supports + + + Total number of primitives on this parcel + + + For group-owned parcels this indicates the total number of prims deeded to the group, + for parcels owned by an individual this inicates the number of prims owned by the individual + + + Total number of primitives owned by the parcel group on + this parcel, or for parcels owned by an individual with a group set the + total number of prims set to that group. + + + Total number of prims owned by other avatars that are not set to group, or not the parcel owner + + + A bonus multiplier which allows parcel prim counts to go over times this amount, this does not affect + the max prims per simulator. e.g: 117 prim parcel limit x 1.5 bonus = 175 allowed + + + Autoreturn value in minutes for others' objects + + + + + + + Sale price of the parcel, only useful if ForSale is set + The SalePrice will remain the same after an ownership + transfer (sale), so it can be used to see the purchase price after + a sale if the new owner has not changed it + + + Parcel Name + + + Parcel Description + + + URL For Music Stream + + + + + + + Price for a temporary pass + + + How long is pass valid for + + + + + + + Key of authorized buyer + + + Key of parcel snapshot + + + The landing point location + + + The landing point LookAt + + + The type of landing enforced from the enum + + + + + + + + + + + + + + + Access list of who is whitelisted on this + parcel + + + Access list of who is blacklisted on this + parcel + + + TRUE of region denies access to age unverified users + + + true to obscure (hide) media url + + + true to obscure (hide) music url + + + A struct containing media details + + + + Displays a parcel object in string format + + string containing key=value pairs of a parcel object + + + + Update the simulator with any local changes to this Parcel object + + Simulator to send updates to + Whether we want the simulator to confirm + the update with a reply packet or not + + + + Set Autoreturn time + + Simulator to send the update to + + + + Parcel (subdivided simulator lots) subsystem + + + + + Default constructor + + A reference to the GridClient object + + + + Parcel Accesslist + + + + Agents + + + + + + + Flags for specific entry in white/black lists + + + + Owners of primitives on parcel + + + + Prim Owners + + + True of owner is group + + + Total count of prims owned by OwnerID + + + true of OwnerID is currently online and is not a group + + + The date of the most recent prim left by OwnerID + + + + Called once parcel resource usage information has been collected + + Indicates if operation was successfull + Parcel resource usage information + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + Raised when the simulator responds to a request + + + Raised when the simulator responds to a request + + + Raised when the simulator responds to a request + + + Raised when the simulator responds to a request + + + Raised when the simulator responds to a request + + + Raised when the simulator responds to a request + + + Raised when the simulator responds to a request + + + Raised when the simulator responds to a Parcel Update request + + + Raised when the parcel your agent is located sends a ParcelMediaCommand + + + Raises the ParcelDwellReply event + A ParcelDwellReplyEventArgs object containing the + data returned from the simulator + + + Raises the ParcelInfoReply event + A ParcelInfoReplyEventArgs object containing the + data returned from the simulator + + + Raises the ParcelProperties event + A ParcelPropertiesEventArgs object containing the + data returned from the simulator + + + Raises the ParcelAccessListReply event + A ParcelAccessListReplyEventArgs object containing the + data returned from the simulator + + + Raises the ParcelObjectOwnersReply event + A ParcelObjectOwnersReplyEventArgs object containing the + data returned from the simulator + + + Raises the SimParcelsDownloaded event + A SimParcelsDownloadedEventArgs object containing the + data returned from the simulator + + + Raises the ForceSelectObjectsReply event + A ForceSelectObjectsReplyEventArgs object containing the + data returned from the simulator + + + Raises the ParcelMediaUpdateReply event + A ParcelMediaUpdateReplyEventArgs object containing the + data returned from the simulator + + + Raises the ParcelMediaCommand event + A ParcelMediaCommandEventArgs object containing the + data returned from the simulator + + + + Request basic information for a single parcel + + Simulator-local ID of the parcel + + + + Request properties of a single parcel + + Simulator containing the parcel + Simulator-local ID of the parcel + An arbitrary integer that will be returned + with the ParcelProperties reply, useful for distinguishing between + multiple simultaneous requests + + + + Request the access list for a single parcel + + Simulator containing the parcel + Simulator-local ID of the parcel + An arbitrary integer that will be returned + with the ParcelAccessList reply, useful for distinguishing between + multiple simultaneous requests + + + + + + Request properties of parcels using a bounding box selection + + Simulator containing the parcel + Northern boundary of the parcel selection + Eastern boundary of the parcel selection + Southern boundary of the parcel selection + Western boundary of the parcel selection + An arbitrary integer that will be returned + with the ParcelProperties reply, useful for distinguishing between + different types of parcel property requests + A boolean that is returned with the + ParcelProperties reply, useful for snapping focus to a single + parcel + + + + Request all simulator parcel properties (used for populating the Simulator.Parcels + dictionary) + + Simulator to request parcels from (must be connected) + + + + Request all simulator parcel properties (used for populating the Simulator.Parcels + dictionary) + + Simulator to request parcels from (must be connected) + If TRUE, will force a full refresh + Number of milliseconds to pause in between each request + + + + Request the dwell value for a parcel + + Simulator containing the parcel + Simulator-local ID of the parcel + + + + Send a request to Purchase a parcel of land + + The Simulator the parcel is located in + The parcels region specific local ID + true if this parcel is being purchased by a group + The groups + true to remove tier contribution if purchase is successful + The parcels size + The purchase price of the parcel + + + + + + Reclaim a parcel of land + + The simulator the parcel is in + The parcels region specific local ID + + + + Deed a parcel to a group + + The simulator the parcel is in + The parcels region specific local ID + The groups + + + + Request prim owners of a parcel of land. + + Simulator parcel is in + The parcels region specific local ID + + + + Return objects from a parcel + + Simulator parcel is in + The parcels region specific local ID + the type of objects to return, + A list containing object owners s to return + + + + Subdivide (split) a parcel + + + + + + + + + + + + + + + Join two parcels of land creating a single parcel + + + + + + + + + + + + + + + Get a parcels LocalID + + Simulator parcel is in + Vector3 position in simulator (Z not used) + 0 on failure, or parcel LocalID on success. + A call to Parcels.RequestAllSimParcels is required to populate map and + dictionary. + + + + Terraform (raise, lower, etc) an area or whole parcel of land + + Simulator land area is in. + LocalID of parcel, or -1 if using bounding box + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + true on successful request sent. + Settings.STORE_LAND_PATCHES must be true, + Parcel information must be downloaded using RequestAllSimParcels() + + + + Terraform (raise, lower, etc) an area or whole parcel of land + + Simulator land area is in. + west border of area to modify + south border of area to modify + east border of area to modify + north border of area to modify + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + true on successful request sent. + Settings.STORE_LAND_PATCHES must be true, + Parcel information must be downloaded using RequestAllSimParcels() + + + + Terraform (raise, lower, etc) an area or whole parcel of land + + Simulator land area is in. + LocalID of parcel, or -1 if using bounding box + west border of area to modify + south border of area to modify + east border of area to modify + north border of area to modify + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + How many meters + or - to lower, 1 = 1 meter + true on successful request sent. + Settings.STORE_LAND_PATCHES must be true, + Parcel information must be downloaded using RequestAllSimParcels() + + + + Terraform (raise, lower, etc) an area or whole parcel of land + + Simulator land area is in. + LocalID of parcel, or -1 if using bounding box + west border of area to modify + south border of area to modify + east border of area to modify + north border of area to modify + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + How many meters + or - to lower, 1 = 1 meter + Height at which the terraform operation is acting at + + + + Sends a request to the simulator to return a list of objects owned by specific owners + + Simulator local ID of parcel + Owners, Others, Etc + List containing keys of avatars objects to select; + if List is null will return Objects of type selectType + Response data is returned in the event + + + + Eject and optionally ban a user from a parcel + + target key of avatar to eject + true to also ban target + + + + Freeze or unfreeze an avatar over your land + + target key to freeze + true to freeze, false to unfreeze + + + + Abandon a parcel of land + + Simulator parcel is in + Simulator local ID of parcel + + + + Requests the UUID of the parcel in a remote region at a specified location + + Location of the parcel in the remote region + Remote region handle + Remote region UUID + If successful UUID of the remote parcel, UUID.Zero otherwise + + + + Retrieves information on resources used by the parcel + + UUID of the parcel + Should per object resource usage be requested + Callback invoked when the request is complete + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event + + + Contains a parcels dwell data returned from the simulator in response to an + + + + Construct a new instance of the ParcelDwellReplyEventArgs class + + The global ID of the parcel + The simulator specific ID of the parcel + The calculated dwell for the parcel + + + Get the global ID of the parcel + + + Get the simulator specific ID of the parcel + + + Get the calculated dwell + + + Contains basic parcel information data returned from the + simulator in response to an request + + + + Construct a new instance of the ParcelInfoReplyEventArgs class + + The object containing basic parcel info + + + Get the object containing basic parcel info + + + Contains basic parcel information data returned from the simulator in response to an request + + + + Construct a new instance of the ParcelPropertiesEventArgs class + + The object containing the details + The object containing the details + The result of the request + The number of primitieves your agent is + currently selecting and or sitting on in this parcel + The user assigned ID used to correlate a request with + these results + TODO: + + + Get the simulator the parcel is located in + + + Get the object containing the details + If Result is NoData, this object will not contain valid data + + + Get the result of the request + + + Get the number of primitieves your agent is + currently selecting and or sitting on in this parcel + + + Get the user assigned ID used to correlate a request with + these results + + + TODO: + + + Contains blacklist and whitelist data returned from the simulator in response to an request + + + + Construct a new instance of the ParcelAccessListReplyEventArgs class + + The simulator the parcel is located in + The user assigned ID used to correlate a request with + these results + The simulator specific ID of the parcel + TODO: + The list containing the white/blacklisted agents for the parcel + + + Get the simulator the parcel is located in + + + Get the user assigned ID used to correlate a request with + these results + + + Get the simulator specific ID of the parcel + + + TODO: + + + Get the list containing the white/blacklisted agents for the parcel + + + Contains blacklist and whitelist data returned from the + simulator in response to an request + + + + Construct a new instance of the ParcelObjectOwnersReplyEventArgs class + + The simulator the parcel is located in + The list containing prim ownership counts + + + Get the simulator the parcel is located in + + + Get the list containing prim ownership counts + + + Contains the data returned when all parcel data has been retrieved from a simulator + + + + Construct a new instance of the SimParcelsDownloadedEventArgs class + + The simulator the parcel data was retrieved from + The dictionary containing the parcel data + The multidimensional array containing a x,y grid mapped + to each 64x64 parcel's LocalID. + + + Get the simulator the parcel data was retrieved from + + + A dictionary containing the parcel data where the key correlates to the ParcelMap entry + + + Get the multidimensional array containing a x,y grid mapped + to each 64x64 parcel's LocalID. + + + Contains the data returned when a request + + + + Construct a new instance of the ForceSelectObjectsReplyEventArgs class + + The simulator the parcel data was retrieved from + The list of primitive IDs + true if the list is clean and contains the information + only for a given request + + + Get the simulator the parcel data was retrieved from + + + Get the list of primitive IDs + + + true if the list is clean and contains the information + only for a given request + + + Contains data when the media data for a parcel the avatar is on changes + + + + Construct a new instance of the ParcelMediaUpdateReplyEventArgs class + + the simulator the parcel media data was updated in + The updated media information + + + Get the simulator the parcel media data was updated in + + + Get the updated media information + + + Contains the media command for a parcel the agent is currently on + + + + Construct a new instance of the ParcelMediaCommandEventArgs class + + The simulator the parcel media command was issued in + + + + + The media command that was sent + + + + + Get the simulator the parcel media command was issued in + + + + + + + + + + + Get the media command that was sent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Class for controlling various system settings. + + Some values are readonly because they affect things that + happen when the GridClient object is initialized, so changing them at + runtime won't do any good. Non-readonly values may affect things that + happen at login or dynamically + + + Constructor + Reference to a GridClient object + + + Main grid login server + + + Beta grid login server + + + + InventoryManager requests inventory information on login, + GridClient initializes an Inventory store for main inventory. + + + + + InventoryManager requests library information on login, + GridClient initializes an Inventory store for the library. + + + + Number of milliseconds between sending pings to each sim + + + Number of milliseconds between sending camera updates + + + Number of milliseconds between updating the current + positions of moving, non-accelerating and non-colliding objects + + + Millisecond interval between ticks, where all ACKs are + sent out and the age of unACKed packets is checked + + + The initial size of the packet inbox, where packets are + stored before processing + + + Maximum size of packet that we want to send over the wire + + + The maximum value of a packet sequence number before it + rolls over back to one + + + The maximum size of the sequence number archive, used to + check for resent and/or duplicate packets + + + The relative directory where external resources are kept + + + Login server to connect to + + + IP Address the client will bind to + + + Use XML-RPC Login or LLSD Login, default is XML-RPC Login + + + Number of milliseconds before an asset transfer will time + out + + + Number of milliseconds before a teleport attempt will time + out + + + Number of milliseconds before NetworkManager.Logout() will + time out + + + Number of milliseconds before a CAPS call will time out + Setting this too low will cause web requests time out and + possibly retry repeatedly + + + Number of milliseconds for xml-rpc to timeout + + + Milliseconds before a packet is assumed lost and resent + + + Milliseconds without receiving a packet before the + connection to a simulator is assumed lost + + + Milliseconds to wait for a simulator info request through + the grid interface + + + Maximum number of queued ACKs to be sent before SendAcks() + is forced + + + Network stats queue length (seconds) + + + Enable/disable storing terrain heightmaps in the + TerrainManager + + + Enable/disable sending periodic camera updates + + + Enable/disable automatically setting agent appearance at + login and after sim crossing + + + Enable/disable automatically setting the bandwidth throttle + after connecting to each simulator + The default throttle uses the equivalent of the maximum + bandwidth setting in the official client. If you do not set a + throttle your connection will by default be throttled well below + the minimum values and you may experience connection problems + + + Enable/disable the sending of pings to monitor lag and + packet loss + + + Should we connect to multiple sims? This will allow + viewing in to neighboring simulators and sim crossings + (Experimental) + + + If true, all object update packets will be decoded in to + native objects. If false, only updates for our own agent will be + decoded. Registering an event handler will force objects for that + type to always be decoded. If this is disabled the object tracking + will have missing or partial prim and avatar information + + + If true, when a cached object check is received from the + server the full object info will automatically be requested + + + Whether to establish connections to HTTP capabilities + servers for simulators + + + Whether to decode sim stats + + + The capabilities servers are currently designed to + periodically return a 502 error which signals for the client to + re-establish a connection. Set this to true to log those 502 errors + + + If true, any reference received for a folder or item + the library is not aware of will automatically be fetched + + + If true, and SEND_AGENT_UPDATES is true, + AgentUpdate packets will continuously be sent out to give the bot + smoother movement and autopiloting + + + If true, currently visible avatars will be stored + in dictionaries inside Simulator.ObjectAvatars. + If false, a new Avatar or Primitive object will be created + each time an object update packet is received + + + If true, currently visible avatars will be stored + in dictionaries inside Simulator.ObjectPrimitives. + If false, a new Avatar or Primitive object will be created + each time an object update packet is received + + + If true, position and velocity will periodically be + interpolated (extrapolated, technically) for objects and + avatars that are being tracked by the library. This is + necessary to increase the accuracy of speed and position + estimates for simulated objects + + + + If true, utilization statistics will be tracked. There is a minor penalty + in CPU time for enabling this option. + + + + If true, parcel details will be stored in the + Simulator.Parcels dictionary as they are received + + + + If true, an incoming parcel properties reply will automatically send + a request for the parcel access list + + + + + if true, an incoming parcel properties reply will automatically send + a request for the traffic count. + + + + + If true, images, and other assets downloaded from the server + will be cached in a local directory + + + + Path to store cached texture data + + + Maximum size cached files are allowed to take on disk (bytes) + + + Default color used for viewer particle effects + + + Maximum number of times to resend a failed packet + + + Throttle outgoing packet rate + + + UUID of a texture used by some viewers to indentify type of client used + + + + Download textures using GetTexture capability when available + + + + The maximum number of concurrent texture downloads allowed + Increasing this number will not necessarily increase texture retrieval times due to + simulator throttles + + + + The Refresh timer inteval is used to set the delay between checks for stalled texture downloads + + This is a static variable which applies to all instances + + + + Textures taking longer than this value will be flagged as timed out and removed from the pipeline + + + + + Get or set the minimum log level to output to the console by default + If the library is not compiled with DEBUG defined and this level is set to DEBUG + You will get no output on the console. This behavior can be overriden by creating + a logger configuration file for log4net + + + + Attach avatar names to log messages + + + Log packet retransmission info + + + Cost of uploading an asset + Read-only since this value is dynamically fetched at login + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + + Simulator (region) properties + + + + No flags set + + + Agents can take damage and be killed + + + Landmarks can be created here + + + Home position can be set in this sim + + + Home position is reset when an agent teleports away + + + Sun does not move + + + No object, land, etc. taxes + + + Disable heightmap alterations (agents can still plant + foliage) + + + Land cannot be released, sold, or purchased + + + All content is wiped nightly + + + Unknown: Related to the availability of an overview world map tile.(Think mainland images when zoomed out.) + + + Unknown: Related to region debug flags. Possibly to skip processing of agent interaction with world. + + + Region does not update agent prim interest lists. Internal debugging option. + + + No collision detection for non-agent objects + + + No scripts are ran + + + All physics processing is turned off + + + Region can be seen from other regions on world map. (Legacy world map option?) + + + Region can be seen from mainland on world map. (Legacy world map option?) + + + Agents not explicitly on the access list can visit the region. + + + Traffic calculations are not run across entire region, overrides parcel settings. + + + Flight is disabled (not currently enforced by the sim) + + + Allow direct (p2p) teleporting + + + Estate owner has temporarily disabled scripting + + + Restricts the usage of the LSL llPushObject function, applies to whole region. + + + Deny agents with no payment info on file + + + Deny agents with payment info on file + + + Deny agents who have made a monetary transaction + + + Parcels within the region may be joined or divided by anyone, not just estate owners/managers. + + + Abuse reports sent from within this region are sent to the estate owner defined email. + + + Region is Voice Enabled + + + Removes the ability from parcel owners to set their parcels to show in search. + + + Deny agents who have not been age verified from entering the region. + + + + Access level for a simulator + + + + Unknown or invalid access level + + + Trial accounts allowed + + + PG rating + + + Mature rating + + + Adult rating + + + Simulator is offline + + + Simulator does not exist + + + + + + + + + Reference to the GridClient object + IPEndPoint of the simulator + handle of the simulator + + + + Simulator Statistics + + + + Total number of packets sent by this simulator to this agent + + + Total number of packets received by this simulator to this agent + + + Total number of bytes sent by this simulator to this agent + + + Total number of bytes received by this simulator to this agent + + + Time in seconds agent has been connected to simulator + + + Total number of packets that have been resent + + + Total number of resent packets recieved + + + Total number of pings sent to this simulator by this agent + + + Total number of ping replies sent to this agent by this simulator + + + + Incoming bytes per second + + It would be nice to have this claculated on the fly, but + this is far, far easier + + + + Outgoing bytes per second + + It would be nice to have this claculated on the fly, but + this is far, far easier + + + Time last ping was sent + + + ID of last Ping sent + + + + + + + + + + + Current time dilation of this simulator + + + Current Frames per second of simulator + + + Current Physics frames per second of simulator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Total number of objects Simulator is simulating + + + Total number of Active (Scripted) objects running + + + Number of agents currently in this simulator + + + Number of agents in neighbor simulators + + + Number of Active scripts running in this simulator + + + + + + + + + + + + + + + Number of downloads pending + + + Number of uploads pending + + + + + + + + + + + Number of local uploads pending + + + Unacknowledged bytes in queue + + + A public reference to the client that this Simulator object + is attached to + + + A Unique Cache identifier for this simulator + + + The capabilities for this simulator + + + + + + + The current version of software this simulator is running + + + + + + + A 64x64 grid of parcel coloring values. The values stored + in this array are of the type + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true if your agent has Estate Manager rights on this region + + + + + + + + + + + + + + + Statistics information for this simulator and the + connection to the simulator, calculated by the simulator itself + and the library + + + The regions Unique ID + + + The physical data center the simulator is located + Known values are: + DallasChandlerSF + + + The CPU Class of the simulator + Most full mainland/estate sims appear to be 5, + Homesteads and Openspace appear to be 501 + + + The number of regions sharing the same CPU as this one + "Full Sims" appear to be 1, Homesteads appear to be 4 + + + The billing product name + Known values are: + Mainland / Full Region (Sku: 023)Estate / Full Region (Sku: 024)Estate / Openspace (Sku: 027)Estate / Homestead (Sku: 029)Mainland / Homestead (Sku: 129) (Linden Owned)Mainland / Linden Homes (Sku: 131) + + + The billing product SKU + Known values are: + 023 Mainland / Full Region024 Estate / Full Region027 Estate / Openspace029 Estate / Homestead129 Mainland / Homestead (Linden Owned)131 Linden Homes / Full Region + + + The current sequence number for packets sent to this + simulator. Must be Interlocked before modifying. Only + useful for applications manipulating sequence numbers + + + + A thread-safe dictionary containing avatars in a simulator + + + + + A thread-safe dictionary containing primitives in a simulator + + + + + Provides access to an internal thread-safe dictionary containing parcel + information found in this simulator + + + + + Is it safe to send agent updates to this sim + AgentMovementComplete message received + + + + Used internally to track sim disconnections + + + Event that is triggered when the simulator successfully + establishes a connection + + + Whether this sim is currently connected or not. Hooked up + to the property Connected + + + Coarse locations of avatars in this simulator + + + AvatarPositions key representing TrackAgent target + + + Sequence numbers of packets we've received + (for duplicate checking) + + + Packets we sent out that need ACKs from the simulator + + + Sequence number for pause/resume + + + Indicates if UDP connection to the sim is fully established + + + + Provides access to an internal thread-safe multidimensional array containing a x,y grid mapped + to each 64x64 parcel's LocalID. + + + + The IP address and port of the server + + + Whether there is a working connection to the simulator or + not + + + Coarse locations of avatars in this simulator + + + AvatarPositions key representing TrackAgent target + + + Indicates if UDP connection to the sim is fully established + + + + Checks simulator parcel map to make sure it has downloaded all data successfully + + true if map is full (contains no 0's) + + + + Called when this Simulator object is being destroyed + + + + + Attempt to connect to this simulator + + Whether to move our agent in to this sim or not + True if the connection succeeded or connection status is + unknown, false if there was a failure + + + + Initiates connection to the simulator + + Should we block until ack for this packet is recieved + + + + Disconnect from this simulator + + + + + Instructs the simulator to stop sending update (and possibly other) packets + + + + + Instructs the simulator to resume sending update packets (unpause) + + + + + Retrieve the terrain height at a given coordinate + + Sim X coordinate, valid range is from 0 to 255 + Sim Y coordinate, valid range is from 0 to 255 + The terrain height at the given point if the + lookup was successful, otherwise 0.0f + True if the lookup was successful, otherwise false + + + + Sends a packet + + Packet to be sent + + + + + + + + Returns Simulator Name as a String + + + + + + + + + + + + + + + + + + + + + Sends out pending acknowledgements + + Number of ACKs sent + + + + Resend unacknowledged packets + + + + + + + + + Construct a new instance of the SoundManager class, used for playing and receiving + sound assets + + A reference to the current GridClient instance + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + Raised when the simulator sends us data containing + sound + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raised when the simulator sends us data containing + ... + + + Raises the AttachedSound Event + A AttachedSoundEventArgs object containing + the data sent from the simulator + + + Raises the AttachedSoundGainChange Event + A AttachedSoundGainChangeEventArgs object containing + the data sent from the simulator + + + Raises the SoundTrigger Event + A SoundTriggerEventArgs object containing + the data sent from the simulator + + + Raises the PreloadSound Event + A PreloadSoundEventArgs object containing + the data sent from the simulator + + + + Plays a sound in the current region at full volume from avatar position + + UUID of the sound to be played + + + + Plays a sound in the current region at full volume + + UUID of the sound to be played. + position for the sound to be played at. Normally the avatar. + + + + Plays a sound in the current region + + UUID of the sound to be played. + position for the sound to be played at. Normally the avatar. + volume of the sound, from 0.0 to 1.0 + + + + Plays a sound in the specified sim + + UUID of the sound to be played. + UUID of the sound to be played. + position for the sound to be played at. Normally the avatar. + volume of the sound, from 0.0 to 1.0 + + + + Play a sound asset + + UUID of the sound to be played. + handle id for the sim to be played in. + position for the sound to be played at. Normally the avatar. + volume of the sound, from 0.0 to 1.0 + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + + Provides data for the event + The event occurs when the simulator sends + the sound data which emits from an agents attachment + + The following code example shows the process to subscribe to the event + and a stub to handle the data passed from the simulator + + // Subscribe to the AttachedSound event + Client.Sound.AttachedSound += Sound_AttachedSound; + // process the data raised in the event here + private void Sound_AttachedSound(object sender, AttachedSoundEventArgs e) + { + // ... Process AttachedSoundEventArgs here ... + } + + + + + Construct a new instance of the SoundTriggerEventArgs class + + Simulator where the event originated + The sound asset id + The ID of the owner + The ID of the object + The volume level + The + + + Simulator where the event originated + + + Get the sound asset id + + + Get the ID of the owner + + + Get the ID of the Object + + + Get the volume level + + + Get the + + + Provides data for the event + The event occurs when an attached sound + changes its volume level + + + + Construct a new instance of the AttachedSoundGainChangedEventArgs class + + Simulator where the event originated + The ID of the Object + The new volume level + + + Simulator where the event originated + + + Get the ID of the Object + + + Get the volume level + + + Provides data for the event + + The event occurs when the simulator forwards + a request made by yourself or another agent to play either an asset sound or a built in sound + Requests to play sounds where the is not one of the built-in + will require sending a request to download the sound asset before it can be played + + + The following code example uses the , + and + properties to display some information on a sound request on the window. + + // subscribe to the event + Client.Sound.SoundTrigger += Sound_SoundTrigger; + // play the pre-defined BELL_TING sound + Client.Sound.SendSoundTrigger(Sounds.BELL_TING); + // handle the response data + private void Sound_SoundTrigger(object sender, SoundTriggerEventArgs e) + { + Console.WriteLine("{0} played the sound {1} at volume {2}", + e.OwnerID, e.SoundID, e.Gain); + } + + + + + Construct a new instance of the SoundTriggerEventArgs class + + Simulator where the event originated + The sound asset id + The ID of the owner + The ID of the object + The ID of the objects parent + The volume level + The regionhandle + The source position + + + Simulator where the event originated + + + Get the sound asset id + + + Get the ID of the owner + + + Get the ID of the Object + + + Get the ID of the objects parent + + + Get the volume level + + + Get the regionhandle + + + Get the source position + + + Provides data for the event + The event occurs when the simulator sends + the appearance data for an avatar + + The following code example uses the and + properties to display the selected shape of an avatar on the window. + + // subscribe to the event + Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; + // handle the data when the event is raised + void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) + { + Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") + } + + + + + Construct a new instance of the PreloadSoundEventArgs class + + Simulator where the event originated + The sound asset id + The ID of the owner + The ID of the object + + + Simulator where the event originated + + + Get the sound asset id + + + Get the ID of the owner + + + Get the ID of the Object + + + + pre-defined built in sounds + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + coins + + + cash register bell + + + + + + + + + + + rubber + + + plastic + + + flesh + + + wood splintering? + + + glass break + + + metal clunk + + + whoosh + + + shake + + + + + + + ding + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A dictionary containing all pre-defined sounds + + A dictionary containing the pre-defined sounds, + where the key is the sounds ID, and the value is a string + containing a name to identify the purpose of the sound + + + X position of this patch + + + Y position of this patch + + + A 16x16 array of floats holding decompressed layer data + + + + Creates a LayerData packet for compressed land data given a full + simulator heightmap and an array of indices of patches to compress + + A 256 * 256 array of floating point values + specifying the height at each meter in the simulator + Array of indexes in the 16x16 grid of patches + for this simulator. For example if 1 and 17 are specified, patches + x=1,y=0 and x=1,y=1 are sent + + + + + + Add a patch of terrain to a BitPacker + + BitPacker to write the patch to + Heightmap of the simulator, must be a 256 * + 256 float array + X offset of the patch to create, valid values are + from 0 to 15 + Y offset of the patch to create, valid values are + from 0 to 15 + + + + Default constructor + + + + + + The event subscribers. null if no subcribers + + + Thread sync lock object + + + Raised when the simulator responds sends + + + Raises the LandPatchReceived event + A LandPatchReceivedEventArgs object containing the + data returned from the simulator + + + Simulator from that sent tha data + + + Sim coordinate of the patch + + + Sim coordinate of the patch + + + Size of tha patch + + + Heightmap for the patch + + + + The current status of a texture request as it moves through the pipeline or final result of a texture request. + + + + The initial state given to a request. Requests in this state + are waiting for an available slot in the pipeline + + + A request that has been added to the pipeline and the request packet + has been sent to the simulator + + + A request that has received one or more packets back from the simulator + + + A request that has received all packets back from the simulator + + + A request that has taken longer than + to download OR the initial packet containing the packet information was never received + + + The texture request was aborted by request of the agent + + + The simulator replied to the request that it was not able to find the requested texture + + + + Texture request download handler, allows a configurable number of download slots which manage multiple + concurrent texture downloads from the + This class makes full use of the internal + system for full texture downloads. + + + + Default constructor, Instantiates a new copy of the TexturePipeline class + + Reference to the instantiated object + + + + A request task containing information and status of a request as it is processed through the + + + The current which identifies the current status of the request + + + The Unique Request ID, This is also the Asset ID of the texture being requested + + + The slot this request is occupying in the threadpoolSlots array + + + The ImageType of the request. + + + The callback to fire when the request is complete, will include + the and the + object containing the result data + + + If true, indicates the callback will be fired whenever new data is returned from the simulator. + This is used to progressively render textures as portions of the texture are received. + + + An object that maintains the data of an request thats in-process. + + + A dictionary containing all pending and in-process transfer requests where the Key is both the RequestID + and also the Asset Texture ID, and the value is an object containing the current state of the request and also + the asset data as it is being re-assembled + + + Holds the reference to the client object + + + Maximum concurrent texture requests allowed at a time + + + An array of objects used to manage worker request threads + + + An array of worker slots which shows the availablity status of the slot + + + The primary thread which manages the requests. + + + true if the TexturePipeline is currently running + + + A synchronization object used by the primary thread + + + A refresh timer used to increase the priority of stalled requests + + + Current number of pending and in-process transfers + + + + Initialize callbacks required for the TexturePipeline to operate + + + + + Shutdown the TexturePipeline and cleanup any callbacks or transfers + + + + + Request a texture asset from the simulator using the system to + manage the requests and re-assemble the image from the packets received from the simulator + + The of the texture asset to download + The of the texture asset. + Use for most textures, or for baked layer texture assets + A float indicating the requested priority for the transfer. Higher priority values tell the simulator + to prioritize the request before lower valued requests. An image already being transferred using the can have + its priority changed by resending the request with the new priority value + Number of quality layers to discard. + This controls the end marker of the data sent + The packet number to begin the request at. A value of 0 begins the request + from the start of the asset texture + The callback to fire when the image is retrieved. The callback + will contain the result of the request and the texture asset data + If true, the callback will be fired for each chunk of the downloaded image. + The callback asset parameter will contain all previously received chunks of the texture asset starting + from the beginning of the request + + + + Sends the actual request packet to the simulator + + The image to download + Type of the image to download, either a baked + avatar texture or a normal texture + Priority level of the download. Default is + 1,013,000.0f + Number of quality layers to discard. + This controls the end marker of the data sent + Packet number to start the download at. + This controls the start marker of the data sent + Sending a priority of 0 and a discardlevel of -1 aborts + download + + + + Cancel a pending or in process texture request + + The texture assets unique ID + + + + Master Download Thread, Queues up downloads in the threadpool + + + + + The worker thread that sends the request and handles timeouts + + A object containing the request details + + + + Handle responses from the simulator that tell us a texture we have requested is unable to be located + or no longer exists. This will remove the request from the pipeline and free up a slot if one is in use + + The sender + The EventArgs object containing the packet data + + + + Handles the remaining Image data that did not fit in the initial ImageData packet + + The sender + The EventArgs object containing the packet data + + + + Handle the initial ImageDataPacket sent from the simulator + + The sender + The EventArgs object containing the packet data + + + + + + + + Delegate to wrap another delegate and its arguments + + + + + + + + + An instance of DelegateWrapper which calls InvokeWrappedDelegate, + which in turn calls the DynamicInvoke method of the wrapped + delegate + + + + + Callback used to call EndInvoke on the asynchronously + invoked DelegateWrapper + + + + + Executes the specified delegate with the specified arguments + asynchronously on a thread pool thread + + + + + + + + + Invokes the wrapped delegate synchronously + + + + + + + + + Calls EndInvoke on the wrapper and Close on the resulting WaitHandle + to prevent resource leaks + + + + + + + + + + + Initialize the UDP packet handler in server mode + + Port to listening for incoming UDP packets on + + + + Initialize the UDP packet handler in client mode + + Remote UDP server to connect to + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Thrown when a packet could not be successfully deserialized + + + + + Default constructor + + + + + Constructor that takes an additional error message + + An error message to attach to this exception + + + + The header of a message template packet. Holds packet flags, sequence + number, packet ID, and any ACKs that will be appended at the end of + the packet + + + + + Convert the AckList to a byte array, used for packet serializing + + Reference to the target byte array + Beginning position to start writing to in the byte + array, will be updated with the ending position of the ACK list + + + + + + + + + + + + + + + + + + + + + + + + + + A block of data in a packet. Packets are composed of one or more blocks, + each block containing one or more fields + + + + Current length of the data in this packet + + + + Create a block from a byte array + + Byte array containing the serialized block + Starting position of the block in the byte array. + This will point to the data after the end of the block when the + call returns + + + + Serialize this block into a byte array + + Byte array to serialize this block into + Starting position in the byte array to serialize to. + This will point to the position directly after the end of the + serialized block when the call returns + + + A generic value, not an actual packet type + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Operation to apply when applying color to texture + + + + + Information needed to translate visual param value to RGBA color + + + + + Construct VisualColorParam + + Operation to apply when applying color to texture + Colors + + + + Represents alpha blending and bump infor for a visual parameter + such as sleive length + + + + + Create new alhpa information for a visual param + + Stregth of the alpha to apply + File containing the alpha channel + Skip blending if parameter value is 0 + Use miltiply insted of alpha blending + + + Stregth of the alpha to apply + + + File containing the alpha channel + + + Skip blending if parameter value is 0 + + + Use miltiply insted of alpha blending + + + + A single visual characteristic of an avatar mesh, such as eyebrow height + + + + + Set all the values through the constructor + + Index of this visual param + Internal name + + + + + Displayable label of this characteristic + Displayable label for the minimum value of this characteristic + Displayable label for the maximum value of this characteristic + Default value + Minimum value + Maximum value + Is this param used for creation of bump layer? + Array of param IDs that are drivers for this parameter + Alpha blending/bump info + Color information + + + Index of this visual param + + + Internal name + + + Group ID this parameter belongs to + + + Name of the wearable this parameter belongs to + + + Displayable label of this characteristic + + + Displayable label for the minimum value of this characteristic + + + Displayable label for the maximum value of this characteristic + + + Default value + + + Minimum value + + + Maximum value + + + Is this param used for creation of bump layer? + + + Alpha blending/bump info + + + Color information + + + Array of param IDs that are drivers for this parameter + + + + Holds the Params array of all the avatar appearance parameters + + + + + Base class for all Asset types + + + + + Construct a new Asset object + + + + + Construct a new Asset object + + A unique specific to this asset + A byte array containing the raw asset data + + + A byte array containing the raw asset data + + + True if the asset it only stored on the server temporarily + + + A unique ID + + + The assets unique ID + + + + The "type" of asset, Notecard, Animation, etc + + + + + Regenerates the AssetData byte array from the properties + of the derived class. + + + + + Decodes the AssetData, placing it in appropriate properties of the derived + class. + + True if the asset decoding succeeded, otherwise false + + + + Constants for the archiving module + + + + + The location of the archive control file + + + + + Path for the assets held in an archive + + + + + Path for the prims file + + + + + Path for terrains. Technically these may be assets, but I think it's quite nice to split them out. + + + + + Path for region settings. + + + + + The character the separates the uuid from extension information in an archived asset filename + + + + + Extensions used for asset types in the archive + + + + + Archives assets + + + + + Archive assets + + + + + Archive the assets given to this archiver to the given archive. + + + + + + + Write an assets metadata file to the given archive + + + + + + + Write asset data files to the given archive + + + + + + + Temporary code to do the bare minimum required to read a tar archive for our purposes + + + + + Generate a tar reader which reads from the given stream. + + + + + + + Binary reader for the underlying stream + + + + + Used to trim off null chars + + + + + Used to trim off space chars + + + + + Read the next entry in the tar file. + + + + + + the data for the entry. Returns null if there are no more entries + + + + Read the next 512 byte chunk of data as a tar header. + + A tar header struct. null if we have reached the end of the archive. + + + + Read data following a header + + + + + + + + + Convert octal bytes to a decimal representation + + + + + + + + + + + + + Temporary code to produce a tar archive in tar v7 format + + + + + Binary writer for the underlying stream + + + + + Write a directory entry to the tar archive. We can only handle one path level right now! + + + + + + + Write a file to the tar archive + + + + + + + + + Write a file to the tar archive + + + + + + + + + Finish writing the raw tar archive data to a stream. The stream will be closed on completion. + + + + + Write a particular entry + + + + + + + + + + + Represents an Animation + + + + Default Constructor + + + + Construct an Asset object of type Animation + + A unique specific to this asset + A byte array containing the raw asset data + + + Override the base classes AssetType + + + + Represents an that represents an avatars body ie: Hair, Etc. + + + + Initializes a new instance of an AssetBodyPart object + + + Initializes a new instance of an AssetBodyPart object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + Override the base classes AssetType + + + + Represents an that can be worn on an avatar + such as a Shirt, Pants, etc. + + + + Initializes a new instance of an AssetScriptBinary object + + + Initializes a new instance of an AssetScriptBinary object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + Override the base classes AssetType + + + + Type of gesture step + + + + + Base class for gesture steps + + + + + Retururns what kind of gesture step this is + + + + + Describes animation step of a gesture + + + + + If true, this step represents start of animation, otherwise animation stop + + + + + Animation asset + + + + Animation inventory name + + + + + Returns what kind of gesture step this is + + + + + Describes sound step of a gesture + + + + + Sound asset + + + + Sound inventory name + + + + + Returns what kind of gesture step this is + + + + + Describes sound step of a gesture + + + + + Text to output in chat + + + + + Returns what kind of gesture step this is + + + + + Describes sound step of a gesture + + + + + If true in this step we wait for all animations to finish + + + + + If true gesture player should wait for the specified amount of time + + + + + Time in seconds to wait if WaitForAnimation is false + + + + + Returns what kind of gesture step this is + + + + + Describes the final step of a gesture + + + + + Returns what kind of gesture step this is + + + + + Represents a sequence of animations, sounds, and chat actions + + + + + Constructs guesture asset + + + + + Constructs guesture asset + + A unique specific to this asset + A byte array containing the raw asset data + + + + Keyboard key that triggers the gestyre + + + + + Modifier to the trigger key + + + + + String that triggers playing of the gesture sequence + + + + + Text that replaces trigger in chat once gesture is triggered + + + + + Sequence of gesture steps + + + + + Returns asset type + + + + + Encodes gesture asset suitable for uplaod + + + + + Decodes gesture assset into play sequence + + true if the asset data was decoded successfully + + + + Represents a Landmark with RegionID and Position vector + + + + Construct an Asset of type Landmark + + + + Construct an Asset object of type Landmark + + A unique specific to this asset + A byte array containing the raw asset data + + + UUID of the Landmark target region + + + Local position of the target + + + Override the base classes AssetType + + + + Encode the raw contents of a string with the specific Landmark format + + + + + Decode the raw asset data, populating the RegionID and Position + + true if the AssetData was successfully decoded to a UUID and Vector + + + + Represents Mesh asset + + + + Initializes a new instance of an AssetMesh object + + + Initializes a new instance of an AssetMesh object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + + Decoded mesh data + + + + Override the base classes AssetType + + + + TODO: Encodes Collada file into LLMesh format + + + + + Decodes mesh asset. See + to furter decode it for rendering + true + + + + Represents a string of characters encoded with specific formatting properties + + + + Construct an Asset of type Notecard + + + + Construct an Asset object of type Notecard + + A unique specific to this asset + A byte array containing the raw asset data + + + A text string containing main text of the notecard + + + List of s embedded on the notecard + + + Override the base classes AssetType + + + + Encode the raw contents of a string with the specific Linden Text properties + + + + + Decode the raw asset data including the Linden Text properties + + true if the AssetData was successfully decoded + + + + A linkset asset, containing a parent primitive and zero or more children + + + + Initializes a new instance of an AssetPrim object + + + + Initializes a new instance of an AssetPrim object + + A unique specific to this asset + A byte array containing the raw asset data + + + + Only used internally for XML serialization/deserialization + + + + Override the base classes AssetType + + + + + + + + + + + + + + The deserialized form of a single primitive in a linkset asset + + + + + Represents an AssetScriptBinary object containing the + LSO compiled bytecode of an LSL script + + + + Initializes a new instance of an AssetScriptBinary object + + + Initializes a new instance of an AssetScriptBinary object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + Override the base classes AssetType + + + + TODO: Encodes a scripts contents into a LSO Bytecode file + + + + + TODO: Decode LSO Bytecode into a string + + true + + + + Represents an LSL Text object containing a string of UTF encoded characters + + + + Initializes a new AssetScriptText object + + + + Initializes a new AssetScriptText object with parameters + + A unique specific to this asset + A byte array containing the raw asset data + + + A string of characters represting the script contents + + + Override the base classes AssetType + + + + Encode a string containing the scripts contents into byte encoded AssetData + + + + + Decode a byte array containing the scripts contents into a string + + true if decoding is successful + + + + Represents a Sound Asset + + + + Initializes a new instance of an AssetSound object + + + Initializes a new instance of an AssetSound object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + Override the base classes AssetType + + + + TODO: Encodes a sound file + + + + + TODO: Decode a sound file + + true + + + + Represents a texture + + + + Initializes a new instance of an AssetTexture object + + + + Initializes a new instance of an AssetTexture object + + A unique specific to this asset + A byte array containing the raw asset data + + + + Initializes a new instance of an AssetTexture object + + A object containing texture data + + + A object containing image data + + + + + + + + + + + Override the base classes AssetType + + + + Populates the byte array with a JPEG2000 + encoded image created from the data in + + + + Decodes the JPEG2000 data in AssetData to the + object + True if the decoding was successful, otherwise false + + + + Decodes the begin and end byte positions for each quality layer in + the image + + + + + + + Represents a Wearable Asset, Clothing, Hair, Skin, Etc + + + + Initializes a new instance of an AssetWearable object + + + Initializes a new instance of an AssetWearable object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + + A string containing the name of the asset + + + A string containing a short description of the asset + + + The Assets WearableType + + + The For-Sale status of the object + + + An Integer representing the purchase price of the asset + + + The of the assets creator + + + The of the assets current owner + + + The of the assets prior owner + + + The of the Group this asset is set to + + + True if the asset is owned by a + + + The Permissions mask of the asset + + + A Dictionary containing Key/Value pairs of the objects parameters + + + A Dictionary containing Key/Value pairs where the Key is the textures Index and the Value is the Textures + + + + Decode an assets byte encoded data to a string + + true if the asset data was decoded successfully + + + + Encode the assets string represantion into a format consumable by the asset server + + + + = + + + Number of times we've received an unknown CAPS exception in series. + + + For exponential backoff on error. + + + + A set of textures that are layered on texture of each other and "baked" + in to a single texture, for avatar appearances + + + + + Default constructor + + Bake type + + + Final baked texture + + + Component layers + + + Width of the final baked image and scratchpad + + + Height of the final baked image and scratchpad + + + Bake type + + + Final baked texture + + + Component layers + + + Width of the final baked image and scratchpad + + + Height of the final baked image and scratchpad + + + Bake type + + + Is this one of the 3 skin bakes + + + + Adds layer for baking + + TexturaData struct that contains texture and its params + + + + Converts avatar texture index (face) to Bake type + + Face number (AvatarTextureIndex) + BakeType, layer to which this texture belongs to + + + + Make sure images exist, resize source if needed to match the destination + + Destination image + Source image + Sanitization was succefull + + + + Fills a baked layer as a solid *appearing* color. The colors are + subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from + compressing it too far since it seems to cause upload failures if + the image is a pure solid color + + Color of the base of this layer + + + + Fills a baked layer as a solid *appearing* color. The colors are + subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from + compressing it too far since it seems to cause upload failures if + the image is a pure solid color + + Red value + Green value + Blue value + + + + Create a new blank image + + width + height + channel flags + + + + + + + + + + Image width + + + + + Image height + + + + + Image channel flags + + + + + Red channel data + + + + + Green channel data + + + + + Blue channel data + + + + + Alpha channel data + + + + + Bump channel data + + + + + Convert the channels in the image. Channels are created or destroyed as required. + + new channel flags + + + + Resize or stretch the image using nearest neighbor (ugly) resampling + + new width + new height + + + + Create a byte array containing 32-bit RGBA data with a bottom-left + origin, suitable for feeding directly into OpenGL + + A byte array containing raw texture data + + + + A Wrapper around openjpeg to encode and decode images to and from byte arrays + + + + + Defines the beginning and ending file positions of a layer in an + LRCP-progression JPEG2000 file + + + + + This structure is used to marshal both encoded and decoded images. + MUST MATCH THE STRUCT IN dotnet.h! + + + + + Information about a single packet in a JPEG2000 stream + + + + Packet start position + + + Packet header end position + + + Packet end position + + + TGA Header size + + + OpenJPEG is not threadsafe, so this object is used to lock + during calls into unmanaged code + + + + Encode a object into a byte array + + The object to encode + true to enable lossless conversion, only useful for small images ie: sculptmaps + A byte array containing the encoded Image object + + + + Encode a object into a byte array + + The object to encode + a byte array of the encoded image + + + + Decode JPEG2000 data to an and + + JPEG2000 encoded data + ManagedImage object to decode to + Image object to decode to + True if the decode succeeds, otherwise false + + + + + + + + + + + + + + + + + + + + + + + + + + Encode a object into a byte array + + The source object to encode + true to enable lossless decoding + A byte array containing the source Bitmap object + + + + Capability to load TGAs to Bitmap + + + + + Interface requirements for Messaging system + + + + + Abstract base for rendering plugins + + + + + Generates a basic mesh structure from a primitive + + Primitive to generate the mesh from + Level of detail to generate the mesh at + The generated mesh + + + + Generates a basic mesh structure from a sculpted primitive and + texture + + Sculpted primitive to generate the mesh from + Sculpt texture + Level of detail to generate the mesh at + The generated mesh + + + + Generates a series of faces, each face containing a mesh and + metadata + + Primitive to generate the mesh from + Level of detail to generate the mesh at + The generated mesh + + + + Generates a series of faces for a sculpted prim, each face + containing a mesh and metadata + + Sculpted primitive to generate the mesh from + Sculpt texture + Level of detail to generate the mesh at + The generated mesh + + + + Apply texture coordinate modifications from a + to a list of vertices + + Vertex list to modify texture coordinates for + Center-point of the face + Face texture parameters + Scale of the prim + + + + Sent to the client to indicate a teleport request has completed + + + + The of the agent + + + + + + + The simulators handle the agent teleported to + + + A Uri which contains a list of Capabilities the simulator supports + + + Indicates the level of access required + to access the simulator, or the content rating, or the simulators + map status + + + The IP Address of the simulator + + + The UDP Port the simulator will listen for UDP traffic on + + + Status flags indicating the state of the Agent upon arrival, Flying, etc. + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Sent to the viewer when a neighboring simulator is requesting the agent make a connection to it. + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent to the client which indicates a teleport request has failed + and contains some information on why it failed + + + + + + + + A string key of the reason the teleport failed e.g. CouldntTPCloser + Which could be used to look up a value in a dictionary or enum + + + The of the Agent + + + A string human readable message containing the reason + An example: Could not teleport closer to destination + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Contains a list of prim owner information for a specific parcel in a simulator + + + A Simulator will always return at least 1 entry + If agent does not have proper permission the OwnerID will be UUID.Zero + If agent does not have proper permission OR there are no primitives on parcel + the DataBlocksExtended map will not be sent from the simulator + + + + + Prim ownership information for a specified owner on a single parcel + + + + The of the prim owner, + UUID.Zero if agent has no permission to view prim owner information + + + The total number of prims + + + True if the OwnerID is a + + + True if the owner is online + This is no longer used by the LL Simulators + + + The date the most recent prim was rezzed + + + An Array of objects + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + The details of a single parcel in a region, also contains some regionwide globals + + + + Simulator-local ID of this parcel + + + Maximum corner of the axis-aligned bounding box for this + parcel + + + Minimum corner of the axis-aligned bounding box for this + parcel + + + Total parcel land area + + + + + + + Key of authorized buyer + + + Bitmap describing land layout in 4x4m squares across the + entire region + + + + + + + Date land was claimed + + + Appears to always be zero + + + Parcel Description + + + + + + + + + + + Total number of primitives owned by the parcel group on + this parcel + + + Whether the land is deeded to a group or not + + + + + + + Maximum number of primitives this parcel supports + + + The Asset UUID of the Texture which when applied to a + primitive will display the media + + + A URL which points to any Quicktime supported media type + + + A byte, if 0x1 viewer should auto scale media to fit object + + + URL For Music Stream + + + Parcel Name + + + Autoreturn value in minutes for others' objects + + + + + + + Total number of other primitives on this parcel + + + UUID of the owner of this parcel + + + Total number of primitives owned by the parcel owner on + this parcel + + + + + + + How long is pass valid for + + + Price for a temporary pass + + + + + + + Disallows people outside the parcel from being able to see in + + + + + + + + + + + + + + + True if the region denies access to age unverified users + + + + + + + This field is no longer used + + + The result of a request for parcel properties + + Sale price of the parcel, only useful if ForSale is set + The SalePrice will remain the same after an ownership + transfer (sale), so it can be used to see the purchase price after + a sale if the new owner has not changed it + + + + Number of primitives your avatar is currently + selecting and sitting on in this parcel + + + + + + + + + A number which increments by 1, starting at 0 for each ParcelProperties request. + Can be overriden by specifying the sequenceID with the ParcelPropertiesRequest being sent. + a Negative number indicates the action in has occurred. + + + + Maximum primitives across the entire simulator + + + Total primitives across the entire simulator + + + + + + + Key of parcel snapshot + + + Parcel ownership status + + + Total number of primitives on this parcel + + + + + + + + + + + A description of the media + + + An Integer which represents the height of the media + + + An integer which represents the width of the media + + + A boolean, if true the viewer should loop the media + + + A string which contains the mime type of the media + + + true to obscure (hide) media url + + + true to obscure (hide) music url + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + A message sent from the viewer to the simulator to updated a specific parcels settings + + + The of the agent authorized to purchase this + parcel of land or a NULL if the sale is authorized to anyone + + + true to enable auto scaling of the parcel media + + + The category of this parcel used when search is enabled to restrict + search results + + + A string containing the description to set + + + The of the which allows for additional + powers and restrictions. + + + The which specifies how avatars which teleport + to this parcel are handled + + + The LocalID of the parcel to update settings on + + + A string containing the description of the media which can be played + to visitors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + Base class used for the RemoteParcelRequest message + + + + A message sent from the viewer to the simulator to request information + on a remote parcel + + + + Local sim position of the parcel we are looking up + + + Region handle of the parcel we are looking up + + + Region of the parcel we are looking up + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent from the simulator to the viewer in response to a + which will contain parcel information + + + + The grid-wide unique parcel ID + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message containing a request for a remote parcel from a viewer, or a response + from the simulator to that request + + + + The request or response details block + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent from the simulator to an agent which contains + the groups the agent is in + + + + Group Details specific to the agent + + + true of the agent accepts group notices + + + The agents tier contribution to the group + + + The Groups + + + The of the groups insignia + + + The name of the group + + + The aggregate permissions the agent has in the group for all roles the agent + is assigned + + + An optional block containing additional agent specific information + + + true of the agent allows this group to be + listed in their profile + + + The Agent receiving the message + + + An array containing information + for each the agent is a member of + + + An array containing information + for each the agent is a member of + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent from the viewer to the simulator which + specifies the language and permissions for others to detect + the language specified + + + + A string containng the default language + to use for the agent + + + true of others are allowed to + know the language setting + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + An EventQueue message sent from the simulator to an agent when the agent + leaves a group + + + + An object containing the Agents UUID, and the Groups UUID + + + The ID of the Agent leaving the group + + + The GroupID the Agent is leaving + + + + An Array containing the AgentID and GroupID + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + Base class for Asset uploads/results via Capabilities + + + + The request state + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent from the viewer to the simulator to request a temporary upload capability + which allows an asset to be uploaded + + + + The Capability URL sent by the simulator to upload the baked texture to + + + + A message sent from the simulator that will inform the agent the upload is complete, + and the UUID of the uploaded asset + + + + The uploaded texture asset ID + + + + A message sent from the viewer to the simulator to request a temporary + capability URI which is used to upload an agents baked appearance textures + + + + Object containing request or response + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent from the simulator which indicates the minimum version required for + using voice chat + + + + Major Version Required + + + Minor version required + + + The name of the region sending the version requrements + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent from the simulator to the viewer containing the + voice server URI + + + + The Parcel ID which the voice server URI applies + + + The name of the region + + + A uri containing the server/channel information + which the viewer can utilize to participate in voice conversations + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + + + + + + + + + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent by the viewer to the simulator to request a temporary + capability for a script contained with in a Tasks inventory to be updated + + + + Object containing request or response + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent from the simulator to the viewer to indicate + a Tasks scripts status. + + + + The Asset ID of the script + + + True of the script is compiled/ran using the mono interpreter, false indicates it + uses the older less efficient lsl2 interprter + + + The Task containing the scripts + + + true of the script is in a running state + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message containing the request/response used for updating a gesture + contained with an agents inventory + + + + Object containing request or response + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message request/response which is used to update a notecard contained within + a tasks inventory + + + + The of the Task containing the notecard asset to update + + + The notecard assets contained in the tasks inventory + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A reusable class containing a message sent from the viewer to the simulator to request a temporary uploader capability + which is used to update an asset in an agents inventory + + + + + The Notecard AssetID to replace + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message containing the request/response used for updating a notecard + contained with an agents inventory + + + + Object containing request or response + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent from the simulator to the viewer which indicates + an error occurred while attempting to update a script in an agents or tasks + inventory + + + + true of the script was successfully compiled by the simulator + + + A string containing the error which occured while trying + to update the script + + + A new AssetID assigned to the script + + + + A message sent from the viewer to the simulator + requesting the update of an existing script contained + within a tasks inventory + + + + if true, set the script mode to running + + + The scripts InventoryItem ItemID to update + + + A lowercase string containing either "mono" or "lsl2" which + specifies the script is compiled and ran on the mono runtime, or the older + lsl runtime + + + The tasks which contains the script to update + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message containing either the request or response used in updating a script inside + a tasks inventory + + + + Object containing request or response + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Response from the simulator to notify the viewer the upload is completed, and + the UUID of the script asset and its compiled status + + + + The uploaded texture asset ID + + + true of the script was compiled successfully + + + + A message sent from a viewer to the simulator requesting a temporary uploader capability + used to update a script contained in an agents inventory + + + + The existing asset if of the script in the agents inventory to replace + + + The language of the script + Defaults to lsl version 2, "mono" might be another possible option + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message containing either the request or response used in updating a script inside + an agents inventory + + + + Object containing request or response + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + Base class for Map Layers via Capabilities + + + + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Sent by an agent to the capabilities server to request map layers + + + + + A message sent from the simulator to the viewer which contains an array of map images and their grid coordinates + + + + + An object containing map location details + + + + The Asset ID of the regions tile overlay + + + The grid location of the southern border of the map tile + + + The grid location of the western border of the map tile + + + The grid location of the eastern border of the map tile + + + The grid location of the northern border of the map tile + + + An array containing LayerData items + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + Object containing request or response + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + New as of 1.23 RC1, no details yet. + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + A string containing the method used + + + + A request sent from an agent to the Simulator to begin a new conference. + Contains a list of Agents which will be included in the conference + + + + An array containing the of the agents invited to this conference + + + The conferences Session ID + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A moderation request sent from a conference moderator + Contains an agent and an optional action to take + + + + The Session ID + + + + + + + A list containing Key/Value pairs, known valid values: + key: text value: true/false - allow/disallow specified agents ability to use text in session + key: voice value: true/false - allow/disallow specified agents ability to use voice in session + + "text" or "voice" + + + + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + A message sent from the agent to the simulator which tells the + simulator we've accepted a conference invitation + + + + The conference SessionID + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + Key of sender + + + Name of sender + + + Key of destination avatar + + + ID of originating estate + + + Key of originating region + + + Coordinates in originating region + + + Instant message type + + + Group IM session toggle + + + Key of IM session, for Group Messages, the groups UUID + + + Timestamp of the instant message + + + Instant message text + + + Whether this message is held for offline avatars + + + Context specific packed data + + + Is this invitation for voice group/conference chat + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Sent from the simulator to the viewer. + When an agent initially joins a session the AgentUpdatesBlock object will contain a list of session members including + a boolean indicating they can use voice chat in this session, a boolean indicating they are allowed to moderate + this session, and lastly a string which indicates another agent is entering the session with the Transition set to "ENTER" + During the session lifetime updates on individuals are sent. During the update the booleans sent during the initial join are + excluded with the exception of the Transition field. This indicates a new user entering or exiting the session with + the string "ENTER" or "LEAVE" respectively. + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + An EventQueue message sent when the agent is forcibly removed from a chatterbox session + + + + + A string containing the reason the agent was removed + + + + + The ChatterBoxSession's SessionID + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + + Event Queue message describing physics engine attributes of a list of objects + Sim sends these when object is selected + + + + Array with the list of physics properties + + + + Serializes the message + + Serialized OSD + + + + Deseializes the message + + Incoming data to deserialize + + + + A message sent from the viewer to the simulator which + specifies that the user has changed current URL + of the specific media on a prim face + + + + + New URL + + + + + Prim UUID where navigation occured + + + + + Face index + + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + Base class used for the ObjectMedia message + + + + Message used to retrive prim media data + + + + + Prim UUID + + + + + Requested operation, either GET or UPDATE + + + + + Serialize object + + Serialized object as OSDMap + + + + Deserialize the message + + An containing the data + + + + Message used to update prim media data + + + + + Prim UUID + + + + + Array of media entries indexed by face number + + + + + Media version string + + + + + Serialize object + + Serialized object as OSDMap + + + + Deserialize the message + + An containing the data + + + + Message used to update prim media data + + + + + Prim UUID + + + + + Array of media entries indexed by face number + + + + + Requested operation, either GET or UPDATE + + + + + Serialize object + + Serialized object as OSDMap + + + + Deserialize the message + + An containing the data + + + + Message for setting or getting per face MediaEntry + + + + The request or response details block + + + + Serialize the object + + An containing the objects data + + + + Deserialize the message + + An containing the data + + + Details about object resource usage + + + Object UUID + + + Object name + + + Indicates if object is group owned + + + Locatio of the object + + + Object owner + + + Resource usage, keys are resource names, values are resource usage for that specific resource + + + + Deserializes object from OSD + + An containing the data + + + + Makes an instance based on deserialized data + + + serialized data + Instance containg deserialized data + + + Details about parcel resource usage + + + Parcel UUID + + + Parcel local ID + + + Parcel name + + + Indicates if parcel is group owned + + + Parcel owner + + + Array of containing per object resource usage + + + + Deserializes object from OSD + + An containing the data + + + + Makes an instance based on deserialized data + + + serialized data + Instance containg deserialized data + + + Resource usage base class, both agent and parcel resource + usage contains summary information + + + Summary of available resources, keys are resource names, + values are resource usage for that specific resource + + + Summary resource usage, keys are resource names, + values are resource usage for that specific resource + + + + Serializes object + + + serialized data + + + + Deserializes object from OSD + + An containing the data + + + Agent resource usage + + + Per attachment point object resource usage + + + + Deserializes object from OSD + + An containing the data + + + + Makes an instance based on deserialized data + + + serialized data + Instance containg deserialized data + + + + Detects which class handles deserialization of this message + + An containing the data + Object capable of decoding this message + + + Request message for parcel resource usage + + + UUID of the parel to request resource usage info + + + + Serializes object + + + serialized data + + + + Deserializes object from OSD + + An containing the data + + + Response message for parcel resource usage + + + URL where parcel resource usage details can be retrieved + + + URL where parcel resource usage summary can be retrieved + + + + Serializes object + + + serialized data + + + + Deserializes object from OSD + + An containing the data + + + + Detects which class handles deserialization of this message + + An containing the data + Object capable of decoding this message + + + Parcel resource usage + + + Array of containing per percal resource usage + + + + Deserializes object from OSD + + An containing the data + + + + Reply to request for bunch if display names + + + + Current display name + + + Following UUIDs failed to return a valid display name + + + + Serializes the message + + OSD containting the messaage + + + + Message sent when requesting change of the display name + + + + Current display name + + + Desired new display name + + + + Serializes the message + + OSD containting the messaage + + + + Message recieved in response to request to change display name + + + + New display name + + + String message indicating the result of the operation + + + Numerical code of the result, 200 indicates success + + + + Serializes the message + + OSD containting the messaage + + + + Message recieved when someone nearby changes their display name + + + + Previous display name, empty string if default + + + New display name + + + + Serializes the message + + OSD containting the messaage + + + + Return a decoded capabilities message as a strongly typed object + + A string containing the name of the capabilities message key + An to decode + A strongly typed object containing the decoded information from the capabilities message, or null + if no existing Message object exists for the specified event + + + + Permissions for control of object media + + + + + Style of cotrols that shold be displayed to the user + + + + + Class representing media data for a single face + + + + Is display of the alternative image enabled + + + Should media auto loop + + + Shoule media be auto played + + + Auto scale media to prim face + + + Should viewer automatically zoom in on the face when clicked + + + Should viewer interpret first click as interaction with the media + or when false should the first click be treated as zoom in commadn + + + Style of controls viewer should display when + viewer media on this face + + + Starting URL for the media + + + Currently navigated URL + + + Media height in pixes + + + Media width in pixels + + + Who can controls the media + + + Who can interact with the media + + + Is URL whitelist enabled + + + Array of URLs that are whitelisted + + + + Serialize to OSD + + OSDMap with the serialized data + + + + Deserialize from OSD data + + Serialized OSD data + Deserialized object + + + + Particle system specific enumerators, flags and methods. + + + + + Default constructor + + + + + Complete structure for the particle system + + + + + Decodes a byte[] array into a ParticleSystem Object + + ParticleSystem object + Start position for BitPacker + + + + Particle source pattern + + + + None + + + Drop particles from source position with no force + + + "Explode" particles in all directions + + + Particles shoot across a 2D area + + + Particles shoot across a 3D Cone + + + Inverse of AngleCone (shoot particles everywhere except the 3D cone defined + + + + Particle Data Flags + + + + None + + + Interpolate color and alpha from start to end + + + Interpolate scale from start to end + + + Bounce particles off particle sources Z height + + + velocity of particles is dampened toward the simulators wind + + + Particles follow the source + + + Particles point towards the direction of source's velocity + + + Target of the particles + + + Particles are sent in a straight line + + + Particles emit a glow + + + used for point/grab/touch + + + + Particle Flags Enum + + + + None + + + Acceleration and velocity for particles are + relative to the object rotation + + + Particles use new 'correct' angle parameters + + + Particle Flags + There appears to be more data packed in to this area + for many particle systems. It doesn't appear to be flag values + and serialization breaks unless there is a flag for every + possible bit so it is left as an unsigned integer + + + + pattern of particles + + + A representing the maximimum age (in seconds) particle will be displayed + Maximum value is 30 seconds + + + A representing the number of seconds, + from when the particle source comes into view, + or the particle system's creation, that the object will emits particles; + after this time period no more particles are emitted + + + A in radians that specifies where particles will not be created + + + A in radians that specifies where particles will be created + + + A representing the number of seconds between burts. + + + A representing the number of meters + around the center of the source where particles will be created. + + + A representing in seconds, the minimum speed between bursts of new particles + being emitted + + + A representing in seconds the maximum speed of new particles being emitted. + + + A representing the maximum number of particles emitted per burst + + + A which represents the velocity (speed) from the source which particles are emitted + + + A which represents the Acceleration from the source which particles are emitted + + + The Key of the texture displayed on the particle + + + The Key of the specified target object or avatar particles will follow + + + Flags of particle from + + + Max Age particle system will emit particles for + + + The the particle has at the beginning of its lifecycle + + + The the particle has at the ending of its lifecycle + + + A that represents the starting X size of the particle + Minimum value is 0, maximum value is 4 + + + A that represents the starting Y size of the particle + Minimum value is 0, maximum value is 4 + + + A that represents the ending X size of the particle + Minimum value is 0, maximum value is 4 + + + A that represents the ending Y size of the particle + Minimum value is 0, maximum value is 4 + + + + Generate byte[] array from particle data + + Byte array + + + + Parameters used to construct a visual representation of a primitive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Attachment point to an avatar + + + + + + + + + + + + + + + + + + + + Calculdates hash code for prim construction data + + The has + + + + Information on the flexible properties of a primitive + + + + + Default constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Information on the light properties of a primitive + + + + + Default constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Information on the sculpt properties of a sculpted primitive + + + + + Default constructor + + + + + + + + + + + + + Render inside out (inverts the normals). + + + + + Render an X axis mirror of the sculpty. + + + + + Extended properties to describe an object + + + + + Default constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Set the properties that are set in an ObjectPropertiesFamily packet + + + that has + been partially filled by an ObjectPropertiesFamily packet + + + + Describes physics attributes of the prim + + + + Primitive's local ID + + + Density (1000 for normal density) + + + Friction + + + Gravity multiplier (1 for normal gravity) + + + Type of physics representation of this primitive in the simulator + + + Restitution + + + + Creates PhysicsProperties from OSD + + OSDMap with incoming data + Deserialized PhysicsProperties object + + + + Serializes PhysicsProperties to OSD + + OSDMap with serialized PhysicsProperties data + + + + Texture animation mode + + + + Disable texture animation + + + Enable texture animation + + + Loop when animating textures + + + Animate in reverse direction + + + Animate forward then reverse + + + Slide texture smoothly instead of frame-stepping + + + Rotate texture instead of using frames + + + Scale texture instead of using frames + + + + A single textured face. Don't instantiate this class yourself, use the + methods in TextureEntry + + + + + Contains the definition for individual faces + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + In the future this will specify whether a webpage is + attached to this face + + + + + + + + + + + + + + Represents all of the texturable faces for an object + + Grid objects have infinite faces, with each face + using the properties of the default face unless set otherwise. So if + you have a TextureEntry with a default texture uuid of X, and face 18 + has a texture UUID of Y, every face would be textured with X except for + face 18 that uses Y. In practice however, primitives utilize a maximum + of nine faces + + + + Constructor that takes a default texture UUID + + Texture UUID to use as the default texture + + + + Constructor that takes a TextureEntryFace for the + default face + + Face to use as the default face + + + + Constructor that creates the TextureEntry class from a byte array + + Byte array containing the TextureEntry field + Starting position of the TextureEntry field in + the byte array + Length of the TextureEntry field, in bytes + + + + + + + + + + + + This will either create a new face if a custom face for the given + index is not defined, or return the custom face for that index if + it already exists + + The index number of the face to create or + retrieve + A TextureEntryFace containing all the properties for that + face + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Controls the texture animation of a particular prim + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Current version of the media data for the prim + + + + + Array of media entries indexed by face number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Foliage type for this primitive. Only applicable if this + primitive is foliage + + + Unknown + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Identifies the owner if audio or a particle system is + active + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Objects physics engine propertis + + + Extra data about primitive + + + Indicates if prim is attached to an avatar + + + + + + + + + + + Uses basic heuristics to estimate the primitive shape + + + + Packs PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew + parameters in to signed eight bit values + + Floating point parameter to pack + Signed eight bit value containing the packed parameter + + + + Unpacks PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew + parameters from signed eight bit integers to floating point values + + Signed eight bit value to unpack + Unpacked floating point value + + + + The type of bump-mapping applied to a face + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The level of shininess applied to a face + + + + + + + + + + + + + + + + + + + + + The texture mapping style used for a face + + + + + + + + + + + + + + + + + + + + + Flags in the TextureEntry block that describe which properties are + set + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Level of Detail mesh + + + + + Contains all mesh faces that belong to a prim + + + + List of primitive faces + + + + Decodes mesh asset into FacetedMesh + + Mesh primitive + Asset retrieved from the asset server + Level of detail + Resulting decoded FacetedMesh + True if mesh asset decoding was successful + + + + Constructor for default logging settings + + + + Enable logging + + + The folder where any logs will be created + + + This will be prepended to beginning of each log file + + + The suffix or extension to be appended to each log file + + + + 0: NONE - No logging + 1: ERROR - Log errors only + 2: WARNING - Log errors and warnings + 3: INFO - Log errors, warnings and info + 4: DEBUG - Log errors, warnings, info and debug + + + + Audio Properties Events are sent after audio capture is started. These events are used to display a microphone VU meter + + + Event for most mundane request reposnses. + + + + Response to Connector.Create request + + + Response to Aux.GetCaptureDevices request + + + Response to Aux.GetRenderDevices request + + + Audio Properties Events are sent after audio capture is started. + These events are used to display a microphone VU meter + + + Response to Account.Login request + + + This event message is sent whenever the login state of the + particular Account has transitioned from one value to another + + + + List of audio input devices + + + + + List of audio output devices + + + + + Set audio test mode + + + + + This is used to login a specific user account(s). It may only be called after + Connector initialization has completed successfully + + Handle returned from successful Connector �create� request + User's account name + User's account password + Values may be �AutoAnswer� or �VerifyAnswer� + "" + This is an integer that specifies how often + the daemon will send participant property events while in a channel. If this is not set + the default will be �on state change�, which means that the events will be sent when + the participant starts talking, stops talking, is muted, is unmuted. + The valid values are: + 0 � Never + 5 � 10 times per second + 10 � 5 times per second + 50 � 1 time per second + 100 � on participant state change (this is the default) + false + + + + + + This is used to logout a user session. It should only be called with a valid AccountHandle. + + Handle returned from successful Connector �login� request + + + + + + This is used to get a list of audio devices that can be used for capture (input) of voice. + + + + + + + This is used to get a list of audio devices that can be used for render (playback) of voice. + + + + + This command is used to select the render device. + + The name of the device as returned by the Aux.GetRenderDevices command. + + + + This command is used to select the capture device. + + The name of the device as returned by the Aux.GetCaptureDevices command. + + + + This command is used to start the audio capture process which will cause + AuxAudioProperty Events to be raised. These events can be used to display a + microphone VU meter for the currently selected capture device. This command + should not be issued if the user is on a call. + + (unused but required) + + + + + + This command is used to stop the audio capture process. + + + + + + + This command is used to set the mic volume while in the audio tuning process. + Once an acceptable mic level is attained, the application must issue a + connector set mic volume command to have that level be used while on voice + calls. + + the microphone volume (-100 to 100 inclusive) + + + + + + This command is used to set the speaker volume while in the audio tuning + process. Once an acceptable speaker level is attained, the application must + issue a connector set speaker volume command to have that level be used while + on voice calls. + + the speaker volume (-100 to 100 inclusive) + + + + + + This is used to initialize and stop the Connector as a whole. The Connector + Create call must be completed successfully before any other requests are made + (typically during application initialization). The shutdown should be called + when the application is shutting down to gracefully release resources + + A string value indicting the Application name + URL for the management server + LoggingSettings + + + + + + + + Shutdown Connector -- Should be called when the application is shutting down + to gracefully release resources + + Handle returned from successful Connector �create� request + + + + Mute or unmute the microphone + + Handle returned from successful Connector �create� request + true (mute) or false (unmute) + + + + Mute or unmute the speaker + + Handle returned from successful Connector �create� request + true (mute) or false (unmute) + + + + Set microphone volume + + Handle returned from successful Connector �create� request + The level of the audio, a number between -100 and 100 where + 0 represents �normal� speaking volume + + + + Set local speaker volume + + Handle returned from successful Connector �create� request + The level of the audio, a number between -100 and 100 where + 0 represents �normal� speaking volume + + + + Start up the Voice service. + + + + + Handle miscellaneous request status + + + + + + ///If something goes wrong, we log it. + + + Cleanup oject resources + + + + + Request voice cap when changing regions + + + + + Handle a change in session state + + + + + Close a voice session + + + + + + + Locate a Session context from its handle + + Creates the session context if it does not exist. + + + + Handle completion of main voice cap request. + + + + + + + + + + + Daemon has started so connect to it. + + + + + The daemon TCP connection is open. + + + + + Handle creation of the Connector. + + + + + Handle response to audio output device query + + + + + Handle response to audio input device query + + + + + Set voice channel for new parcel + + + + + Request info from a parcel capability Uri. + + + + + + + Receive parcel voice cap + + + + + + + + + + + Tell Vivox where we are standing + + This has to be called when we move or turn. + + + + Start and stop updating out position. + + + + + + + Starts a thread that keeps the daemon running + + + + + + + + + Stops the daemon and the thread keeping it running + + + + + + + + + + + + + + + Create a Session + Sessions typically represent a connection to a media session with one or more + participants. This is used to generate an �outbound� call to another user or + channel. The specifics depend on the media types involved. A session handle is + required to control the local user functions within the session (or remote + users if the current account has rights to do so). Currently creating a + session automatically connects to the audio media, there is no need to call + Session.Connect at this time, this is reserved for future use. + + Handle returned from successful Connector �create� request + This is the URI of the terminating point of the session (ie who/what is being called) + This is the display name of the entity being called (user or channel) + Only needs to be supplied when the target URI is password protected + This indicates the format of the password as passed in. This can either be + �ClearText� or �SHA1UserName�. If this element does not exist, it is assumed to be �ClearText�. If it is + �SHA1UserName�, the password as passed in is the SHA1 hash of the password and username concatenated together, + then base64 encoded, with the final �=� character stripped off. + + + + + + + + + + Used to accept a call + + SessionHandle such as received from SessionNewEvent + "default" + + + + + + This command is used to start the audio render process, which will then play + the passed in file through the selected audio render device. This command + should not be issued if the user is on a call. + + The fully qualified path to the sound file. + True if the file is to be played continuously and false if it is should be played once. + + + + + + This command is used to stop the audio render process. + + The fully qualified path to the sound file issued in the start render command. + + + + + + This is used to �end� an established session (i.e. hang-up or disconnect). + + Handle returned from successful Session �create� request or a SessionNewEvent + + + + + + Set the combined speaking and listening position in 3D space. + + Handle returned from successful Session �create� request or a SessionNewEvent + Speaking position + Listening position + + + + + + Set User Volume for a particular user. Does not affect how other users hear that user. + + Handle returned from successful Session �create� request or a SessionNewEvent + + + The level of the audio, a number between -100 and 100 where 0 represents �normal� speaking volume + + + + + Positional vector of the users position + + + Velocity vector of the position + + + At Orientation (X axis) of the position + + + Up Orientation (Y axis) of the position + + + Left Orientation (Z axis) of the position + + + + Extract the avatar UUID encoded in a SIP URI + + + + + + + + + Represents a single Voice Session to the Vivox service. + + + + + Close this session. + + + + + Look up an existing Participants in this session + + + + + + + + + + + + + + + + + A callback fired to indicate the status or final state of the requested texture. For progressive + downloads this will fire each time new asset data is returned from the simulator. + + The indicating either Progress for textures not fully downloaded, + or the final result of the request after it has been processed through the TexturePipeline + The object containing the Assets ID, raw data + and other information. For progressive rendering the will contain + the data from the beginning of the file. For failed, aborted and timed out requests it will contain + an empty byte array. diff --git a/bin/OpenMetaverse.dll b/bin/OpenMetaverse.dll index 523f5a77ac69710cbb16aab9e2a46be383011862..7e742e2991b49cdc4fc146b435ebe4304bb14e2c 100755 GIT binary patch literal 1812992 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

0JAz=*XkD4l?ii+X}8a?mY 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

=e{ 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 z zF(je@QBh=7b6|UdVp7+==!G_)4@y7=JYhA3ZTtg?J>Z%uz*So=NRyjyJh+KmwNMAw zjf!cLHX55H6q!X7DrFQbg}k#$J1Ws4rc{noD9m^I&ll>t_;XDz5OjnsvQ$OfN0X{_ zb|k%CSeFjSpd3uVc_fgvCVj2pUK$L>k8F}&hoNBn=nI3sF!=kyGSkV?o1^IE>r9&$h;6%B>x(C&!}eGpX48BPXu)3V3WZtYl8LDF@H+Q;hlCG_60X{Br@tVJnR6-%;VY}O_zSe8Z@ z;px??<*j6!;Ad;w^UqSM3IY|Ak|9e7O0rp6?AfkUPqKUSJBWfCl5-=|Or_RR$UC}u zFL4ZINr)}*+e^tkjDN&wuxMI0+CsyCSz)}_L_ji+Zj&hBg^19v7TSoRozYEhc>|9l z^I(2DeZQXbsL}5Ioz#D;2>K>28n5zbcq!V(xhMVmM15!?m7dtO`uV>+=yv7)`j;ni ziZ<$|yKC zQQ%pFVM3$!(f7D{5_@E@rbo}E

`ag_?IJJ;#=4FO^$dJ+@~ml&zHUK`lAHAK#c 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�q}fMu|>Zm$LXy?aQIvGc$CgHKdyr^mNHf{y;S`}g|y^Y|;w{x=`# z^7&5uKFi;4_!Xu$CB@{*wa%BK1Eggz4w5fYauGebkL3mCTD?H%@Last@2dN$IQjp^ zP|JS{T1e6GG%Kb~b^eosC zlVPBLr2E?tt-H1S*Xr23ta62<-l~;tm+b7K0n#TY#MTo35TKqRge6Zx_ZKHI3hxni zRFYB5*4SzH{&&gMlflO!kny zcYom6XG#laC_nXb^*3TikN|O~g2$};yK?t^G%WF<`{RYAHb>C?tZxGX>(}hHmi`2C z^zQL*l6;Shf%@ef(JrDO(mLSXzC^Zc%yNmkDat_;%`{;iM?s@k{Ug(0}vkx>gg^9wv zA!o?i^=9ec{@4G$j+QOzHkJnOH}fiNkoBf_;sAnf0>rXV_fLfs+ZE29Sj?9`M4Ak5 zC^+H(!V-ul(*(ILycWi)$@}g9x8ALm+qC{9%F^HB$IrJ6Yfm!*KmWPtt%UZQ`G97M zSk*Jr59cky;Ces%5^ayE9l@~s$L*6%Y(FjECDyk!^uX~%ulpisX{qIY-EaTj;+Vh% z`@yyBZCA)#)>8=G8yX`v4pVMYQdtOnA!ybU@S<-PT?7JvKxthZZw-^*Fu?++&Dfj5LK4@hoB*7+OtmAEj$vWtY0_VYY-S6y}0RoCzOafi9`H8zn{f<5XW{wr8uT zX6`|rfAs2(c(eWeRsL-asyC{3&&zK;pCL0$iY?8d1T^I@i+W^xuBiRht4%8?Pb ztbM<8(G(sWfL3yq7Tu#>ttq<3of%Myv3NAP%w~?UeW^Njw$g$}!qqT+nVd0S-~tao zWk(We$xgL-qbgtIh6(Gr9etX1X?a*0Je^kSCl4~WVGVYqpXhnF=ir{!>h@*S%paCU zbXqocJ6U2qGXw$R-}O=-eT?ORQ;l`UYm$N5RZX+Zbp&i_87||F4rdFIIC_8wxN^n$ zgxr^~K>srza8ijy(;5ya(!P@=8%NbaithqMV!^@XM6YSl7qb}})(p&(^aqm0@3a8K z(kf#xTkDcE3n!uP&?spxG*|cgug~|etgU>X-_``wqRY4@uIMV4Y~olHGRVC z&>7sixn8?kX%4-KAj>&;Tn~JfpcB;I5hXs?%%kZ9QPd3DOM0`MqATd7{v~dl^JuNZ z^|bk|=kq1_v5rbJa5(-Hnud(Vr||9~ISr_HGgF|`6-($7Wa~!ev?BRPI+s|{T9=;9 zAjMe^&z1hNX8P@`<5LgGAO!;bPUl?VxB7O#c=B%Lb{$SvGIM#T(Z*9>KZ!O>JR)pS|7@!euYzGA79+ap~Dy`sN66{QTwo{BlDMKRMSu2?Dy51Aux+Wu zJag-)A{-Ovu`mv`+mqeOkvb$_KgxZ0%`_byTUQ!^HKpDJyd$VDTszbfJcJ`Vf!S!S z30Q~7xiOMY$6z#1C)%#ovx0j?xUiFFjZ9Qp8-HHZqunPs3D{Eli|l5wbXIWYD7&9A z%*Ofod})bSefKTR5enamWI!8tmMuv7l;FBhu|@241WRxTGMYH;gYv} zU^FPFA4<}oysy7ZQU*By#%Fbli6?!V`EX5ozF%hEaqPhDD?#a>tRw00-mP3-)4#8? z*47!3p_4%0$=o&83r}hdm`+W@2h2>V9ntTe+I3p)*k-0Bl)$-Q#_#o+pLgn->zm?E zS~1_H?t^?sC=|fye50Yq+o}skG;mg(YaOpC4I`tix4P%tEY>OQ`$y8>>T_AZ+TKP*SR()Vh^t#?V%Rh&o950p za*}2*2^ZXAq&;ooe_*%D&JL0@?`C{ip}sGBhb!wPut=7KBdH!&N!%dK?Lv>UEZGsA996otdv91tcGn=CP9I^hd?7Z01<Y(2+r`7w~XE zMUO|n8y_$pH`|XkGoa}NE@|_xhsM7;j>c6X!Tjq*sQ)mCyg!b|-U%?wqE@{39)6b7 z8zefNW^!0_N56NM_VJaLZ1XRi&phCJYOQ&_O7NxRfS$0kreaAt@|)G8NcN{QK)ENG zhf7GDpv~D56E&R84u7<})P3I8&z=jq=9Bt>J6?^!?<9S=Z!4K+@#!W{;OQQ9F!aT-p(ZFF8Y3)KD7j-_6Z|sB- z7P7Cga-r|>C(`gATnh$0V z7!6PyDz_`a_n3L^nK91a!K_VG4nRKM_ZS>!kN@SW6I}R8kVpiAuc%nww`|> zF0qsqi#~Dsk(OI zs&_<*OWjD|*87=f^1K|aTMW6ZKxpxJR}?bN!Rt`EtPrIm#*{Qa5<8{VIoE=(vD^5z z1@fj^BKJ3<8+-bmpkt-C1?|3C(F5rl zs9?PAXMJOsc)57vA1E3&oroj11>FG`hx3X`~#%1^H+6vDY}Qj30N&_!yhRtm=)F6Ij8Ic$Hl=vr+SYE1$MA#3Q{{ zI9u078_|!)*S2k~L^@Zu3tGl}?%Hy_Zs}R`qC;uL4uldHv{+rw^Y_V!Nl-m```fIouI&asXc^K#jEtJViW+tAKYHT;ofb_+U^@v3>OUdu;Xy*LX5?;;O> z#+$3*VEMtfPUv6wnLd!i@XxTp=rlg5gG6J`cr?53U*}&ePMpj+q2Jg3 zd(#Q6TNa$r8Ba^Qv~i{D&%A`E!)Vc6C$e^rejey|nyq^#rUTP1kEoqf?K=?QplI!l zX_}vHM!;?N#HMT)K;Jm(VQGP2CHB?ZyTem-OpWJETjn2K1y55u?L0lq6Uw z`#x7L=&uxsA&usJ-jm~8r}aiUa8a3(>)j$)@dB+^C2zeyZhO$Y988OvX!OuiY2VM( z-`iSFdS0^50l2hA&q!N|!I&*_6GXtuspb;(TC9~T6+7~n+UJU2-0nj@EIA49a%kIg z_C+u8i#Ja_rsi=hU5zQeP-$Ibn9kJrlsb>;;Y#FazAxGK>|*1uRkIAv&fSm+<+Uke z&soKkX3g6;h-tr)FE?v*kP67$9Z)C9$_akHu-Lb2?x8S^3kV}lA>j>ia^6N z`c$ycCD?U5!QS_O^t&<`BYd*k@^~z}jkTNQLB%;3CkM8K$PEcm>{4f8nIUgh3d8MK zR^~~0Ka9&+T27zf-Z?-b-F{8KBCX_<9LB?LZJi6n?eoe!NoXd4;FldcK8IUF=>_aK zjts5JYp3k)z$lQg^qdw-I;2m-%<=|F+(Se@&ERJ78lrUIx=PqNP#7W275d~o6$_@? z>*}4o7AzN}U&TJp$!B(0No}C0NJ9scLP^v}gtAs7@gk|((H)-0Sj$V%TXKCaOX!k9 z#nv%oKJN*-oj;$}bAnqcQHvocm%Ca7$~ze5ohZQQbR~yM2=|6cp-4$vu?wm(5&7+v zKkN*e_~1Zi+Pd^mwv)x3Cka_v^k?3YPMi}l;_Y!42~c%;H|pA`Zwb>kLY*wIQd2%!%XO57z&#NVQ>zKuK%(2&SOd*6s>+UmM zzM%1%SD}q_;^tzY4Iy9y=&6ptu{)e^(P_~JTJ8GT;HzRv2fdw`K- z?0-hzP~Y2A*^dL>=nAWtN!-ZH<8{?1Q-Uk1SIo{tSz08DM?&zZ`_j29IU~zhY)J52 z?9KIc6shpsBa9Ktz$}!yu~wN@CNb@w>CJzZPi zfQsLNvGT_Y+Zq#8B=6bf^yj0j?{~TM>)Eo&l~25c8Ajp*W{1@Z@G!rOn{S*2i|vf> z=F*@;T8$AvS#&-0wJVVG2+Grz(OuJs%Avn&s@+9{IpS%hX+u4e8IcQc1a25U^%ieN z4?T&>#%kfIaY;%K>*#K^LaQk@8if{p+Mm3s=>4=t$5kp^TjndE$P9ALjIS}`ITy$f z3HT}*Uq{8YEL`xyMLPKksKFU<@z<GXo4^i(is^EYU6RBwLP64JH<&txfVqQAX`wc#oj1CI zYOtbbH+W$Up|AbLLScKpCrpn-mH>&~g{eG`2{l;yij?F0O@}X-T z`~oCAn{@VqNFIR}lZm{R-jPox23V2RK|7}}ET`avMl8X?*jSM7Nk)kgx{sC_e4o)I z3$cGN>?J$wIvX*f&8w#?&K2NCA}#D-L>luxzGgRRU%E;yGDfftE2ywe)#?~e@vzB` zLl5tMgYx)CJ1V#4NS~ok@F^o7fLycMfQB*SGtWh$339MJ;fd6KX}x`Znk@hB9U&G8 zqoIQR2b-oxf3q7J*E{O}J@ZOFip4BNv7=lLNfdZ7XzjIxx2$A~w zy(!Ss5sgf15F6{(m0c9O_xhvBd8@CS& z%U0{rFhyIfW5mo&r8XD9j$o%MTO3uei$fSWOSQrR4m57nvNKrZiyXjo7%$Z&(F;Kg z&Jjk7dfisHs;oCE@*koe4rUkbs3t1fCmDk_VC5h#N`hKFw3%=jI4TkJu{#*)AerOA z?K*ZwJR1%^r?-_1WS11!n4k8XIFLA@nnPq=*#~|(S+R9FkJ54!@?-36o|r=?V7yfr zX)EFW4fW%C>BnCWQp1Zqvfrj{n?W@;AUb==vNg%D&7S^F^OUxXgy6-LOggBw zS18ahHa^?Prz1E5UvzxahKJ0%aY_qOt8m5R--KT37RNszven|99G1(gJ$6|=!EG_J zA*HCzX1Me!0n#`(SZ5A%>>LHaHo<$GLkPaBwHY!x=Kv+Vv$E63=ho2*Hz3Yv{PL%mQckf#heAqsL{Z zCDtgsB`n95%G;TJL;V+5-@J~?hE$dXv#>*TZ^CXJ$K4??ZGc=Sv0hbKI!YZh8~o$2 zZnWN`e|b$6AV=BHKZ$NlB8z!=lC{xq#b7w(5U+NS?NGcg&&w~)#X^22l1KqEttqnn zA0|;YkIKDBEDcs96xq~)(WYeEic^F8AhuT=o|6;_qwR@d&)}tUL2IRMU|Fz zPAoEHUSPYCrK6urPR#2PhC4D6^#quBh!!M&-0 zItMU09n>EBY{6+m_HL1X3byX=Sb)v3>kj|ZTr0OpUW}!hyHEOb%Tim)@h*EX#g=v@ z%i%pt9LPEt#3Ij8d;*7}^vRYEj(CONgCAD>A#X9e-(j9+u16rf{Jz!_OF{q}!1#Wy zbl~(QrF7$ndbIbA{(@CWJ-nYNN4mXi@N<7H z=>eFaCGl&BPGEQzCkUiT4K0XW#MP@8}7Zs%)s? zIUccT?Bs_%C;DOJ=}3Va2P2*BqYX3xD> zydS;RRODWZ@K?E+quM@`?;pWOrd$~4<_EYI?og^!cI1-VPZJQ$_6*60LPiyaCy@GEOjg0 z^D!vVLCSek-G_#-TMHv=V6ucSc^cnVbU(mmyIf&j>?CSy>*4VOUec*^i3Q* z_KhRswQw24K}S8eP@5$NW*2JV?(FCf&yV8qW!=~@TE1wiW80kY?5{JT6ixQtl{fOEfYiuqCENI%T?sod{Yo_NX0oPsm9-A*l+z z1}AgO@Rl$xT0gC@hv$+w=9(5(&kIVKx%A!zjnB~+@k;PbIFVlZukmg*k}UvpP!1<# zZF6f&GgIp#W+j%@Eqhqn8nU^h#E95hF!SCbV^a5?9{m?(AXbibi0NzMn6eT-z!I^Z zKkT~fh{N-}BJ{mVfXXQ5+l&p9z~J6W1WeR|9UBV?WrPBRXLeoECpD=VEUE@3tG)I~ zf}R>Dm->g<3*TgZS zvkP5t7VH|fPKG&n5+3E4TXU9F>6Mz=PAEE}wDFu2d~;@CY&b>qxtxq1CZ#%EtOE!u z73k_d;oCyd8mEaKWU!g*F?yzhmom?NE@heyaK=b(*)n_S$NozvW98Kf9OH&D;}c`X zCp-7}%sclU{U29_WXbJV6za4KYQ@YxKAmmiB>Qr0Cnm1KcAnm3vd?XQ$g0r<#x62dw3Ib^^uPcAcX;X5Ee#T$VfU1EMo1) zgrT$6PGjfZX)hJ7TX93W^1E+jD6QOVtL$z*Aw!SAM|Z;%C3S{Qj{OE?mWEEIWxY+z zrt@zL4%b*R>QC~nPIM+LhdY6Obc!|dMo=cgXLOHT#diW@n3;Jo?bux1y4J?Hokz=d z?TU16+IuZ##m<{f#ae}qYj+@wY3clOghQUUn3KS^qyD4cZVCO`uiDliE%g|*$X0J= z5_!^{$)40QfDT_UkcOe0=d#IzWm=|l-anKqQ*7hYGDMVOVA*bE6C%^CO<>pMhi>Um z^+hSyH>D!ALVaM{pEK_&KXhK-(}8zfa&S|uvaQnVxs10SrhV6R0Oy(xf2RHCdB?!M zZGC$~wbK4=9e_^<_^!{5m^@DzUbFX!TQTz+#oVdollAto_G$&T585|IM-;tmGhE|=fYussTyq~9lySypv(ecDiTl$8} z3U{Qh+I5S%$2MI{Jn9n(wP;VTPy9xF2A`l35IqC}KFwF&+$cRCPJgaCY;QcTr&t?! z7T&gCPU{6Vhcbb08Br)ZzOAKnx9$O}N*`7szQH)wXX+8vxn0zmT_iU3;gW8vFWgsi z0-_$HOdsLY5rw&iRnTG47(;*xEOm>DaBtp@He@*WR5DR%dh7-z#M-iDsu=NFH||6)vM~uM^Wzd zGE<;JnLfnYR(@Vw>0|*q1F|$g@$l9rjOFa81Zg zjz+GmSrR_nbJY7YkVSom&Rzbt#{iP}~DoqJc=?udeWBZN40)xM^`_I9=MtUI_1@c&AP^3+QRK{1Hn+v*j{{62pk|F z-^;yvC40$b8bv!7Tx*;v`d+AO*LAp*Vhqk$XTHiwujmmDzaMe zK|}k!(5)Y{^46_Je|nhhoK{xj@-(_44eq`8z0>%p$9S!V7NsXd>t1&pwT^2w3pT)( zHY7i-Pu7c)zRp^dl%BYn2+xz)K;F`iHq|qI-^v~c*HF(X`N&yvt! zF2Z*980gTUE$qWQ&&4jbwzhD}CE-R3Uxfn~AtAJuEz4e!{byS*B7_sNP3=_^mBhb> z=DAn#d5iP7Ca>DR>h@u;p0M@lvECzMujiz)M!KvJOK0m{>hu)NN%=zcQX_EeYaSi? zP*`qLtk7GMd1`t+^G~eX^^i|aZ(;r!@aiu0uWNqdZ4f>D35?1pr(mRmfLIvoobXT! z2d69eZ1-isy!u9l!?E4%^b_$r-1U_>seBK3by>w1$M#$^9{`4bNhD@JbhIroguUrs z6kls~4BrZiMSGR_Ayw%G&o2JWoyOA%*&1?j8EXY)b1zUPdAWix8b)j{7JUxkF{FLrD)tL@P3y!(k>-sW<&HC%UoB1Oou9}z z-V9ub=Xo`AB~facdsqMB-@q%%p3MWBde~*^wlz+x1}z+$P)l)+GDp@YXm~Ve-&U7K zv!kdgS%i=IO-=lm+=oVqkL^XZ`|?i)J?zgjda&{c^F^bE(s_7GQ#>|N(@AHn&$Ky- zmqw5SWL9|n!(dh<8e3rkRjedUfo`izFVZ9bBlGbk;l; zJVa!R&A$=5!4H`tLtl^ilOLg835-R(`BVvzKn8Xr|{o#Oq4M^l1x{z>5w+h8#wrz03! zPYPq)M|hf1jd{X?^Vu|vrh6EU6p9!2)nFmp`Cl%L#u9P_A9-VEwEFw`llNETbu1=n zpl^RO&>NUPo(7Z47||5rgPrPquyNmfxA~t=?eJB}yhnT@NS{x`YC5FH&)Zmx)zIR~ zv|gu4q&0;jt@E8cM4YElOqI>)qreJ(EH7+tcuj|cZA1IslZ=zqYv6q}ZJg8Lm5euX z|7qrUWPg}@Z~EDTJ*+)dQEc6ql{hSR1MrScyaU~P1zn*-Vj~Wd%)#I4PK>?#( zXSgJ(LvP)|N9wW}wl!&WGGZ%{q-0RnCHlWtlp(Co@3qlesfh>wn3_ilOiqDdzguWI zx>>5VC^0CfUxfeCc$?HgrT_678R{y}+uoY-uGKOayG9;nc|wQ0s!Jzp>1y|xbT!V@ zn3w3fwvgoXBF}hQ5~guY&0L-8@?hZ!zK|_3xz>ng)mj;m$by13dv-#;g!5}djJ~g! zl3g;))Gd7@4!JMu&K^hXn|Gc?r2FKWtZ3?zy%m;EtPu;GMz(%398bh<)8qn*FpFgT zCiBL^?9qRN8HlBeLOf5OUGeq}7Nn2~L*pQj7s`BNlowWc=C@gpxZ*~5E`lC|70*v( zCxr&@Rji-B|om@aNp+h zL6^`6zqB@l3w5}G*SBg3@@(BxTIcNjgPag?Kv#^}ET~=n)G@OIzEwEwQ@ec%|Fu1~O1kEg1#JG?%i@HNy7ft2SSB6# zLE=AegWW5XG*^#Ecf5W^s<&)n`upahv>u9d?DM!OI&T~cUDASS9-NrzzUZ>D=iIZQ z?XH@cSDB%cc9R@z)ywE*<5cr5hqb!ClbcSolKjc@`r4-WiL^cZ%0Wn99tjXP;#cRPwK-~oXvI6TUGsvXnItuJD_*IEdrZLkD6AL9wE2Z9wlG*Dyd z(cfHCF}zytXJJEe+ZEar68q#9Th4jk1`7fvJp?fEA!!hy)WCp(2E02Yg7ntKdaBvP zjSI%{Vl-*JfttY7%wipFBJ|t7<)Sgjb~NR_B}SZ#ZZu=$T_6g|q3x z>eRj>J5VA|4H-gRv?Qce;d8DpCj-u0@Ps&-VGIxQxCOEn-jUy9aIM1u@{pNeCye{f zN_uc3*OPHYdi2}aDq3tHn%=3)vNg0tsU+K64kEOg+&1dxq^fvcw4%#N`==jSSc8*_ zxCT#!NZ|qS?vr5h@5$on@5uKAxo|B!5afq*Ae(CGEmbTK*(RjfSbog+=*nt4fzMN? za-4i&8J|T6UjpK^O?-Fy4Lj}Si!{d)kng=k6{H0=^20pCGFTwoOX|gY0jjd&Gnuvi zxLX(r#rpjTUqY#;wP|(x+HuDQHmN%7dU3zie`@c;ofS?8R8Aky=Sw$VYe)OCQl-gMk%( zY+Fw!hdtqI#X*yiel{k@Xd%WB;OaMH{=mk{_ec3mZ842L5eL_yA$=f{gN)pWJE`)q z>u64vMZXe9VlHlHkxw6lFO9l}4vfHy%qIlN7v`N%DHvk9@d}{8iOf&+gjkgAS2E3Dfof@piM~Y*Z~jxblVCR zrct%D;tCqZs>S?A|6(tlaRa9vn>arPtD!~!hLvQeBTV7xvcKRv5t$saVn&0{7$(HS zVnaL(51JTsBPT5daKSmffWc&i&+!CM@}8P$2gK9+7llVTw*R^M4@{=rJc=ENEFpmf zEC4IU3EWVVY4pX^Py?&6sfqouKBM+Kg28HheP;_+2KKU*3~^0ch!|_9Uf+g>(1z#{ zY)o&T$^vFQMU}K?*U~2hV9a66oyU(eVn3`XblXWgBNjRPmauRO*WMoxm{+?MYr6e! zGxs!&Ti^pm(JH3&lY&9e%wisw$3Y+34NqFrw|5)y(uU$o@M`EuWnf%OeQ2H@{oN29 zvo?%M1v{9yiq<)xUZPOY2@X}V<_I;=jw&A zV==82dFKt&Q9HfD?Wl5!s5AikF}khb=guz z{ZLd!i1UnoHr^vV%n93Ef>L;4oTqj#R@60)B+ZQF1O`8k*EN-UIfiw@t-hg| zqi57~_&^`3=MqM>ra(OQW9;^A1#U0McRH($le~B0thnxsN;mZPqLz%$>f0$jJ1bax zds($_>6zb3@q!?{q~B@lMg9A-{!Z)fY;J|vznmf6)W0979k%wI{$AEMHg&$Ff6wU2 z^TM6pc*{lF;{Ac=1O+V4sm4a`;dyJ->Shl>7VrV8GWZcONJlhvNQSni+b{+N_ZRLOKO|87~2afy`B5@TRA9!I<$RW z-@)^YzEK85-hc>oUl!(25WLbBlw^D73o3t6|81xR<7b>N5Af^lm(?%Sd0zd|r)k1dzP%{8o>{hGzL0Cs|0%TuZ;Iy0`Qly6|q3Q+f(? zaC}+yn2VS79ooF4-)W2aG5;|WPzTy0`=r649(Y0}<_Vk_J$0c8e0N%PPYV+KdP5~Z zUc;HNC z5Uzen|Dh+CXUjQ|s84%1;B+3lIRkEdLA9CB7c=a%#Vnz1%wNzHnz%i)jP`+crYkdh zOAsujNGI~lSfCSFQ-ai)_mB-Z8=RgOWX41-ID;%O-;tfu`j5GSSN+x=cov$Y!x$ZX z8WY94U0_P+5=hQQr3W}pYp%^2FTIclr zL&1Ze&j}~q8Dtv0q^D54jFYzJOlF<_tX1G++VIH}AVYC#Bk^#nIfhx`8@kAHW8EG+ zhCTx`WFA@q1Bx^EyrGCWvCd_z=pr~IEDAJ%;_wA?#qtysV+N2iM)y)TQf3-D!`0R= zz(E3N?>Vx5flttt%m?#_#G;>Q1?A|2R_Imc20B9<>v3>~PR!JY!VAemXVMa?Fn4f0 zznC9OFtlgJ;V|1fdP85M{m^3QCf?hG4P@@%OrFE>mSLn7ZnSNHGmspQ4od=O!W-}< z62$1u73Ohdj=2Ooqy_uHIKdt-5bWS`@I)6`cOWbDWnM)WAkSbAcK`{zfq{&mS1Ci& zz(3$bYev8*t!tSpEGP702Ec??)~cqM?KW~tFYpsK3cY|tLtS_Wu0`&cD|pH}m|nr( zBSCv3H#`k3Z)=3?ff?Qc^ngzA0pkeXv#h#*s0y9oM|3Rw1pbyb=8U%RIUWW)3-`a2 zp&5TD1?}M{v^PEoo~OBhc|b}n_X`u1JdVym+f!PIw<9WhY3D(PN+O;bg@u?MKO+IoGXhou?}xcXew*@p_02f%NTk$Rz=f^|m27A?%u7eoCeZZkY`5#~?>ItAKy?x>}W+pRcMH_|_>?8Svkfv)qw; zB5Yi_Ii5?= zLKRVcq7LpV+Oev$i06b0P{T^|L+HG87~kfj%mKz*J&3dMPT_W*sze$$>Y>jVJ)G9J zSc(>GnnZ)Zsj@UPQ8yimZ#(%c6>kryq);zvwpN`iL%w3Z(prHMGdI*GwFYTy$h`Xi z9&2zq9bVy7bHD4=PmBHw?9-u5QQYa{phG3c9X+B1jX>=*o>sgL>S6y7 ztuGPXm>c|hxT9|;9Y&0uIexaTlNR3-XA+7u_2=DBd6pJ71>ufhR%NUBln-+M&?;hC zPL_iMub?*-z|S?4cpKiKx4uk1mSqX5c(YVTJ$aWd$vmjr8sWjBS$ZE`Gapv1t)rQj zrhpTEk@1{(y8NcF0bBTt@AQ{_Gs&!V{jeN+03`?Ii$QId8)m9X1DKXMt4>8!wnmV`(k=+sSDf^y`i!gz@>ccxkErg~vr7 zYAG3qZec;JBB`%*3r#e{#N+i z8Uq~Iu+SiCK##u1)hKPL&_7?PA@Ci} z4t(Nw+cr}$kIynyAS79df={%rv5B%4Vvmj5hZpch<}hU2X_u^@ge}~P7e!hInSc|s z*C!9cWtH_=37Z1H+4}VLb=5yDC+v=NWNmjQo-Y@D7|`#i1v;Ww&c2u4SFF5_r8+-= zM}RJ+efW!2nK&j!To2~GD$~^XEEA#-*feWLc zcYX__6{t=`HukK*nrK&P!=g26nJA^TKI~;e+Anlld7f4nJF)kO?pqma(dm&2o0yMr zeZe@R4|vBhE*8vssD55!Q=W$wDJ3<;tVJr@5}Ki+OxBjxF(a5r-ovWL)3hAl&=8F- zQ}jKo-BF}!gTEI(k*xJ{`@3LIbZ}P`aYmymZ>WoY|yA!9@nohPZx2HB1(rtC_< zsEabI+_B4kEw35x$38oH(~A$))1#4B!^dXi9QcScT~%*QJ?@aI>s2_2TF&SJuPR@j z+M<$^@OXC=T|h^U6ZjA++RYhkJYq*~Rh^tM<_U30-?HMo0vXMnz16kg<00I>MtEudp208pucCCd=s8~L{vdJ=${mMM>&y}S9_A~CMAY4hf*(R z7rG1qS{NDdPI+cqF=v<0;Tb&Hx9PI9_*i5U1`zwK7;Vs%j;pw56V8m)5%0)1PU3z= zW7u7K8a$Du!1hN@1V2Uf^V$ui`rgH?(5QPVdU+U*M?J2`N{y=- zw{o;(P*YiVa4*jXqn01yQ4i~B^y2=Y-^f$N7cnElr+7Dx=nF0Sj8m0??tN8xiQrgy zs@X5bn?t8CBmLNw1A?1*LX-$ERUW9UfjJakZ%6M(A`itW6V|nfD9Tf0>vOgLN;P~; zE-4ccUfG~!<);sxNUu$!!%m$Y)J+V-nW((@&bO`k8|@G)CYF6T7}-F>XW3styML%( zL?qC!;$7V-8Li0>RZm9yDl?TX*70@7zqx8?aQYdS1*J@mgyX$ZV zXN`APTHze@U@iwYjKwv>x5?jZ)Ct ze3DjJfs9rI43@A3tP~wi4eZ4$eR-itnu${G52lB1{p<+4jeL@C7rGrUe9DfeXfZl3 zS`!VPZZU3WqJ{{S;ZwM56sEj6YsVJHByY|~Q}HVU#xbgAvEZ}&?0nu? zVDjkjH2agVBPqXEo{WF@`$zSx>|{;8}HrQkCiTB$P%Ex(^6bYI~}=QoHpVg`M17QI8{;uUk`%u{n~nXAcXWvmm=@>=H?dA9I| zyIfi$;r5feCzbb!4q)yJhrnOgAFp?%t?PIfD>tWHX3&~5BIIzZ=tP8s=Sm}T(8ZJ;~png_oAS3e} zdF`5KC!Vc2TDv1IW{(E8oct`hs>{)>UCDZt682}5b>pbVzM|5q$_HvMS6z<$VJT|7 zs~o+gx_)9iBA==9;sbjm5seXh3V_n($@|sESQjdh3R2)4Z9J>t8vAeM<>0-~%x?EJ{jSikvyMA=v zc=)MMAm=(N-?hq*WWDNLovbHDT$ZZn4UJvqG$|)uez{LBM6for*8}f1&~oe#$HQU$ zSgTSrG2Rwg5Bv?+H9utRvlkMj75+!eo#-m&q(Da>1f0~>at0(y3-m7Ydo;2bj&de@ zi?z4FwXT;k4^3^8W9@hvbJD@fW8*?Nw0<=QRXM9p{oG^S$HcrkGuS`LEA_TMW8MUkW(y?kqBTHx)VDxX<I?zD+zSaJnbe-ifGF>z=+$@mZ|{YmE;#AXoSxXp-2O)V4_du8Q!F`f(1P zRQ}Y$gG&2+kTraoW3I@jcfYl7*z10ynorzW{15bi>#}pVaOXBCE7o{8u4WEY7Vu#}m*X4q{@hB6&t&CdQ~p`W!TzARW`NBoUQ7#QBe9hv)) zXW}oSPVX>ABSs(iD&X$jj#x^fe?uyJ5&Id*E40)mqhnbTHjA5r?E?l?srCYSK3wl+ z##27$ntvCa=XxRGj4mKot3(|ypaTc1Ir8i96|GAmPO=_`I?n2K-ek_PQpdHkhbio_ z0K2t!4KRc6-JaRYZ!pyRY;DQySF> z40;=lin_kMA208_ZThOpXT6(`I`ZN>=;ir1bk7f%V7186dn6O(TDuKhH}UMq2U%_l zl+nKO&N1hxBg4-Av96?AW2j13Z}v4tVdh=lg#{h0S(t=WsTmAox$;cH2q zbI;k_?i>T0kkl55_DPhqTzjDCc4UTlA>~sWMM|nCIj@XoKl=2vsr8_O#o06R2h70e zIQ2$sp4TI&ICFVRBlY~bMvvoYU(B^@kM@;!f#8WbC(f*bYpgM1iTg6yZ1O-v?Y4I8 zAn8t`9Ap0`-|tl|MtjssXz;hPIojuoOjt9?Ec454kqBibL& zd?V%L;mLhUYwN6qv2I7-v|P0Wl-+~mpV^Di^_#Et0XF%ybTFRk``Q`xb|oFnmd3fM z!Hfwj!-9L@shsD?9$3t3Ro<^Ej#@@}Ewm~7P_mX3tWs*d>~gfPW0bl^n^`C=Q{^)e z3z2VtdwYLJ_BTo^?O*LB>T70>i*rd;-8Fn1#*Z%&u`JRj zC9%v3wa@|86JZb@22>cgJyEB&9etT>M`Ucn{sn)?+Dx27!B+R{Q2mvOSp#baZ$L`x z$xt#*zwFd!arzT6 z_zKt;@wN7No2K@@)BIb4z?wOJIR1HAId6ArfLlbL_1;qC-BC(A-=(~nziKCDHLF#u zW9?Ku%e(B%?adC6Dv#EbcfLXRh>nqvRVWLky-H~hk*D6**6pQOD<^yEH6Z5>I2%m# z6K8+IYM^EPjMYW5lh!+Uc;V}Xht>2Z39o%bw^ARHloJ7WGu>P;3IoweVJnBX)qiGWes`Uqbwtd_E4>D zpE~^=QF!>4(ITXk=Og&!Re$v0z|YLuhL~q6;+@Yob3${!n!nd&zzg`GbE0d_Prz9 zSJ#MDi>9pag|T~8HL|v)m-1{{FQrE5r7jB_a4nAs3(Doc@Fl)nSpn+dS5FI^{%Ou6 zSyG{GSqV?dnG_iYIvThx`zZIB{n^F3+|iWm^#T!&*V=Y+T_DtDHH5mnhp=|1qUA3I zEmo*|c#1#^wc8pM^!4er`o8jby*I0ep2r(y6};uLa@cCYbPO7oY;@pOYe(V)tY29j z^63#%imY6LK;+YvXBr1CHP*5ETw`6zDy#*el=l!0VR>(Be(U`OJ*>6yrxn!I@fu_B z>pAW?s)AoX9fx1n=;1Fq``}ZAJ>Jbc)KXEb)Yv>=ODqlTJXGb&ZGRP}OYM^$Lya-k zWp|n#6g{>_rq`(8uTQVl_qEu{Ku6`}wzPt|)IRCqtd|kDdu~3Iw(sJ_wc)On;9KJ0 zoJCR|xA+HjZF?h8pXd}H#ruNvOnE~~4qhl;i!*OO7N=6HIkmq;X+*hELzN{NZt>=axq&%IFY!){AIb~ z6j%ApSTlX*>QX#quX2-x+z}4YhZFzoF(Lb$_d`j8Mmg8I^yP~ImFr)kMq0e9@3sw9 zY10q7v0I5=D&HH}%O7SaWIaC=9$4v4dJdKrX{BJZlXsqdk!RI&2X=gG;kGTvu|3Rf z((+B&`S{heSzxxgs;fLtOJ$U8c?+NYh@9O`%J{*TzVORsO&@D@y9eU;iTuWLU4v6L z-1Na!$Z00#fiuvi{g5*B4W8NCSurm0yTN0v=-g`);=;vEcknzugjTRV9N4<1>+y{bEB{$sZbnVs$m+@V?_yy=g>~qR{ z$zy)%CxckxOq)R{nxym%yn!!0*moP!zH6J~mojEhs`j}@$9Z&`7vJ`fj@Ep3NpuOn zVNg#IL`XvK*)^87^1B+XUA!*OdgOG0@BK5-)0~^Sb+D*I24qCj92-K4jK5b8DtOw- z;Vd>%2fx4(d`EWDxeqfB+v+gW?7<$^AH|?M_kayY3VtEF?G6`fX`3GP$Km2{u}XMP zaO3jK-SHjPABCG&(vbl8rak>y;r-eqJs2D9$ZO!C;T=Q8(O!-}Zf&OO>vXG;c9Y6} z{Ksm49{!mo$>~%JeY%A9u#dK|r?p5YcY|D{xQBaWH@Hzhz1G&cDK3az`@?p1t%oT3fqfrp;3YQ~B?D%su_qr_DswcCD=wRIO?#;*0D+ z>oHb!jz18ulY`jF@*MVkl+)L+2h?q~dIfEx#LIi|MAz%+s@1|hB~BHH$RDu^y4o?= zD3(WRsBJV>VY-S`o7+C?#*Pi_wft=TJgwKiOexo{^#9tlI=w9z)F@oq_j;s-QP-$? z8emh`n$}n0(P@3vHKzAf*XsLPY_X0EMO#|IlH|o6FZ*l z7sa`KPSxWb5%Y74*{lSsMx4ZT{M|4%NOy_rlSp4c;VeSf} z?4#Qi#+lb;yWsE1alIowIfaftn%)X(5CxT}WkAcSH*qersXYnxqPVR(#o6F6Nnv=Ch#@ugCZYEA#D{z5d`9@C=JkT+gKO@2 z|7vO=O!idIxoPyJw0HyIiKNfxu&s+z)ADhBH!a1bdmr~jjhh}*)9P{k^{vF)d+&=q zK6uOB2%EN#>v7QbF>+DsrqP*g+E4af+E1C+C(w<}+%)ZW@3(1pdUrY(e38L!Mw>Rf z_tm#)xNcGg>wX3^(zM*Yw?WGzyJ`1c^HjAaq4%|p?*?n2Z>qYJ5C?Uu-Y2QjYn-aq zB*ea!crP-nldx)?;+@J9TB&M3*-PDiI`8ha|Aq&}yV34({Wk5yhtckF)BN8E|4>a}wI1X5a55)q7s->r6uH z>%2N0x0>6gaBJUsvWL3$6kgr4$JKCL-|BIFHmy$Wb(}rN^(`LPPv1f^G>u&QI@e%y)zzC-hAZW3ul_7*po)34P#ZUi!9s>%VE+(``})CULK9XWwpb zefIO)bNk-<8_ZVUdT+fBT3_7VM;IIL=zKSD_J)b!41C|l$J!e`nz?J*?+uTpedAy5 zt^a-=o3?xFyKmb>4SVZ%Fp~|0z4bnTu*BXjXIzQqPe`ioDtDIV9LI4B(*wOkJI!+k z`!7|4cqf-E_~Zkz*2jtqT*e9vaW5rA?`pYkNBh`VSMpmuc*ZV(6N2|^MUSjZdxs_Y zXY#!#^v4Tf(yC9%vt|P{esS+@|9ttDF!c^e*XW-tvcAqO&19 z@{)Jd8`$TaBa7wfhQ{ev{idq)fkxeN`lJ8s9W^94Wjfk-DHkxjhsR*bi;uogw`_M| z@ssx-v$@!>K{}ytakzu!pBfIW*djqXlw>a3ArL)U-^@n8yjvcuU@g*}dBfm^_mxUR z3`ngq+EINVs^l~I?mXi@ml z|2+^N&m05bO)1*C%$qVNUt1uvovcwN({dEUK0G_-`vTLOBW3bMx=sDQ$H5#(e_ zjtcJN3%{8v6TCkCX|mPR<~$)g%uK}e+T`TRmPV_(^) z;<~$8un-2n7Av&v12g~jSntzSz$7kk3>JVrJaC9;sQqMcA3F-tqyO@i^jfD}4rj?` zV}hsR)$~2R1M!4joc296qk&C;8I7kn{eH9VOZxR%`V+l({S|dq8);bkh9(096ePoQ-`i42eTx89m%h~)JG4ld|%)6$!Q>Gic!75DML0kBN zXaRwXnMlh!gOc8GoNQrRKZW)*(-b(Gl+!~&9#aW*-)f^vp;^fMSU4fjN$*l`@iXJ0 z8H4@Gs89gyJk^FQ4e)R2Y$u0TPT@dhTCZ_X-%NEyEFI1l!8^)TBBzZ`#^Syb@${Wv zkfb9mW9_0wTJT(Ccs(7*=Z6e+Ly8UoPQE}~f_hiZkO1%{21NmPGGZcugDo^{K zmjilTc(I*iOW3t_(^5@cA8*2S_3=2npj+YwE^tQWS&})#5t|0Nh`G3JoB9s@SuWv# zha4+yWQ{qyD(smTr`}IgnmNUA?C1o~Vi%{Xm`vuC+{uwn{-8X3H08Jd_8+Odnoc`0&rv7EtzvvP|aTP`>zoeRQEO5~>)K5nz zpT|`gajX>2lS7E+sZa7;XQIo%A8}p za4A!MTQ1b}r*H52bX#%6Zf*5cM=+V8x?eW(vne(Ayvy_4_b$(K@4GyI8|>x^_hh}g z#D>F%!svcJS{vJE(t2Bu`G%W5sAq6c$MgeIHOqSaAFVFvU+bO^G)@A0tkB1rTfBs> zWaWhHB7c7>2zEz-l&>C{!*22)Z!SNpag^UL>Al@)iMM}aS$RV|Z^jhmnA>*|t$}3tezaf=vaFaIB zgzrt%!Lk-__pm&M7v#UDBQw&1#({ZwAi6*ye5vR4d`5wsYAw&`+s%w28=?Z&8QD*s zpjl$e?(o@1>eW6`({7D+-ge7tvgmUFS(we_Qsk5iJ*M}8g@-2gF?KYD+iIJZhPZX* zxo@l*ywgIiTh^G@E$i~YivCVPsRJ{5@v=Te7raPh5_}v$&t#fXr%<)jiY!J@wLGz> zkLRLi2cw>R;C#doJA=m%{H5}o0IcEEZJw!!5754m+>Kq(M8L%dz<6GP~XSX_tRgfm*eQ5v!1awnF@~39=pzXCv`*8Ay{lI znF2g*YNN?o`AY}s?*|&eA8EGhR9g7wj5NLWWV|*ph7a~S2Dqu_XD4(i9pmW1SoX=I z-W(tGbhr}~St$}SF^-Lx+c9~Wtj*lm-+>Pz@y$i!lhT%!gKtBs3{PI%+7OOw7TTnv z-%szSe=MGPpcMhQ2L6GMjwy%ueOa_0)! zuX7DYTFcdvk~ZH^IWTT#&W3JYLZB2KHB7a)Hb;`SIi`it;^+^O<6a(PbpuL9)~#ea z>v$TeVT%hM3y}r-X)KQvn%A!_#4ot2Kg(zB^Cn#sYrYMSbV|Loh$Zh$gQVk?Xocw6 z*|4`es!oBbV>ukF!OjuWPN|iz0ublTYV4+2=`ME+QTJ_tW@&)y-&5SVyBv?6;sy0`f zVc*kIfj}nHFTz&dXSDohQ_7Vi(zO;5@17SNxcj~`8{_550FKsIR&ca@vneNjMiz61 zqp8nog*_pzvJHHYK4+uwky5^d%LiAtGS3A?GmUhRKPY-3KP6J*#n=I@D%H!QhPk1_ z7wOn;Pn&DOW-e+hL|f@7){Te-jf`goH;1puEOzrgr5;+rnSrj}8Els=Co$PL^odrA z;6tW3=#PdG-zx4Zr4a*4&YJQPC#FMn{bAIb*6OEl`Y_^6YsJrjm+WJiA{{>;Dp-s> zJ&OE}N4qVQg7XNJys5*l&w_qrYwx-51co8YXxk!AEqc(5=g?PV;4|KVKODAT29g7Cv0cA&@emPsy zTJuuZp|=5iT@2(^IbRNjZ@Nr5OG)9*w1iGV z(gp{CPNDfZ084w0*p~Gfb5*R+&@zv9<<}Wwc!d_>UxPtfV&oyu%+hU*S2Wf}8@zDr z3|H2BX8NZ&Kf=;D_+mk&*XGE#KzTMjDdL$2!e8e8Xf2r9%o6(0`EXzRg#AS-cqU3~ zd(y-@R-V_!j?LW8JuAyS!>*HTe-2tZG5&On{U+q=tn+N;qZjiM-n1yt&#Y}~$2S@w zZJ-4ZvOFz1HiDZg&XD#QLMIMq3u(7facr^%c)3+vdIu%bk;$6q7r43Ny2rqSBb+(g z4PI3%XIY8l=mjdEH=KKQDVm=Q2H9aSbg413G`gg~+<^nKoK8LwuQX5Cx&kdG+mt8R z&C>Hj<&ua#G<%u)?xU1qX?lz^O^ ze;~Zm3K|V9=>13y%_p8!^QrajzO<`>J#~bJ8acXW-J~E#&K~&-g!j9vqxr>EnwFa6QvK{5kzoh-0l9sQn#gv z=ic$=XQC`x-IqbZrF`?&HpbztX}k5p=**v3P<9rUezC{sdSajGwNP=Qm+ifb)O`RoKRbQrur$ffJaij(EdniiAw<)Qhp{fX92&g#-yWln+rX*Q0zm|E_VK=Pue-P7DVPl=B&5DKX`_{ z&KHFTt5xXI8yRNkGJI)M##oiPN*@g|F3(tlwj|p^z`uBT%pHB#ab2u|(ThE9tk0*y zq}yru{#G|$=W_6hLN8!>$~9F5fB1!q(1-I(TV#V+<%g^pC^rr_qJwI^y`AX*2No^P zUTwzUk{7%N`09CK?TlR5%dvjP@l1bBKg=E65QNjJ;vv7?#p-5>Kcsz7uHvrC_|;8B$m^Cds|< zx7kWurzZM*dn77Ke6nXQ^5O^)^n{iV~`ZK!}Ww>s4lXuDU4enQ^P+A`dr2*M&E6(hEo|oT(%&0-tT#0BYl0AK+VQU-q-3E=fFu7{noCl9lUi%@lM(Eh`zFf zq$S{&w*9E`i<;_LR)%|`>}Mlo%4};@BX;4ut-kTb-~i+j`SI&R@S&i%J%G$Z+BwHa z*|*xYT8L<@YONiw%sV@|7#Y&$nF+e|V_1%F7b@ihk0!l%sHcElNmC1%w`^`ct&%|s!1a&+Utq-_(i_L&UPn{ zfA)3t^-v>1f|6dP3C}QAkArMQDZ8p3h(uL7gAK-)@@kE}y*o7@EM8P?kI(J$4qmMU zm~+ATqq4Fx?@?7XGpFJg-4JKKAx|03^>2^mGtGu)QuwGnR02C9EbY(Lj@$6)837#q zsrvIg*1O=Vd1>~>J3A`Mt2B74!fzD|5aW*W*EQm9S7&~~JCep8XJ^b~qh8iMT&l3r>SosPanrk$@XHPA}!laRF zEA;DG@+=k~E-kmukOQxWlohvLVsgH>V4dmu=s$#=O6m_+$6FuWrBkzUcPmU8i#xTT zwF(L+*QqDSSsW#wAdFDbDI>N4;QSDKIM{a@h$$na2Ua?S3xY#Q8ih@77<@=U+9a*q z&%Kz~m;)znfC_m^O*2&19OkllMY24 z5<`4PocgCn<0+rRrQfRF%BBP^5{3={%qCLgxeN@6nl{>|{S{#He)quU72<;61 zLV5nS@MS(yRo1H;y*J1602I`3SpwkgG0>+#>RV}17c<9_ZRZMin>|YjEX-2qJ=F;V zogV#*Ct-1&WSG6RSq7Kd+>^D_$J+D6nvIzNmIiw9K+w%%jlAN8h<%Z9k~lp2cb=BG+qo0M zG9LtkyT4Jw&O}&{^q%Pw)?{a3&dWAz5{ILb-U?Zkj-P^KZg=x}QB-4gZI4TI2&2cE zgss}s4K*vMNB{CkX&&fV(n-_7BDdv?V&akYZwkSpR~sf5)4@V_veqLF*M;W`XyLfQ zqbr*uyg~DKzn2gIN&@R>i#d(svR&D_v};Z|liei_4;JH>)(NA- zH*#j%TRkgB_|d=rB>a0`96@8qYJS7P`gU%eo)J z{l*I*!vM+1Fh^O+JV$1Y_^pMWJ&lPzdva?>k+V9U=$xI)FZ7{z++IhEv0jtrLfLfk zDYM~Kr)nHJ%SI%bdtNhp*tD^es~Dq@@B-nZ3=7vi&3Q*&Wb@cR!MJZ^N_d2JJ#jI? zv|~Vp47jHFXtfXJS!c&TPHE81w8RTY2ZKe$#4|m0vaN*rENh6KGbj+7Fxj( z7z~zHttDVbZ+L`ExK&;(Of%l(CtI|Nt_bIty1+)!n~B+w_j&F!7!f-KOA=n^zNJ%` zcytg6hb{?uu;A^GJ?z?!OhmbXCLN+5;x9XbgQq%x!}R0#44y2+_JoKxMTHHgSq#x{ zAYs#~sot{Atr_*C6RV ziPUlU#YnT@>W;Zm3O9B_x*rcH9k60x!x`Hbm^od5pxc9NNmXOcl7_0w@rbS;AazS* zdq-Y5BbU-yCe@GE9P`^h(R=IJGQl%0i75V-7GRp+T6}4KYvJV}5w{h7EVK2|dcODv zmG9+ACySKYJ3drye4P#2tTKBVrR!r|WE8%cPc5 z_)=r}q_6j}n_XZCLXx}s4;E5>c>yD0brph^W}N91gjsAnii0UhOArkKz{>|0N(J+H z9UH=cb)Va9f4kNt`wn~rA6)HcnC0|a*n}6rQ-Um%BPyHUc9vm{jI9)qRSu&`YYw$x zLuiJG5K&b=R9;{Dm9RzSGh^>+S)dGj%i`l znezU(WQRJFlNqi_KfUXn?#KNTIyEQ3OBi#==K>=;LKb4(G{^93I9ap_h8TVa>tGjEnCn zthlE6-O}I1%%0l~1Tvkr)@ViaEkXqQ#-5V=3h3A3W=D1()^|wWlwM`mIYAd$kT3Ne zJnpI%xzvxfyYZxgkB!XUhtnAe>M50-RXyLubAr%t?ywTb2mqh@eTdJG^=q=O?wwgh zC6ccUo=B2_~9VtqsBtyd-ukAxq)+uzQEqFXj`=fdWW5cq_eh z=S9vrL?JLDgvJ_SjS0T+D}cbxf;aV9?~#!|nr|ZtPxSSS3Alg<{d?C9zmPV(qomV* zs6I+~9TvFX7Hrfc_83nG3rqh!)}qbWNu?oePUO8X)-8F4x~1cwX+!U|mafs3x?FUw z`8)|_;SDF4&I>zyJEsZo+~6O^#MRxZpJ$@fujO^5_VH=Yc@Y4d9GQOQ-i`+*%&^nj zA$2umV=*1i5y(BxhCID(hCR=Vj0qnjgf28{Th=^@F@b+t8tqmep3AilUdmL)15E2J z4KSy-G~Z6t-EsW^ojhKzi?bW5shf8m!l`gtFKwFhS_;Rw5=!~3rDkTyW}TE9t^=+B zW2GFkKT)0+db1=hywY*2`Sm02J)XOeWx%Jei06nzSV3?_`U1-gC)1kY_E{@2Dr}a|L_Bbd?3`A@wu9zW~ze#n^dUZEQ6kR~ILh)8oh+aTG2o(psOZ{`UHg{C zelL%@oFi~YQp7McXMw`iFAb2VtM+hYBAGbYx|K$r(1XHT7#!+ z?bEi0+cI`O z&cHE0_!}kCtm#tEZrUt;`BY)y*5T+(VLV-1>~6c}k6-Dq53M=mtu5&x-nrn|^LxSy znGA2sPe`TcB>92EvfuI<_USL%@^;Qudf@kU7LXeRU+Lg=Ee^%+Kj{)gcmnRxuz>VH zG+`8IK+*ZVX{iOCI~@@gYB!mO18c}>t)1NwU*pWM2H1u7JJrwBn-*%WX;T<&tKQqx zUjDX?xhQmX_62l*ds~NO4QVwvy7G`N4(suoh|0RGjkDmZ@Hp`Jh}XjRcoI0_2@PPJ z9EWjQI&kQV&Ox&Iw{ik!S&V7QGIvG-P!rS`wMGbjC^~Yjze4ICmXHsE(a=b2* zfpukcw`*L^j@N%IPG`p3*}IIqfTR7#V^{mR4R(6hK~2evnV;AtGCKBwl#bRJNa<9% z4C+nAu*(D#z3~_d3~)r6@&0bqbCO>T>D-4iC1u?B+}Nd>XB�ED)JPv?~7GRQ%UW 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 Q!~;~u1WMSWV8n$00Odgus{jB1 literal 1753088 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∋TA<|N+Yv}UaO(dMZ58b@jZ^8u9NTb!7W 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%0A?A< z{RoK+Cq4K7L3+3NH{I*Gvtg%tH_qrIJ;0NH51^Zq5^xh3EOO2G39Kr2kvDUoX!fUG{E2yX3}JwW+< z!p6Gi704nO?i}q03X;*+Nj*rAI0a%(oc07o@X8a;gLZ0TyYpZ{GWt5HhX|5*ozw;R zp}vs*o4!d}NmOl42o%Jy|qUYC_^Gqu;{2!i4iby65eU{2rKKw?y zBhP10AAS$rJ97OSoP-nxyo3h0aSi)&*=>SU{~=of|Dgf?U1KULjDrW^p9|x|@$b;8!Z>)_LN8zH z;vL7Ps*+owB~^03CR-&3U%oDGDo9LP5SefJnmKb2YUXGbYvzvA5o+ciBe~ryHFJ3- zsF|bdY&_6H*L}+#g+9BK(`MAj-JU5tA4=woKsA9OG)o0_NXTyh9i^b|Bs{@_I&(Bu zL7kb33+gQiJI*wcHBOHsiNMH5@%ZCQzoLg|5F#i-_wI-TN^bY*g0A|bWz*PW`k+0W+ zWb}M}UXYBQum80m89iTr8X=M4q+`(beBHlqHCpU@aIqX-H|6X8eMhOef8P<%zwZ>E z3-|D%eQYT2+f;bd5!{7&c-0Q-&zn8nJs#=#r8!XE zL1Es^BT>RJwMU|W#98xE)v!NuPW3a|SO_)1_3OF5ey*wg1Dc#&j}x!G_#472ap^Oq z5xSuq zZ;rLz0@Oo@3Hrql6C5E#W1(<}c>_XB064_N)pY+W#AOm<;)ha*nZ(oRUpdCSltgdi zX&+;P=MYwc=VDk1y23MumBaCzhn2*0y56F3Y^g}n$|i{<0h??j2~K>pXe!9Xw|wl# zG(+r&W-)ejyp0e$-fZhFMC^zb(b+-KBAy8GAU_hCrSK3!7$-b*LY!cD$Q+Fo9x_vL zc-Y-|ABt)A7pPC5Cx|IM6Q8;r001w%6W1#vmg;>Un}qvT9cfM?XJ7eBNj5< zeSQvX)m@K7jbl@LBnmi$?q1f$LP>Z11DaexmtH`4MVJ0TwFcpDm6qfojkt&~4Hs&~MWvAPTw!L@m11DCf!P5=aE?slZQY?HpaYoLIL1bm@g{ER=M~KcLAKbm>KeS9Iy0RBM1P9o12njwnk(9WgBHH()MDbcwr zq~&TBR}v(xSpYV$W^r^!ojkg%llwps!JO$Ih)ZxrH4Bi=VzwE&A&(i6LyuLn0QI1o zpzj*-v=}%-{?9_;nniCZ)hqzungy<=`v()3NzDR3bf{UNf4T0Xf0y=>ngw_cW&k|9 z##A&F2D-vC*DQwP*`ZZaVPwzKnnmN-QZ)-Jo1|s|*ko%K;KWxcOa;04makbb%}}#I zvsklmyzR<03lTeN7U(Q1c=H|+JQ0c%{77h)Y8DW}I5i6=#0l0cn4__37R=PBHH%k} zNHYKO${g5g$2}5dvQ6!gDBuvW+N;`FD8*|2fv)6|n#EPa((?~!dWG2V)r434)N530 zKx}wSM?Z8-*$*8H=L6!VeQcPNy4__y2s<#j(T-$QLpTa_IvVg55)pgrhg|~f+N$vJ1)Ua7Vq7f zektqQSZ9!egP?EVAvC~6P`-H05_rjVPxg2KY0y0&4GkdmikR>5==hE%rH|E); z|4f~8i*McfakswXE%bwQ)6b)C-!6N^jw0H2-&qADkfkhb)yo%v$uA#(Z^isUx<3B{ zbdO!1j|*O(|3MGJ#c=EM-%3wp@Ahpa;I$>-zm$OgS^(N!j#_z`P)Uq0F=D2IhNUnlObWyJ zPhl9&G0eU>x26kY+8ad~+lnE3vs}D!Z4WT3GhR~6Gsa|UZ z`g!aqc^eRga1n@nxJY=?x#mWhPcA|Pi4X-=;3u>u851^F&eLy4e3V$gV2sv@{8tVX zL+0Zmb*`F6vY-u?N1}jsoNu8~ff#DTQM4iAGepS-LAc-`=(8S#ivd9p_WYhr1Nlts z`4#iQ{+yTe`rUTClDE8d@MA>D)E}q+W}>*R0Ay1#dJyvokYgk+h`DI~lLCXeq@B7K z&3{T@u!^)7A%v$~Nf4+S0jBl>)xZi8iJ!JiJI4Xp#7BQYGO>4nVE9xM z=LmQ}!A|3fcVID0>@>H%h4;RJ#~q%uq6tFMzJc$tAE<@xj%x#-BZ6YPKOeQepjxf9 zf#W;c@#6>E@khaUgDKO0EH1&3=|2&dU?-~$Tu8qxLTvyX1e*>XLIYd`10UOW@RHki zsSN;Wur_>LxL`9Uz)`U;#%3#^9L&hZ0ZBo?57kstU{4iw{1@Bju&O$$JedUB0Evgv-Ps?!#}Vfu_1B@ z(~HO0HwbU1F?LeNF?LdUjJ*J348)Q#_Uy$OW1!SH#z3=ejN#$7F{WfTxiJQ$i!#Rc zZale%&l-6n>G3J{?4EC0p+#ei!(|%}UcN&a(j7j$=U{(Fi0?Vv-+`kv?CpNX-i{3$ zJ;Vj@J2q_g5O>hdjt$3ph&yR#$A**XsGV;SUozOe|GVlcw#nC++B2@kx~cFK9L*c~ z%$WmWWb=Ig+jN&7|EBtmY7NNuZ`DyBZdKHWXb$O0=mr=u{a51>T%`H_iyHN0tb89- zLpTV!qBOBD0R3ENB;N<35CQ^GP@p{DZvI3tXuU$4$Q~7 z%J)4IJ}sw{Eq}Q`j+1RAtY?6(##&BvOyaz znqx%0_jVtW8~*8B{rzNL`K${sOZBEimI`RuaXC0dNf9Ij0%IoiOp&*#Ae-oDQAmcK z;=W~1xlEmh0^(EK!O&G5pYlB+KHWrpu{ETXIIsIBL`7`p|Eksi+j&Yy+j$C!a=_Un zZ-v1GBc}g$T!M?#cD{abY$vD&+X=c&wiEQ*Y$p%}+X+N1wzE;@le3*55v*keenM;K z*v{*T1q^r*uRt~E73enU73jC=6%Ylz0-_eZYLxlp^a><` zCRN}kv?ixlyyhYJ{-eqF|BfhG-;ayIzW(wBF|>~4g@1Ysy_d$2Jy*YiD3Z4w1k*5tAdfJFYA=`cW?Mit6~qy4 zuDD;>II>Yc4+I`ZwsWDIdK|ei;>J-tpK}w@5?v$gHG7;M`mmRLgfgCA|2>!||JvdLm|7I-P$ zHC8OKEFc&omY5bK&a(6S0jsn^z`tU@J|Mj0SshC(w;e9U5|F1gkhtjN2iju^FK=bW zO^~+&>QMnfi*1M0@Wym30U@L??vuVxULg+{_5rqIp^MrFxUp1Pq1wwOz1i6sh$Gxwalf*0>-z&xq*rR$C zu`}|yxuEEx13L!U{g6=y57<)6z2|Mf2Vom90K5$tSJVBU6JyCXVEmA81CC=4^e2x! z(4Qyx{`hmtz@rN`rlM`Xpd&o;w%_4+bZD_BbosL5e?m3#soo7lU(UZ(V?^!pwOvnk z`2sfCUA~~5?(1bLVP7wr#eKbwn-TW)KA#5Y&2o;dh_-nrFYamGx{H2}vvt?WX@XmK znWM3`?lM#H*4;w}#hZ`wdQ;DmOkkt6qpJ5T0IkZ85Si{pxKz|BYho_GnB&fyOkiR` z)*6_=ga%f?26iPZrFv^~cd;f(`Z`zWR=vIe9JQ}|cj&8ULU$`Lp@9{!C4EKygl}kx zU)qOmiv7~Q1WEl8U>*F@?K=9U+m-#&|G_VTA@WP0nEIs~7RN7vV$m;w2iSb>J^Q6Y z;g4w%IS?o>sqvevadpoSY`;mzblm{1P)YvR~SdWRm%%{R_ZR zZS?_!Ymi^^OlY%QdnPon0=C3fuida`qZ@`_I*;r)$KnT0uv;6VZuzxN+qQ+ZPM%oA zKAuY0FRb<3NO$>qYU_H^Q#<+*lpyk&X@3ow<9QHE*7_|ac)1?Bm1K!OE)x#9X9<)- z)iYgB3Yxi%m-VE0*jZp(zfISZDw$2Lh6$vLP^V1h{;-bvAfjaJC%70?Khf)`H_`ox z{#s4t%3PSf09v|@2{o1+LanmAj@r{&knmBg0;A><5~%Tx67G)dC~@7R5>jE@A54#R z8uzDl9QUV{$Njz-_aK&x`*n*m?m?+>+=FJ@xW~h7<6g;Za^oII7h&ADot~erqdvq6 zEy|aa7xDI1t=aGosKJT2IE~{ECA@JQe;7KO#AkqYh~rQ1I1W!QkHf<;4#5z`@t~N- z@f(WcaqRjMC>G;*@PHVZd(UzFk%;2~;5Z&v)BPifv829)9|pzo=ubY@i}fY&Sd8OA zM|k8oemEWn$MI^6s5stsy3-0akr_56B@aXjC5 z{H`3wi)fqUc-+$($E!CnJIdFNoSY^Y$1_J`#qrEk9LKk9Q?_TX3zksXh{;9cNzz>7`0{YX@FM!9QUjQB9k^RDOJP!5?YK$nqV7s391;8d--vRB^ zFEEwh7tk#F1;@><>=#6|&3*y*wE6|~bDa8)lhXwK0&_H$Utp$UztFZFF*z&qD3VFy z7sP~yd{4#E{sCn}Tg|;)S0go+qjP#A+xue(moV%7m9qDqnBvt`c&cRYH}^t4pKR8i zv@haVx-+%#fU$+gH%hkAGx$s9m2cnCzTduR-}jscktFv#qtT|nkm!#%mu$21FntWF zFp=CvHsi;^j03=C99Pr*yX9saKjdbd@+-ZL4t*%w@r!&Pc>Z`Qnlc7%;fqc8aD1hv zoA{dQeU)hXIpg))S9W;klZxW~dC%yWirdjF+GoCRl(_w|G{A0#dExR`OEE(~H@j?Z zc6x4h`OLCaTaJrVYNXKIiDH5#7#OEtK9&h)rn;Ko_&b2d5&5C)uYX`cVsMUEbNh9? z?V5{PX`#}pX;T3<(0-lK(SDuLV81{lv0wLIeES8euoK)xwqLh|{Q`jP7p|uJ+jIMc z9|qbl^kD@11>C|H+pppH8p3|r9wyNyV3UkCz5QamA-+VjXull&5#q~T&VHdQAdaa(KetJ;pC5>v`Cvq@!9L?! zih)j|_3j(&KHx@~j~Mu@np@3J(p-TnUxGxKIk2xav?jOCzwOI6>G^#pSwTnh2&TSO z4$SimRTuL})R-0|3P?UtosVg~iK$^%nqba8&zH>b-$UVo3U|jLEAj4!@klQ#A z6zss>$ig#WF8ZLgXHEez=F@X?ZcF&QooSs*zeh*Aa*v{2=|33;1jLfK=#obJv6WK2Qxv>rgP~^W|OlFK)MLFAel?wi*#-)QL;LRi$OZK zwD&4{2X;?TeLK28@pY_PJehvc{Hb(TH(*npp7VD zb{>pc)y74n+68@k$xB4v{*8FI=Sv3O7bI=aN(j#5BO<}HU(|2!bPM>wbp*G4VyRws zvEOpUUGXPEvY=(765q|L&cBJObDI|b=el}(BHc+>@7YmT?^)K>XF^v&EYa0^adZ`w z8g&&k+jJEVx9O^q+2nK;NEbm@*KSzXxKayeTrKV0nZ`5L+?x6fE40{e%YdfCU(ci) zw01hBy90qmX?)G_^wYi0O!ZFBXf)^yD8xDg4UH2j+U9Vp@+x4So}lD4-qZ;Y{lN z$iLo|C|UoC3;0)4-OYn=(e85Xd;t#S#aRMYqm!j-z-pZ#E+S_rZi+YUvbWWa6y)u* zxQL!*Q{g?aGZuHJyG(r#ekj_S!TxRZBdqTU%#6exIN(U$OMY6>1Q#-j(Ox<~DgJ{9Y5M z@4^Ir(c0x(kq6;x%zUpqM%slF5IuL0GK266)VMPhWJvhb#61htM;#EQN1@-BsUXYv z7n-l#HbYZB5T^gdtwG#GvJ)GA7Tq8={A|_oHoW1x_1iky@NM*ZavR>i8payLP5+I! z1m)CjU$HoL8&rec2HhsR4f<_%8;FA42BH?b-6-eD*=>*rmbwBzp*2an-8LB;&joBF z7BHaI9x$cYK2}k4vHk(27M$aTz5eUS_}-7uT6>I(cH@f}>!CE>?HMHXeRF;a5!E^N zE=ptgRD_VUfSOfzTtv23I_3Lx-g!R$TH1R!(dQV?(^uWIdhCoA2zy=CMv1$Lf`X+S zc+e(??`b#>Z#y9t9lyV7c^z-~cF27@>iB(&Iv&Mo?|_nn5z~JUF2O~r?{8TgeFxQ` z@1WbH@1WnN??4pv9f(@=y;0_q(|3>v8eV~)(3+&aw=K$xzq@@dv5@GysUMI7bA3^9 znn$9PM35+;jnjf%ID+iL`9#Uu1zZfW3(I=zY0%!8;s#Tnm$NAP$DtS70v&pRh*d>g zMCO2PN>mzoAl+l?2jz6)Fim@PIk|&<`Q>tQhdZOe9?9*G|2wMU|Wq|?n+hq&hO*ftiz9KNbK_y;sOJFmW} zr|V>oBfO$lk5?_PR}FQt?H%=Mdr`0Y*F%9o-1L8mOHfXA>HCYLOQ0Hb33Quu3G~}^ z35bF&0a1%CHOhH%x&#tIdn)h~T9eeJ<`J9j{p}MAi7tuSl*X)oK#$qA8)lj(8&LS8Cxpz zva(4sFTf_7c|j~b^D-6W;#+uIXRYcF^7_%Hb; z`?(!`(z#`yv?m-97%}~Qa0xC<|3F-Vh0HIlreDgr)&o3$Ht-p8O(r-9ehEB;2DosI zG*$&Kxet-^-hnhY4j>H;AaxDOdzbV+MZC*e?~df=l&s41ex!(gi>iGl8dcFl34dSMMEG|Jg)u)3Sb(`d5 z|9Hp`soS6$)ERVxIwvt9=;!(@brc{9Dhxzkg$Yl(wyjallhay|2%1@epU|45o_6=w ze@iSRdTQ!t^2rk_QOA*$rW_z?+CBx(%-Ar09`t- zqb{9S)}`A)fk52!Z;wk*PIc+T#nB~D4Y~xnO}Yg7ZMpQeVQ%5#W?M3+QuN@LbPpvUYGb(H7k^a^#9=h0n?jlf5_j^c4Dmb9}1GUcrD zI?D6u2GOs}q~+=;FCa)-M*(bL9p(Iv`geX=|Lz5)19PUo4VU1I>L?(c#jAHJ>fzXR z6i^R(2>PxO*HOR`Y7#6IuA@8h3gI@D3nzg*9YbrkR%R31FL z##B^C0bSvl>nOwV?9jH?Q5wgVs-sxhBy|+PCR;}VC%$rGD#*pRd>w^phB^wG#X5@P zZC9?Nh}cm_L1$UPo9ifeA{0*ekL^Z#6Re{!M`P7dn5j|gDE~krNqmW^ zFVBHu*$Z)*N1}|mAW^^};O?8T}zAYOb>M}PI8vcGyboD_(g{-baS%4xj#K>DFvR~ak!0@dKBK({Gg z1pVBPNbUth!Fd3YYoH%#?$s#g$;FEx5hBD2{Djsdr#ce*FX4_&v4f)?hrCmX5xX(AxFgxZr(wuks*VFzD4Dgp2l7;Mjw^ zthd{eUhf>c4*V7LM8dbt4U!FeAWye3L($4_dp9o!Q%QwhH4Z-Qv$%+!jaPzmjyHdm zy&YTX-PXLY8wI_yh;UIt^YgX7R%;FXWru6OBCu`(9}8 zrLfNdFvr;6AV}5&yxt+%8;!jM$v$ZBqmb+iz`l&+je=x9fcJAq_D5rXL2>}v2Ph;5 z0&pNBd6OX70PqIi&uip|jrd`s|KZK}q5fz3Z!*G_X2yFh|7dzW{L^dxuO|b4N~9}F zWv$%ZntxVN>{-GUpNzmTIT?Z5ZbiS_5x{yJ?G0=!yX3Rob^en5l&_fbO zyj8UZ#1Rka7)Ly0a2)X*1P@@u^k0BWaFNCl&sdx|0#rjB0lH0b1n9TL5kM5;2q0>S zBN}Bsxi|tOLgY|^pU|3Q9C2*R93OJeyY%?a)NdmeFs#-7QBz-A0{%-5jO?1v&CBb} zJsmadg-!(YbQF-{`n?-_g!tms)E%~&|C)2D>%~?xyDlw%JK>5$23BkrCj>w5!T@pe zdh^)75t5>uUiLDcGriH&o@v!(Q-OMHa7+bcF|1@e-a&VX?RckZ4X_;-bhI5847MFt z!eD?A(|&C zr4k`ofe?sU7E38vahV32FqdR_zT3ZC{~yBn=xM|I1&K==m=l*O1WsJGAjZ_E3zRa= ze?XA9q=AvRR3RX7*@7VP=>m{^P>{H!fswdWAs}(tf*|qf0+9TtAaO|pBXOxhK;kk4 zL9z)c!zLaQ9}*-70eq0lQw~PsV98SsLHiJuryL5vp^W6ig5)rO4|7NkN8@lovKj5o z3dt=1xCJBmh#)xv;3FK8Eof{JBuAosq(X8O07o&Bj|!5b0Y2IxIR=em1j(^zAFGfY z2f%TRg8nbpZtf?HJ)pKSJEy-ejnUKS2+x2ZE-< zwpmTbMWpGayJ7b1-MEPE7PB1fL;pV6Km5}<=}qMD`Fsy=6P0B)6-*lprDR;DVoRlA zmOGcbvdKn1h%3%r878?aw~-IR0Hye0Pf{4nLkfeor!XjQ3WF}DFsN1vgQlb~4Ez*^ zah$?1EK?XpSqj6jNnt!1GI`qZVk-7`kf$9K^stACJo%n@cRxEtJZFc8eU4%B9Jd?J zJ^3`TDzWBgRBJ%2d11#`^TNTg=35b9f)UeyJ1)UR8f(6OabitS4Y4NZHpQBt-xg~E zQHV8xs3q2Hl=`MV_0(7aSqy_dru)&pOm~Ux z_=>dLI;yV{Bwa@Zn5?6EQjhjS*tUES1_g|o{zq{ME@@2_*dPNJ@7;QL z(Z-CurV7-9jRAevu>O=Y4$6kW5!NTMfOt*SX3fg&Y43A1j+=O%-61T~h^4{3JW5qpqp?8i^$HlVAUT?7a!RWkqp6emV1&S>Mc^JG=+OzzoVV%pk(B2yTcQ zhG^n4nt`|*9Z&-5#r524M8yRKowzG8s1f&QVq&6ML=!c}B#I`{B&g50#odTejN7li zRoz|HefpfcK8O52|M&U8bl2&ws;<*rTleW(1*)pgCfpBpIBB8J z5hc#apwOIcLEiS$q`vRKxt4#gvM44^0wUIR!{=K5gRo7UYq^nG%H>)xI1;i9w=Smg za{c(n{kJi*E!Zpmwx;LDYou9}U^_OOMJZfV{C*cliJ0NPqa<;Zz|?=2dhp+u91pm5 z_w&?=Ul$6^uZ#EbpGJM_eoF!?629`Q?cUv8P&sn7C7QyUQPJbFl<w>n?|^#HF`%D~cfb*12N96OJ5NQt1AxRkD9v|oA}*772M>mbcQC%H4$H@a!rxQM?1X%Cp2fqw(y}Hpe@)^UTCMESn_W0c^VQ4mj}^A)s(SA~nmuTb#OnE;M`D20c;|aWi5+MZnjPpk-uZTwMKNh(#XH|2Y|bK%zqkBd zW+@l%U~nYlqC_Eb?NzM7FVDw2e!NDSMG3ZJvsskFMP0ljVun-CtOTa4Q!i~oyc5n0 ztfPSEzlkEhFBI^;it_s&go1#6;6W%fzg0Qkd=wehy5AlFCFT=_NO&fw4V!ylf?J~y zwU+lQZjksp&iM)cjt`ssUSe>7;56ODi1Bva>7+msgJhB@WJvmR%tF+iI|xMKzqQxu z?q>%Rn0{%5gSY=7jAn{N`;3buGyG@w8EAiwx6^?{3qh6OgnZ$i&EwRaIuVnv@9-Z16&w2H8I( zaUmWI5f@^7RlSpq3&C^HI^fw=W}>(dbd_g`3rFMGp>2)}Yv-AX3t2WvTnN~7<3e!a zBf+ACTzt*Pg+epLg{WrZLdV-JIWAPOBQC^X2gQZx5duN!5~{hl5JH$FE_6biVq7R3 zO%xXjQ{%>kt-~`m>yRq2(PnuhMt>JQkHi4UW^HNwKHZJWWkDSKG4i0R2v?Q= zy?bR}yXeXn`zb#E4Kx5uLa5ddkW7*U=;T z25u__7RZIagxe$$!cEBg6A#3iBiE}izJ}}~fw!jG93^Rg4#E8zXbGFe0aevRJ zcZC0J?DjmW%WoC=_qJ^J6#RQLKpujN@?@SN!a_+lG6kj^nNp9VJeiE>$FDBDL>rk& zoA}_P%vki}ml$5B?I&$qKb`|ciI?d==95<-FS{sZ!UH3}&G23=Mrnf>5wDe+?0l1a z;)vH<%KNc#qfn4(Qnm9!F2AzU0L5CO8PbBzOoFaN#Oxya`@Nfz`&F zKpLDqAPp5Db(KuKIplkpUc3o{A*L+Bsn)=1s2!YmvrQ~uZA9_r<|qC;B7a( zeEl7PA?K!vSXpRE#0uDSBUbR`W7MLA#Iy#H`I?Vkg@X{kqMD6g9j9Z&uOB73{Zf8o zKwk;sR}9_9uSJQW`x-mPomnwch*x)hi}JBWiT)vc6$GXV4569}ZXuybf?FryDF(N~ z(L}+mFg0{=8{Zd4w{2JLce-qn!VusbC zL@#&_X>9ux(tjM=-j-t9qo@(bwkSx5y4{0N5YP?}LP0>c@*orhbZZYnK|sfO5DEa* zhr4{H^3P};WACu&9Z4M$zlTjo654`o_WeC}w&G~Y$<693t__~TSRJ9@un$}(ve0?Twnc*if62@6caJE_MZ zu*_NX<5$f61g8C@9*4j(vC)rTHun>l_LDjVr{V3V%)7W)mIRRTOJ`&PQ)E(iOt@3O zMJX!>J^A%>Pl0JqsUt?lJfJ2~+$=A&K5mwU7+rYevM5C<&+L^){H~b`d8S-Q-N)A6 z$J~A>>6D$s7V8ugnioCJfxsV=T*>inJSNuRIgzY+pk3>`0$nGEdO1cFXq+QfZW0l>e248;_XYD=spHTaFON)&Zh^} zI0JbKvOD}Ie$j}(5do?pv;bXKspLsOpC(?Co6z&tKoop@AaWIqBfY1zR_4>oK!8NZ zGL+ya)DBM0;Y4Bq)6uNMqIa7rP*+PP=irenTc64!F~Im7*^#6__7El3A1DmgA77&x zCEv}QRAo^#f+!Hy2%;RkMiBj=`oJp)=!4r5Hnq7YQ!TQ&PIWL+pNIBn{jnlN>~qmT zd<7Z|lVP1=O>W=A`|wy(u+E}lvxRezmkYF>ZU{HE!}L+Y=Kv-+#sg`xuS zqWe@7K{?e~k6Rg?1*$=3fo`470{teP1w=t-0a1g_s+IHfbQVYiEmeY_P&+s}>vUoP z(>c;vXHUBe9F8=aCp-th0_LoplybVx5J;Ae}Yaf**n3A}xBitFl=1&a47? zAtsIxXz?mUp-x={eR07BsxPq4L|=INW^_v50IedBF+veA;lP4b1k%R)hp`^GJ+Z5L z;0~rXKo49pq#n2=uLrKc;s^1fdnJmXoa%x8%IE=54SE1{>+}HVH|YT&3VHyD8uUP| zoTsM;Kq9RC68wbP!O;VEBo-=q;7(OwqaN@`%=|BU9*F@`KB)fWV4SDAbCrdncXk!n z$d^ZASWqMe$opz{Z`pm0yAUZ|bLVKy?QGnYAnDEqU<1$9T{`5NyfnKequAn=Sd?J2 z=w5>&xTMVtutAC;&hNiCyH1fqpXj%bK|QQf(03J9e?C7{f+M8=ML@EB@d|8T03h2J zD9v|YPh2M37kH4{zQ~NPss}K>%jv!HUX9F!d16TcHtl#q+B`F#nY8TKVm&F)J$-p1IM_@({!v5Fo0 z5*Vy3_WJuJ&?D?MNS9E}Z9PB;lWaXWAx?4YK{%Rd>p_@`w;qQ7-GRH2ND^D4>O1&d z=FGM4U{&?P_G4;~fN@Uz34Xoz?p~!=^zM-Xse|wg=SZp<%0v;zs5P`bE!k} zJ|>9&@5R`1N7cY9(Gl(=zgx)pbihIWErj#J0NhQbA(s!y@&HiC4Z!^ff;+T#Z)&B} z!k&G@53u0Bd3vV{G+kh$KSE`>AJM;$XjX_=?X1w*DiXc=B7_zYvK)PrsiCQ7H&rNa zDkHRa<1;P}lVli9X!d5rr|1Mf@8`7oRp z#b5Hf+m9d8H+npYa6sPm58)7jF!^@&OviOuKM1+jbA+YVSh-eE(hw!_O+d5in>?uS z4hcGku!Q=qYSB?q^V``*e$$IYfOJJ-kKym-`!yC?l7sm59PqwXpe`_ymCsG&@2T)~ zmThX)(}{qdjsbG+;%K75I+*A4{fHYspNsPTrZylRf5MRS`w7|k-Te#9X%H{E*P{r^ zX*~X(+WAfV^WRwW8&rdz54t+p( z9h`Xl0W8~OP3)}#b^80cZ@x+QNS5t{_eczIg!35>tg;}+o0Hw6xlIouTvh(f`3z6Y zuv(Pp1#iW;N2Dv$bIQL#t#obfi)!baTH`t8Cl0wzpO{~#|A@s2MvCsIPy`o6_cJJh zg-UGxVS19^|C{K$Sa1;5EO-bNa1j=8ynew;b^Yphu|OKuFOY@`kov`3{VsOM_cFbe z4T51Um*7-uU^UbZ&N{zA408^Gqu0@-^}(n4M*081+w5ju3f5Slz0TM-WF%rdT7E{@Cyz<+~@LV zT8F!_S{BeTut3kNceg!^TBu%mxTy`W`Q0IPNjI-cz6`Aa;zjrCD1vfo^KY!x9~0Sp zPz@>rbc4!B{9Dkk>I}8{Koryj5P3DhzHWS9Tdka@rx`#Zto{=GgxbN;1&<&WD!Sm2 zRiLi8jLr8*%pxm#9*F^tkb{3zm4%}BTUB5qUml5JL6I0>CI|m$BBg8YFhmU1cW9yMwOs zEP40Qcy?%;^X|2C%jDfzHc8$cu<7RA!HLhb7bWE4Yd-HTG(+AU)ok9~@penjyQ|od zcgJ95f!F8V(IX_j~wRUNGciPXT>D_@o{mEj|oO|1I_9u(o7v|6Mnk`A9L^NFB)*<0bV+*toc#%e z#LOU@qkjs$6Z~g$^j{@6LUQ!}J((G#vshk>G|neIZrSC0f`Xtl;9`S4o>`Y8L@yV80A8qR0ZmS&BQ+*iCLIM&m%Fw5#paGS6L`} zPpJYM`SM5%3yQ=5IsQQ&2Im~NufzG@rxGc*=3K<{G=iiN4`34U$TtlSBOLfkVxA`t zxelM4Ux(YV_`nbaI-r=Y!KLgPL>zD}@iO+e(x8|PZNLM<1R1@AHt#@a1Av4!D9v|| zA;yv;MR-sRZQ?vA##3F>7|&&XJbwEQJZ3`~&`};Glo^f3G?W4Tn~1)C^K9mbiClQ- zN#p|9bR!qgPGc3J5@Hopv$2ZfW{g^l6(|bC}q@wT39I%%Gs=GB>(9kDbs;M<*c*Zj%H@u2$@m}H) ze?{PN*>0hE9wVUV(E>{lOT4P#&%Qn*GwR;&RDn90j6L*7EL#DI0rLKKd|u<3M9TYm zvQM_JC4b3zji(H0Q{YZl&uer~flUE1;=!KLI3a6GCO)G9O6tNTIc(6Z>U%w-fzH8g zW4|pvqhVw=Jx>itSHw5FOT%KtIqZk}_uadkg_ihc&&mOxodZ6n3e;JvYw$r2(lz+N z3hiaP20iTv=xIklPul#oYIaSq z1Mcrly))Jam?NJH)Kj19jO;p@*yjSptj`4=;LnI8#OL}W_*?*p&xO)__in^k;&b7_ zAfF54sjk7S&jlW{J{RaHkK%KU#^Ye0%gh(!bMepZ1xdNeO}jNeRkm zG$rUpM^|NdPK;D^FhvO#%s~a@sbk;mDrzv4@AkAI?bOqg*rnyLsAX9v3}N zI|6#z5zx~%z`XDFyToMdyS+5AcO#^y06*7ycRm;;*4J-+d%8miTLUFvwrSc&h6z>#u>wtiJ|2%A@#e zqwzS{Uo&&W_-j1$#9sq!y8aqyr~aBy3H}Sz(dl|{3;;+3t2Yf{pXw~!pf6db|ini!^IuX#*F+ld$!an&n^4DHP z%&@kiodL(jD|L8#YVhiNi*+U_6_PBMj zPY%wwH44?%$v!!l=GG`gt#48L};(hY|H3W+0hTZqR2gw-!*?sRXwfx?Vm%DlU z*2$IEjeTeqco4nahn6<+{c|!W(2qqQUV`l>ZQ^}znKP^$H%L6eqbvX`yC zG&(o=(ne;}^QD1wMSSV{+bCKbKc7bPAAd#fbu6^Rm;U`KP?wjF56yXfk7U^f#~z6R zvR;kjx@(ElP;;?2Chavyp}((9=`)LnF*;tf?`&TxVjYf}^=jN~K)(1K_tq&u!>8%eSU4iw{w0oNB>Nl~_lKFpK6{s^hqpLjH{iJ6MIbWZVov+b;(kn1`!5rl$Kt0V*T%Dc66Xz#DF`J(N z4~YFm5|W?z0P+(6NPYsP`R;3pu_Ql%2ZQnx7*BP5Wb+f?(Jhsk=yL?nQ642fF&d8! zZTK7k^lxg}GdyO#nEV6}y=Kmgxm?#TZjhdok#HC6gLayq0A*yX7dtb%m*n+i^Apl; z&n-DWp`xwNPoPa>e!{$o&YIQj`F-s*``R=6cD#G0)jD}sd!DMD`8K`a&T2aGypCJA z$G2TK@8|cPDds1Hqlxkp^77*RM8nNG5{K*EI&USRReX%MWq@krM?0?bcEY6!n%0Zg z(dLZ5XTqrCqUV{gz!KQNt~uqru>I)TQxNc{?m;wh=R?tZM`l>PcV>WQto=W%wFb$ zz0OCQMxBpwPNMUjoTjMrg`n`bpD@bfT|@&i#gs$xKufl9`-iF z#2lUpqm+xDXTkzYU<146!m2^{@TeVmfAg^Ve-W|j`OMo9kIQhU5-Lid%G!~?qzADb z`745?b_B2??8xOq+L6oicH|#mN5Bx-5l~F+$ltDv9RbCx9RUx}(K33mBYy`w0)W^N zl;*oPRP6{J46-8_&yaQmJZ9|(=qQh3M@HjuupKdT#MluYdSXWao30%J?bMD4m0(9u z&Ds&i%`MrEsA%i$2--B-5sY&ZJL2RtMLQxKO=L%esj==oji^xse$-YZ05@LnOl?~(fqKIo9!y+R(goSyD~ zh@aD~&dHG(&>^OT^1yvU|9ua>^Fo|~Gtx!R(>9}3i5DeEU!%MTDLF|E>T;4=#;Yf( z-T2*a*vET>e@nfbJ)3L%uI*Vv+Nx*eZPn*tt3WK-BmCE_jhgs82PiokC1+&qw{)Oc zwIh0-1D&0gr_R{Rioa_!G8=Q#Vcp_-=}EhSZqors5Aq)2hgoRJ9^pr-KwZY($1?c? zkHk#iqUVtqAkBmHY|%%FR6G~)?E?OiZ!DiZGdH41Vl^6xze1p$5BgHRCA zKY0)e&5EAr;rBw3n3uDYe@9&syQk_^&rX6RR_!Q6s-0UWh5+1hYZR)jle3c;2)9Nd zYF+gHL7qj&R+ysuxz_^+`Qo8}Wd8622M__>I}}cv;$85lP>4pQ>LdEC->1+!!GHFw z<#wveJsJKzE$cBcmV^6UL76f*D#I@*yefNCM%u(@EoEMzAHS;b(riCz6Q8w|$%lUY z(!%Sr{iF?@wG403Fkh4+y1E0HGL=Dqpo{l{rVhwJ8skH8OH{1Was zxr%(fLprk}AB2(YpXF{<#84&)Bb_Lw7)A<56NQn&lno=JxatJ5)1T%!O!@_dW^)T$ z`(2uw^4q$fr1qr9B4gIOAp_*KEWwu8H?gnbT0L3jm*_Qi{uVymV<+a(-^8~)T&hQ@ z7`cisT&fqY;yc;*3Rm%+Nx!lCDdsHq8@m`dYh)DaY@7FuzxFl1k2TwR3duswPk31@ zt34}%EG)1THY#?)89sRjuoKKn;L6$wY2)oge9yx_(+J{x=D!dmwHkogd}htLyeo#Z z8&?dp8{OGkkzWqxD7OjfX>RjpwKn8hlJS@}q$oi#o7)5rP~0L3F(@~{pa38S1*Q4! zT4FpgD0omcD6u`kc=Gn-GCv-Fw-$JGRvjwUin!jv^i3)`E1 zVvo;7Y^QaDzoPfAB$LGMm>9(CX>-@F@35@O8T!ZM7f&KPcq5_Zcol`gb`am|-Ic%B z`%IM|IS+BrP2OjTGxvR*yMxwU^YCwY(EIl~#yjqQTCu$t23<`XZk=_Zp_*&hZ@QM2 zZ=L-Q#tAE%{=yu@%JvL}IxE|XVn}?ehyQF0`9_)ph>MDzm%DkbMTsF}a=c}>wRYy% z^NwTP^!&|fo9b%YOWTYn{r}Ceq)9_nOrT9u0T#~lj?AL*Qb^hw_zyOh(zk(=C z=ITAjwKAXH%m#@tv-!1#8mG<6eOSy#8G=_|w0O#b)T!yt@6fuRr}?s~wV9-QD%rcG zt3E+V*R^wt#icjX!#B(|-Zq?mxAdPZ=wzOMsS0eI=N`$jo#!5j0rET#zb$(z+4ye~ zCARS>NVfS~9)v=(+2>sIpVCCWC)@omQ-{P4DSBVY0M&pT=zo=-i%FIsn4d`i91N@r zf7QUc=$8%b*8&3no3di1UGy7}xY$>bI1hl4{Ffpb-_(CykvLl~oVZKq11Fo{9&9?G zoU{RGi@)#>K;{Yi5+bUjt-zoP&YaOTjx{5~hZJi&2!2c?yFFQOv(%v2ZY7K z1D46G8^ltNGu$$}kyv2ya6f@*KdDn<0qgzlBnOv&rrglCiBYu=-_e@OO@EglX_f&n z%}qa<@Zm4XO}}VJ`|+Z|_Tvl~4KP}C?|>q>q;vz=;C)}4?>#ANM-U&slXx6E-vH{t zj)1d?21m}a_F9}n_`gM?b3WEq!m`KF-)%jDDGI8Obu~>M(0#pA?>akxZvm5^&LM24zUg^EBQp~?pLmR^Ad03V8yaI@ebLqnmiFyiE5AdQ$w2|>L5|IT z!9q*yQERKrWMias*=6jJM`G4d(ep?QFcV`OLZtj$EXqP_F2-0zkTk{sOk<44w&X8~ zF|HnR?p~dryBA>Yg1MsmFciTV#T6i3i7W1(ozD};6`&sC3eeBS72pUyx(G$$iedj*|@^-c1w;cRP2Z=bV=9873dKH3F#85xwryCm?W-n zLY!h;AskHD-r{wxT1dR7V(bm+s-wy5aI>1 zZ|gh6UOc3IdU4)9Jpo1u z#1h}?qO2{N*tY_uTHgvZtM);CD|Bx1t&Gf!_cWnz1*8Yrw_3|WOV;GNDzI@bdL(Ar z6+Mr{0C_GR-Lm_8>xq<~i$%G?)R2e6{@$bLU;HKedoLMsZoVWxH=lvI3F1Zf*(ic? zx~KQ#+Ic$Bo*t+Mp9yqz(#A0e=vU{g?&$$haAbfeOyKICUag#`H=98s%w~R-p{DW1 zJcT3z<^RIe|vY@@lY(>SNseTQYuSxHU@a}j&eTWPCq6Jh0)4hoXeX?qX~15!G) zS2x?bitwF>y*iDw54ddAMnb_**@g?>Ie;1m(I`aO25v1md@lM=HfWzK^af+x8-=L1 zk%)eCf5jC(H#XaPJMoHr2gdDolfb0UdNJH>0*Ocv^fQ-%UwaBg+Qi8Mk=u?It<{Ho zO7d$wprVu~M?K0v6Nr3&D9<#VAayx^TC`$4vza(nJ<~C@0ea@Zkb34oUeCM)$_2!W z?#odGr#pmw=nke5=vmz%ZLq@SyS{jh zA4ZsUjUR4m1J?LUhg{IR~>3w7if|h!!rlPFxI7%s|A)|nif{HT?igxn2Mw*!HBooux;tR zhqtEZZq2z}kz)vw?uq~=yCM?XKa6I|v@aWXQOmvJ2bd*Qg?ih_nhc+Ce0{xqazMi2nbHwa!@X(Xp4Zx*eNy?f4dY zH_f|W3;88Z+Kk5P@kDfDtF}{-IIAY6(H-~>rqP`UQq$-@>|)b+f+BI>cL@?`SNgUq zAaN&x6p1_S%}90uNpCm(KY5q>I->K}wMm3zQaHMfMJUHvWnd!inEVQDUqq z46LUxaFW0RU(5R1DPYBSfJYNO*!J!GEzF73*ZZ|ac^gw35Z}IXNPGH98gliXjqaym zPeHuseilVgPHpPP=|TRRE#ja5#`1YVHN>}|s}68%13|xP12tC;M9xBq=z=p`&6U^6 zd3v5PNCeNAUuCFGGrk?(Pd$0x5B8=4nOE8_R))G9#FcnErf|1}SuRW^4&_GZBF0G8S8uj!I{Zk2}2rlMRY{R)&Uh!@>&pa{yTzWv02NQ`WA>9^lh!2r>Ad0B52qW z{Dj)U(YI$23(z9guk77E1JtE9ng@3W!ZoqJy`v(D_3fSLfl(IC`qq!ts@5=83oOBO ztXqo`Jj5^+Nl}84pl{h{@_QpolwZ9wJ>~o=3Imd<*c&;M^jpYdvL4gV_<(}=5TrHP zQ7?y+Pxd-#H9@Nr55Cw}4`*tG=7nRTJl1K+&lumTkzlfCuC07$+CrTOkp ziLoT#f(L{0Ef`N#_hs`f;L&NmnJC`^I?AKuTSnv2p>4>wm^otdEj;uj-vZcl^DUsA z=39hH$hV-H&9^viZprx;6>WXK1#KGhEg0t{`4%UqDdt;*qlxk@!qnLLmUBoZsa;gf zIhqN)E8$Wj<#n^kw|HWa4MMNj-awz3J9)N|VYvr2V#9($vtfask8er&9#|fV7#1#y zOHWCR8~S%6Ok%J_k@0iy(sPTuGiSKM#%(TyeLir(wh4vEHaQo-dHwx+1|l8j`wJOo z-9t9Tf0Mt--&p5!G<5M@|6E1lGBy2sDad7M`o98D?>zc{@;>#IL^+pvk`ez$_7XW4 z#P?*EI6h(~-Pt3^De~!EyaBj+^eWw=gxsPYF5Un<=@H@$d9Se0EYcucy9+68-0o$F zM<8PA1|h}MNF?n;6G%)>I=MGdl#tjpDl#)G^YO{AQhSY0?rmxV;*-}5Y42Z?xA$vq zP4*tdi|zu7pq$$LL+HT@G2*FN#mUQ3gjrkzeYkF^q*b7c{-=E0EQa#8QcRzp_ z(ih?1!zVu}@zHff365j&6(u?Wrgx>0LPMT5zWZY@HB1P$W=l%~7BPfCNe?&3BI_E|WkB52}F@$uiE%V|-OTjPYGgZF#TV?@fc}ppwC} ztIR}!6X+_>5;%> zX5%Wy+Zb`xFYUe$6+6Dm!(e5B*GF0C5uz;V5~_H`i=DZ}&irC$b$f2z?o(v0PZD%F zAx<&q0>=5*OcZnpQ^N;cur<2J{Tsvp)UC}$stp^>tnVXSRef(_E>CRPY`&D}6&rzF zYq!>$O5USCH|P(#PV?9?_PEcFSPlCf{$7v=6(w3EY{|ZC`2DA&DHePfwc=P1g~74l zL&#|C3pPF%3$pB;Q4ax_zk3Y<*abw$S$P);aur8AGt^Ze zF2qbMi{PVRS0^6L4SS#314-ui&+q5MM!k;OATL{#5NG_FixSdFU_n;V)Wu-YP=9H% zD1~J#bz? zEIHr0E94#hl*x~N{363Ewf&@x&*q7_ElOD< zQT8xo`sA5r5T&(9L7u4;r0%i%Bp_b6&kl%<^yd@s#{Cn?KgTxUVtPK54S3^_HsFmk zWimG4Y}f!0OKiaHR>lT^QmqXDO;T9NZy~7-K<6eKU}QEu8vvv$U;`RcMeP4x+ZuFs zNLNlaSM=M&d7LYfDLB%X3zrCz^LAcO{(S#Zyn$oS+q!SBYAc`fdDW{V=kvp&1Z7%- z(dP$1l)``xus4bJA+(%7NzX+-o|^f!P?S$FHEP~;hrk~Uxi)dUh@ zHSwzqwdv)-lNb)a;rm3Q%l;J#gMA|Z8@{|?B!mk#9~jucpb*>qURRz)9+X+7{mbaN zt{mC~qYwM=m-`K0?&s{Va1Hy$L<4zi-=qzGCeU-StRc7#q$t4z|0aFW3U^tqBN;u3 z;4C8)#Fc!q2cgg`Hr83R-Z;OlQh^7g}TB$yMIz3T+ zT$VJ{2ob-!xR5Rz$5Z3R7waj{ho0;P0yf>1$_8qH=wtmMCZ5p@uFwRM~_?(=kxWy+NO|-=)OvPJ#4W~)u9t3=^GtqgH=a48T z&JkRpNSqffCd=8P;8H`ex7TW}qT_d&upjhXLSn3m#zr6eSja1Y+ti4FcnSlq80P%g z5bqpEw*D$=#kL*=iFdB{AQYO-KgT-@q}b1%%>F-*C>6cu)BnM-b$d|19$A+c&_l_( z(5rH=D>JYcW?(N0FnK4=#|Zub#!g5@8j*h>?Oo^;+Cwnh9)+mAeR(#2Jx4Oae>Q*p z4Vt(34x=bBd<@F?1wk0g8ow4Lgn)*cD=JC|A%#H*DGWl0VLUkJXvph_qk)p7cLk>D zU8%A6y4{c2rg1Tt0;a!FE@rX%_{rRV>^qnRh&fTTaNisJ`R%wU^QDBA^(P9VKVR-a zC2QA(GW}~#YlQv~CHF@m>Th0kbY|iVk}3YPdinlTzZ>LSinwe% z#jHD(DQ_IAk7X95XH}oHK|az8(M%^s#);LUl(_o@NFwxG<+2zS^PlxG$@%RETmVwbi~|EJ&hy^3B{9E-l1AZaWL z*buSkTZXg=Z=qM5*#~?Xls_1vSQHdf8}Op64VX9<1;uPE3LX&W$>=2(?I0EfKw?pp z=DV*Z#*$bR4+h1e7!Qdx*=x+kqTn$bi-L~wD6!~hJPwXU%^WeYC=We}MFE>`EDG9b zEGkq&EQ)G27Ioa*l4DU7ZG9|?HjS|;#yLqW>f|)VSX4NgC>9l_;#joly4>Wx+}Dsy zNE=$CS@d381*&E8K8VTTdL+hZC=vtQwf2bG<4qi+J-lV_;${Oj+L705i1Ro`cE@>s zj~-OVuy3Ewf6laSL$oFT2_%q-#yQrW0+XHw$?dtkj#_A}@cX9bV}+V~^xrz9U3hEW zE?ft@0OCdW?I?nBY8zfh4^|*P0M!s5fNouU0Qyy3uJHj7h4=u78sdXmIZrP>0ErM0 zl;9`SrWqeJE!gY{=|b&7!)L6FXoM_=nOD?*WMebM`b*3%mM!(2YgcwcwGjlPOK;tIlAc6U6NMU zO=x?-`^|)H;!U5oD3Y4!fEf%~wr~vFp5=b4A_2qWo#lR;B5{Ygg|hnvMlX?$`-Mf7 z$rg~@B0tFec13b1z=!%<%ink6q zve6(#&#&bO=+|-t^lLc+`n7C#`6b1s0!oc0D^ z=eA*p8@m7*^VKL{j(=Tm~8P&+t&(EEr5Oh%I@Eqd>-0#%V^;uep@tYt-FfIQE`e$<)d1bvVw zu@i)XI6)usAQT2TLGXb#(M0BNIaGa!wjSO!`3s^{^!}3mUlGM$<$!;k0g8=sTTT1> z9{@^$x$UI={p-0KPOP}hXvkz@^h8?Z5t%YU;gYAJJw(IpQHa{>d$Rjct4T)q&)S>+ zB7MW(Dwh~O25!ti5QcesMb8T(0(xN>AT#Z>J_O+uxl`>BL#*26?2^3eZ=?ld#MlplJDt% z@{2=S{m*a2#JQ3F|MNp{U9<`*FZO=}`%Dbq@snTV^z4>Ch!9WqyZH}gbt&?5FD3e8 z-r>&gLi}=CZ=j0woeWV@j7K2F2!Ny*QJU}mJ@JyH81bN*Vx&EibPQE}j4|x@V~}s- zXQCr6z^!~qT5&YKoL;AuB1c?^ubI|oh^D`*eQDn??|e*EzkYFp^rYP3&Tp-2&H3-x zF)(};wAh*1y(Dta<_@LZo-uNVkEeD0OSq5yD*E>Dkj|`(66rx1X69>j3}uq^pcBOu z(}Tj%MCn0c%BBaKKIVp9IycPsF~8;hTau%y^KjPCe9Mg%vEnA@u=;K7hpCzOB^$r3 z{ppZ8?Wb9t*8L3Wj6R4ZdhHWgy*BZ;wV*b@?Y8=Cu)S{e|~ehc~u z92DLEMiJ!Gc=pTLcM4raW8l9rUayQh#IvBQiYuN|pkICOn%4*WA)W=Ipv0iV-bEZ@ zJ~YdEYEy+@XHaPTIzw%gX~g<>Gx2^Z@xF8w{nFJDYv&e=OK&De>J4-B(;z1|C^+Qx ze??vm{RY|Jvuu-i_TxF=KU9H6dy%u_zEeBr9MNC+y^On5=q#J_dOc4k0(v?INF#c9 z?TFwze6VP>?vK2_D#Zi+eZsPXQo`n;VPL4(Vr~fe(prr>|M7e9|3+v^YX|5-ucn=~0l(sa&odKO2)Q(V|ErAgYq`$zfMh} zb!77p@1uE*|K@2OEg+sCy}C^G2hdz+G%jg?sV*0ZI0gwXyU`CV zW9GX1NM#)qB_^u(AB1tA*u|5?=Wwf{C^2>8Ua~mkN!m+RNl{{UJMywwRg{?B4kYWO zC^5SoNLEWxVs<-_tdyd}y<`Q+leCwtq@u)xk9*0ok|${| zSzASkH9?oo`bF^uGg-r;h=6`k7#%H>Ll$UJVoeZ6zbK;4Zc*%fqmq%%vW$xoOX3>N zKb=AIp7T#@;0%3(;LaIx*{E+4B+W(vX3xUyCmi@o@==t18pcODY=DpSb2vs|jLyV? za_S%bFzX*-9bZd4jhUkoQ8<@~WhYjQ5?0^=i6N1KB&?1>!U_OMSfMoEU3E+)VTA|P zgjMWsVLVlT3*))WkH_ET2&p)4YbHuwfsXPh$*a+LbZA5J3iQ8E^pU$_U(QSwb0m&O zo*an-Y`RC{Ks!AWCsaaO3)O5|%W*SeT8rbX7bSVEqthBHt*K!{fufAyO1xx!lgXPk6Yc|j9{0`D|b`{niiGv6lkHle|ljOXdoTixb5{@Ry zc?nZC=hgI8b9}z$TO<%zYU^h7zFh^XtKj`@bH2tSSvI~(Kw^NTTZ@+ejTBsE|2-na z+e#=5v4`{`T5A)2)ASvpT&U1YJWVVGn zIwXGrav4v^`A?uMmfZPIA_wf0pd>pi0@EE9saMZ!v#t7X>K5Co?-L}oRe%j)t5ywX zs}3Jvt2U9!?}IV2RiK>Os@3$odPZ+zTLp?)TLm6q2Sf^DtB!}Q0zhmPO7q=AtF{Uc z2H7f%hr~O~`EBr+wN;>_Jc_LvjmLqu%1jkwt9ayztpaSiwhFXUTP0M2twJ?xs~k7C zWLu@8t+!QZ(`c(OΠ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

TRFBT`5y3 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

YUL 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 C|D}Kc diff --git a/bin/OpenMetaverseTypes.XML b/bin/OpenMetaverseTypes.XML index befc8d4ef4..ce1298ee8d 100644 --- a/bin/OpenMetaverseTypes.XML +++ b/bin/OpenMetaverseTypes.XML @@ -1,131 +1,239 @@ - OpenMetaverseTypes + /home/root/libomv-0.9.1-source/bin/OpenMetaverseTypes - +

- A three-dimensional vector with doubleing-point values + Same as Queue except Dequeue function blocks until there is an object to return. + Note: This class does not need to be synchronized - - X value - - - Y value - - - Z value - - + - Constructor, builds a vector from a byte array + Create new BlockingQueue. - Byte array containing three eight-byte doubles + The System.Collections.ICollection to copy elements from + + + + Create new BlockingQueue. + + The initial number of elements that the queue can contain + + + + Create new BlockingQueue. + + + + + Gets flag indicating if queue has been closed. + + + + + BlockingQueue Destructor (Close queue, resume any waiting thread). + + + + + Remove all objects from the Queue. + + + + + Remove all objects from the Queue, resume all dequeue threads. + + + + + Removes and returns the object at the beginning of the Queue. + + Object in queue. + + + + Removes and returns the object at the beginning of the Queue. + + time to wait before returning + Object in queue. + + + + Removes and returns the object at the beginning of the Queue. + + time to wait before returning (in milliseconds) + Object in queue. + + + + Adds an object to the end of the Queue + + Object to put in queue + + + + Open Queue. + + + + + Copy constructor + + Circular queue to copy + + + + An 8-bit color structure including an alpha channel + + + + + + + + + + + + + + + + + Builds a color from a byte array + + Byte array containing a 16 byte color Beginning position in the byte array + True if the byte array stores inverted values, + otherwise false. For example the color black (fully opaque) inverted + would be 0xFF 0xFF 0xFF 0x00 - - - Test if this vector is equal to another vector, within a given - tolerance range - - Vector to test against - The acceptable magnitude of difference - between the two vectors - True if the magnitude of difference between the two vectors - is less than the given tolerance, otherwise false - - - - IComparable.CompareTo implementation - - - - - Test if this vector is composed of all finite numbers - - - - - Builds a vector from a byte array - - Byte array containing a 24 byte vector - Beginning position in the byte array - - + Returns the raw bytes for this vector - A 24 byte array containing X, Y, and Z + Byte array containing a 16 byte color + Beginning position in the byte array + True if the byte array stores inverted values, + otherwise false. For example the color black (fully opaque) inverted + would be 0xFF 0xFF 0xFF 0x00 + True if the alpha value is inverted in + addition to whatever the inverted parameter is. Setting inverted true + and alphaInverted true will flip the alpha value back to non-inverted, + but keep the other color bytes inverted + A 16 byte array containing R, G, B, and A - + - Writes the raw bytes for this vector to a byte array + Copy constructor + + Color to copy + + + Red + + + Green + + + Blue + + + Alpha + + + A Color4 with zero RGB values and fully opaque (alpha 1.0) + + + A Color4 with full RGB values (1.0) and fully opaque (alpha 1.0) + + + + IComparable.CompareTo implementation + + Sorting ends up like this: |--Grayscale--||--Color--|. + Alpha is only used when the colors are otherwise equivalent + + + + Builds a color from a byte array + + Byte array containing a 16 byte color + Beginning position in the byte array + True if the byte array stores inverted values, + otherwise false. For example the color black (fully opaque) inverted + would be 0xFF 0xFF 0xFF 0x00 + True if the alpha value is inverted in + addition to whatever the inverted parameter is. Setting inverted true + and alphaInverted true will flip the alpha value back to non-inverted, + but keep the other color bytes inverted + + + + Writes the raw bytes for this color to a byte array Destination byte array Position in the destination array to start - writing. Must be at least 24 bytes before the end of the array + writing. Must be at least 16 bytes before the end of the array - + - Parse a vector from a string + Serializes this color into four bytes in a byte array - A string representation of a 3D vector, enclosed - in arrow brackets and separated by commas + Destination byte array + Position in the destination array to start + writing. Must be at least 4 bytes before the end of the array + True to invert the output (1.0 becomes 0 + instead of 255) - + - Interpolates between two vectors using a cubic equation + Writes the raw bytes for this color to a byte array + + Destination byte array + Position in the destination array to start + writing. Must be at least 16 bytes before the end of the array + + + + Ensures that values are in range 0-1 - + - Get a formatted string representation of the vector + Create an RGB color from a hue, saturation, value combination - A string representation of the vector + Hue + Saturation + Value + An fully opaque RGB color (alpha is 1.0) - + - Get a string representation of the vector elements with up to three - decimal digits and separated by spaces only + Performs linear interpolation between two colors - Raw string representation of the vector - - - - Cross product between two vectors - - - - A vector with a value of 0,0,0 - - - A vector with a value of 1,1,1 - - - A unit vector facing forward (X axis), value of 1,0,0 - - - A unit vector facing left (Y axis), value of 0,1,0 - - - A unit vector facing up (Z axis), value of 0,0,1 + Color to start at + Color to end at + Amount to interpolate + The interpolated color Attribute class that allows extra attributes to be attached to ENUMs - - Text used when presenting ENUM to user - Default initializer Text used when presenting ENUM to user + + Text used when presenting ENUM to user + The different types of grid assets @@ -147,11 +255,11 @@ Link to a location in world - Collection of textures and parameters that can be + Collection of textures and parameters that can be worn by an avatar - Primitive that can contain textures, sounds, + Primitive that can contain textures, sounds, scripts and more @@ -259,34 +367,42 @@ Notecard - + + Folder - + + an LSL Script - + + - + + - + + - + + - + + - + + @@ -355,21 +471,979 @@ Tattoo + + Physics + Invalid wearable asset + + + Identifier code for primitive types + + + + None + + + A Primitive + + + A Avatar + + + Linden grass + + + Linden tree + + + A primitive that acts as the source for a particle stream + + + A Linden tree + + + + Primary parameters for primitives such as Physics Enabled or Phantom + + + + Deprecated + + + Whether physics are enabled for this object + + + + + + + + + + + + + + + + + + + + + + + + + + + Whether this object contains an active touch script + + + + + + + Whether this object can receive payments + + + Whether this object is phantom (no collisions) + + + + + + + + + + + + + + + + + + + Deprecated + + + + + + + + + + + + + + + Deprecated + + + + + + + + + + + + + + + + + + + Server flag, will not be sent to clients. Specifies that + the object is destroyed when it touches a simulator edge + + + Server flag, will not be sent to clients. Specifies that + the object will be returned to the owner's inventory when it + touches a simulator edge + + + Server flag, will not be sent to clients. + + + Server flag, will not be sent to client. Specifies that + the object is hovering/flying + + + + + + + + + + + + + + + + + + + + Sound flags for sounds attached to primitives + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Material type for a primitive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Used in a helper function to roughly determine prim shape + + + + + Extra parameters for primitives, these flags are for features that have + been added after the original ObjectFlags that has all eight bits + reserved already + + + + Whether this object has flexible parameters + + + Whether this object has light parameters + + + Whether this object is a sculpted prim + + + Whether this object is a mesh + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Attachment points for objects on avatar bodies + + + Both InventoryObject and InventoryAttachment types can be attached + + + + Right hand if object was not previously attached + + + Chest + + + Skull + + + Left shoulder + + + Right shoulder + + + Left hand + + + Right hand + + + Left foot + + + Right foot + + + Spine + + + Pelvis + + + Mouth + + + Chin + + + Left ear + + + Right ear + + + Left eyeball + + + Right eyeball + + + Nose + + + Right upper arm + + + Right forearm + + + Left upper arm + + + Left forearm + + + Right hip + + + Right upper leg + + + Right lower leg + + + Left hip + + + Left upper leg + + + Left lower leg + + + Stomach + + + Left pectoral + + + Right pectoral + + + HUD Center position 2 + + + HUD Top-right + + + HUD Top + + + HUD Top-left + + + HUD Center + + + HUD Bottom-left + + + HUD Bottom + + + HUD Bottom-right + + + + Tree foliage types + + + + Pine1 tree + + + Oak tree + + + Tropical Bush1 + + + Palm1 tree + + + Dogwood tree + + + Tropical Bush2 + + + Palm2 tree + + + Cypress1 tree + + + Cypress2 tree + + + Pine2 tree + + + Plumeria + + + Winter pinetree1 + + + Winter Aspen tree + + + Winter pinetree2 + + + Eucalyptus tree + + + Fern + + + Eelgrass + + + Sea Sword + + + Kelp1 plant + + + Beach grass + + + Kelp2 plant + + + + Grass foliage types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Action associated with clicking on an object + + + + Touch object + + + Sit on object + + + Purchase object or contents + + + Pay the object + + + Open task inventory + + + Play parcel media + + + Open parcel media + + + + Type of physics representation used for this prim in the simulator + + + + Use prim physics form this object + + + No physics, prim doesn't collide + + + Use convex hull represantion of this prim + + + For thread safety + + + For thread safety + + + + Purges expired objects from the cache. Called automatically by the purge timer. + + + + + A thread-safe lockless queue that supports multiple readers and + multiple writers + + + + + Constructor + + + + + Provides a node container for data in a singly linked list + + + + + Constructor + + + + + Constructor + + + + Pointer to the next node in list + + + The data contained by the node + + + Queue head + + + Queue tail + + + Queue item count + + + Gets the current number of items in the queue. Since this + is a lockless collection this value should be treated as a close + estimate + + + + Enqueue an item + + Item to enqeue + + + + Try to dequeue an item + + Dequeued item if the dequeue was successful + True if an item was successfully deqeued, otherwise false + + + A 4x4 matrix containing all zeroes + + + A 4x4 identity matrix + + + + Convert this matrix to euler rotations + + X euler angle + Y euler angle + Z euler angle + + + + Convert this matrix to a quaternion rotation + + A quaternion representation of this rotation matrix + + + + Construct a matrix from euler rotation values in radians + + X euler angle in radians + Y euler angle in radians + Z euler angle in radians + + + + Get a formatted string representation of the vector + + A string representation of the vector + + + + Provides helper methods for parallelizing loops + + + + + Executes a for loop in which iterations may run in parallel + + The loop will be started at this index + The loop will be terminated before this index is reached + Method body to run for each iteration of the loop + + + + Executes a for loop in which iterations may run in parallel + + The number of concurrent execution threads to run + The loop will be started at this index + The loop will be terminated before this index is reached + Method body to run for each iteration of the loop + + + + Executes a foreach loop in which iterations may run in parallel + + Object type that the collection wraps + An enumerable collection to iterate over + Method body to run for each object in the collection + + + + Executes a foreach loop in which iterations may run in parallel + + Object type that the collection wraps + The number of concurrent execution threads to run + An enumerable collection to iterate over + Method body to run for each object in the collection + + + + Executes a series of tasks in parallel + + A series of method bodies to execute + + + + Executes a series of tasks in parallel + + The number of concurrent execution threads to run + A series of method bodies to execute + + + + Build a quaternion from normalized float values + + X value from -1.0 to 1.0 + Y value from -1.0 to 1.0 + Z value from -1.0 to 1.0 + + + + Constructor, builds a quaternion object from a byte array + + Byte array containing four four-byte floats + Offset in the byte array to start reading at + Whether the source data is normalized or + not. If this is true 12 bytes will be read, otherwise 16 bytes will + be read. + + + X value + + + Y value + + + Z value + + + W value + + + A quaternion with a value of 0,0,0,1 + + + + Normalizes the quaternion + + + + + Builds a quaternion object from a byte array + + The source byte array + Offset in the byte array to start reading at + Whether the source data is normalized or + not. If this is true 12 bytes will be read, otherwise 16 bytes will + be read. + + + + Normalize this quaternion and serialize it to a byte array + + A 12 byte array containing normalized X, Y, and Z floating + point values in order using little endian byte ordering + + + + Writes the raw bytes for this quaternion to a byte array + + Destination byte array + Position in the destination array to start + writing. Must be at least 12 bytes before the end of the array + + + + Convert this quaternion to euler angles + + X euler angle + Y euler angle + Z euler angle + + + + Convert this quaternion to an angle around an axis + + Unit vector describing the axis + Angle around the axis, in radians + + + + Returns the conjugate (spatial inverse) of a quaternion + + + + + Build a quaternion from an axis and an angle of rotation around + that axis + + + + + Build a quaternion from an axis and an angle of rotation around + that axis + + Axis of rotation + Angle of rotation + + + + Creates a quaternion from a vector containing roll, pitch, and yaw + in radians + + Vector representation of the euler angles in + radians + Quaternion representation of the euler angles + + + + Creates a quaternion from roll, pitch, and yaw euler angles in + radians + + X angle in radians + Y angle in radians + Z angle in radians + Quaternion representation of the euler angles + + + + Conjugates and renormalizes a vector + + + + + Spherical linear interpolation between two quaternions + + + + + Get a string representation of the quaternion elements with up to three + decimal digits and separated by spaces only + + Raw string representation of the quaternion + + + + Determines the appropriate events to set, leaves the locks, and sets the events. + + + + + A routine for lazily creating a event outside the lock (so if errors + happen they are outside the lock and that we don't do much work + while holding a spin lock). If all goes well, reenter the lock and + set 'waitEvent' + + + + + Waits on 'waitEvent' with a timeout of 'millisceondsTimeout. + Before the wait 'numWaiters' is incremented and is restored before leaving this routine. + + A hierarchical token bucket for bandwidth throttling. See http://en.wikipedia.org/wiki/Token_bucket for more information + + + Default constructor + + Parent bucket if this is a child bucket, or + null if this is a root bucket + Maximum size of the bucket in bytes, or + zero if this bucket has no maximum capacity + Rate that the bucket fills, in bytes per + second. If zero, the bucket always remains full + Parent bucket to this bucket, or null if this is a root bucket - Size of the bucket in bytes. If zero, the bucket has + Size of the bucket in bytes. If zero, the bucket has infinite capacity @@ -382,16 +1456,35 @@ Time of the last drip, in system ticks - + - Default constructor + The parent bucket of this bucket, or null if this bucket has no + parent. The parent bucket will limit the aggregate bandwidth of all + of its children buckets - Parent bucket if this is a child bucket, or - null if this is a root bucket - Maximum size of the bucket in bytes, or - zero if this bucket has no maximum capacity - Rate that the bucket fills, in bytes per - second. If zero, the bucket always remains full + + + + Maximum burst rate in bytes per second. This is the maximum number + of tokens that can accumulate in the bucket at any one time + + + + + The speed limit of this bucket in bytes per second. This is the + number of tokens that are added to the bucket per second + + Tokens are added to the bucket any time + is called, at the granularity of + the system tick interval (typically around 15-22ms) + + + + The number of bytes that can be sent at this moment. This is the + current number of tokens in the bucket + If this bucket has a parent bucket that does not have + enough tokens for a request, will + return false regardless of the content of this bucket @@ -414,273 +1507,22 @@ Add tokens to the bucket over time. The number of tokens added each - call depends on the length of time that has passed since the last + call depends on the length of time that has passed since the last call to Drip True if tokens were added to the bucket, otherwise false - - - The parent bucket of this bucket, or null if this bucket has no - parent. The parent bucket will limit the aggregate bandwidth of all - of its children buckets - - - - - Maximum burst rate in bytes per second. This is the maximum number - of tokens that can accumulate in the bucket at any one time - - - - - The speed limit of this bucket in bytes per second. This is the - number of tokens that are added to the bucket per second - - Tokens are added to the bucket any time - is called, at the granularity of - the system tick interval (typically around 15-22ms) - - - - The number of bytes that can be sent at this moment. This is the - current number of tokens in the bucket - If this bucket has a parent bucket that does not have - enough tokens for a request, will - return false regardless of the content of this bucket - - - - - A thread-safe lockless queue that supports multiple readers and - multiple writers - - - - Queue head - - - Queue tail - - - Queue item count - - - - Constructor - - - - - Enqueue an item - - Item to enqeue - - - - Try to dequeue an item - - Dequeued item if the dequeue was successful - True if an item was successfully deqeued, otherwise false - - - Gets the current number of items in the queue. Since this - is a lockless collection this value should be treated as a close - estimate - - - - Provides a node container for data in a singly linked list - - - - Pointer to the next node in list - - - The data contained by the node - - - - Constructor - - - - - Constructor - - - - - An 8-bit color structure including an alpha channel - - - - Red - - - Green - - - Blue - - - Alpha - - - - - - - - - - - - - Builds a color from a byte array - - Byte array containing a 16 byte color - Beginning position in the byte array - True if the byte array stores inverted values, - otherwise false. For example the color black (fully opaque) inverted - would be 0xFF 0xFF 0xFF 0x00 - - - - Returns the raw bytes for this vector - - Byte array containing a 16 byte color - Beginning position in the byte array - True if the byte array stores inverted values, - otherwise false. For example the color black (fully opaque) inverted - would be 0xFF 0xFF 0xFF 0x00 - True if the alpha value is inverted in - addition to whatever the inverted parameter is. Setting inverted true - and alphaInverted true will flip the alpha value back to non-inverted, - but keep the other color bytes inverted - A 16 byte array containing R, G, B, and A - - - - Copy constructor - - Color to copy - - - - IComparable.CompareTo implementation - - Sorting ends up like this: |--Grayscale--||--Color--|. - Alpha is only used when the colors are otherwise equivalent - - - - Builds a color from a byte array - - Byte array containing a 16 byte color - Beginning position in the byte array - True if the byte array stores inverted values, - otherwise false. For example the color black (fully opaque) inverted - would be 0xFF 0xFF 0xFF 0x00 - True if the alpha value is inverted in - addition to whatever the inverted parameter is. Setting inverted true - and alphaInverted true will flip the alpha value back to non-inverted, - but keep the other color bytes inverted - - - - Writes the raw bytes for this color to a byte array - - Destination byte array - Position in the destination array to start - writing. Must be at least 16 bytes before the end of the array - - - - Serializes this color into four bytes in a byte array - - Destination byte array - Position in the destination array to start - writing. Must be at least 4 bytes before the end of the array - True to invert the output (1.0 becomes 0 - instead of 255) - - - - Writes the raw bytes for this color to a byte array - - Destination byte array - Position in the destination array to start - writing. Must be at least 16 bytes before the end of the array - - - - Ensures that values are in range 0-1 - - - - - Create an RGB color from a hue, saturation, value combination - - Hue - Saturation - Value - An fully opaque RGB color (alpha is 1.0) - - - - Performs linear interpolation between two colors - - Color to start at - Color to end at - Amount to interpolate - The interpolated color - - - A Color4 with zero RGB values and fully opaque (alpha 1.0) - - - A Color4 with full RGB values (1.0) and fully opaque (alpha 1.0) - - - - Determines the appropriate events to set, leaves the locks, and sets the events. - - - - - A routine for lazily creating a event outside the lock (so if errors - happen they are outside the lock and that we don't do much work - while holding a spin lock). If all goes well, reenter the lock and - set 'waitEvent' - - - - - Waits on 'waitEvent' with a timeout of 'millisceondsTimeout. - Before the wait 'numWaiters' is incremented and is restored before leaving this routine. - - - - - Copy constructor - - Circular queue to copy - A 128-bit Universally Unique Identifier, used throughout the Second Life networking protocol - - The System.Guid object this struct wraps around - Constructor that takes a string UUID representation - A string representation of a UUID, case + A string representation of a UUID, case insensitive and can either be hyphenated or non-hyphenated UUID("11f8aa9c-b071-4242-836b-13b7abe0d489") @@ -700,7 +1542,7 @@ - Constructor that takes an unsigned 64-bit unsigned integer to + Constructor that takes an unsigned 64-bit unsigned integer to convert to a UUID 64-bit unsigned integer to convert to a UUID @@ -711,6 +1553,15 @@ UUID to copy + + The System.Guid object this struct wraps around + + + An UUID with a value of all zeroes + + + A cache of UUID.Zero as a string to optimize a common path + IComparable.CompareTo implementation @@ -753,7 +1604,7 @@ Generate a UUID from a string - A string representation of a UUID, case + A string representation of a UUID, case insensitive and can either be hyphenated or non-hyphenated UUID.Parse("11f8aa9c-b071-4242-836b-13b7abe0d489") @@ -761,7 +1612,7 @@ Generate a UUID from a string - A string representation of a UUID, case + A string representation of a UUID, case insensitive and can either be hyphenated or non-hyphenated Will contain the parsed UUID if successful, otherwise null @@ -779,9 +1630,9 @@ - - + + @@ -807,7 +1658,7 @@ Get a hyphenated string representation of this UUID - A string representation of this UUID, lowercase and + A string representation of this UUID, lowercase and with hyphens 11f8aa9c-b071-4242-836b-13b7abe0d489 @@ -839,15 +1690,40 @@ String typecasting operator - A UUID in string form. Case insensitive, + A UUID in string form. Case insensitive, hyphenated or non-hyphenated A UUID built from the string representation - - An UUID with a value of all zeroes + + + Operating system + - - A cache of UUID.Zero as a string to optimize a common path + + Unknown + + + Microsoft Windows + + + Microsoft Windows CE + + + Linux + + + Apple OSX + + + + Runtime platform + + + + .NET runtime + + + Mono runtime: http://www.mono-project.com/ Used for converting degrees to radians @@ -857,7 +1733,7 @@ Provide a single instance of the CultureInfo class to - help parsing in situations where the grid assumes an en-us + help parsing in situations where the grid assumes an en-us culture @@ -1279,7 +2155,7 @@ Takes an AssetType and returns the string representation - The source + The source The string version of the AssetType @@ -1293,7 +2169,7 @@ Convert an InventoryType to a string - The to convert + The to convert A string representation of the source @@ -1307,7 +2183,7 @@ Convert a SaleType to a string - The to convert + The to convert A string representation of the source @@ -1382,7 +2258,7 @@ Convert a native DateTime object to a UNIX timestamp - A DateTime object you want to convert to a + A DateTime object you want to convert to a timestamp An unsigned integer representing a UNIX timestamp @@ -1413,335 +2289,330 @@ Attempts to convert a string representation of a hostname or IP - address to a - + address to a Hostname to convert to an IPAddress Converted IP address object, or null if the conversion failed - + - Operating system + A two-dimensional vector with floating-point values - - Unknown - - - Microsoft Windows - - - Microsoft Windows CE - - - Linux - - - Apple OSX - - - - Runtime platform - - - - .NET runtime - - - Mono runtime: http://www.mono-project.com/ - - + X value - + Y value - - Z value + + A vector with a value of 0,0 - - W value + + A vector with a value of 1,1 - + + A vector with a value of 1,0 + + + A vector with a value of 0,1 + + - Build a quaternion from normalized float values + Test if this vector is equal to another vector, within a given + tolerance range - X value from -1.0 to 1.0 - Y value from -1.0 to 1.0 - Z value from -1.0 to 1.0 + Vector to test against + The acceptable magnitude of difference + between the two vectors + True if the magnitude of difference between the two vectors + is less than the given tolerance, otherwise false - + - Constructor, builds a quaternion object from a byte array - - Byte array containing four four-byte floats - Offset in the byte array to start reading at - Whether the source data is normalized or - not. If this is true 12 bytes will be read, otherwise 16 bytes will - be read. - - - - Normalizes the quaternion + Test if this vector is composed of all finite numbers - + - Builds a quaternion object from a byte array + IComparable.CompareTo implementation - The source byte array - Offset in the byte array to start reading at - Whether the source data is normalized or - not. If this is true 12 bytes will be read, otherwise 16 bytes will - be read. - + - Normalize this quaternion and serialize it to a byte array + Builds a vector from a byte array - A 12 byte array containing normalized X, Y, and Z floating - point values in order using little endian byte ordering + Byte array containing two four-byte floats + Beginning position in the byte array - + - Writes the raw bytes for this quaternion to a byte array + Returns the raw bytes for this vector + + An eight-byte array containing X and Y + + + + Writes the raw bytes for this vector to a byte array Destination byte array Position in the destination array to start - writing. Must be at least 12 bytes before the end of the array + writing. Must be at least 8 bytes before the end of the array - + - Convert this quaternion to euler angles + Parse a vector from a string - X euler angle - Y euler angle - Z euler angle + A string representation of a 2D vector, enclosed + in arrow brackets and separated by commas - + - Convert this quaternion to an angle around an axis - - Unit vector describing the axis - Angle around the axis, in radians - - - - Returns the conjugate (spatial inverse) of a quaternion + Interpolates between two vectors using a cubic equation - - - Build a quaternion from an axis and an angle of rotation around - that axis - - - - - Build a quaternion from an axis and an angle of rotation around - that axis - - Axis of rotation - Angle of rotation - - - - Creates a quaternion from a vector containing roll, pitch, and yaw - in radians - - Vector representation of the euler angles in - radians - Quaternion representation of the euler angles - - - - Creates a quaternion from roll, pitch, and yaw euler angles in - radians - - X angle in radians - Y angle in radians - Z angle in radians - Quaternion representation of the euler angles - - - - Conjugates and renormalizes a vector - - - - - Spherical linear interpolation between two quaternions - - - - - Get a string representation of the quaternion elements with up to three - decimal digits and separated by spaces only - - Raw string representation of the quaternion - - - A quaternion with a value of 0,0,0,1 - - - - Same as Queue except Dequeue function blocks until there is an object to return. - Note: This class does not need to be synchronized - - - - - Create new BlockingQueue. - - The System.Collections.ICollection to copy elements from - - - - Create new BlockingQueue. - - The initial number of elements that the queue can contain - - - - Create new BlockingQueue. - - - - - BlockingQueue Destructor (Close queue, resume any waiting thread). - - - - - Remove all objects from the Queue. - - - - - Remove all objects from the Queue, resume all dequeue threads. - - - - - Removes and returns the object at the beginning of the Queue. - - Object in queue. - - - - Removes and returns the object at the beginning of the Queue. - - time to wait before returning - Object in queue. - - - - Removes and returns the object at the beginning of the Queue. - - time to wait before returning (in milliseconds) - Object in queue. - - - - Adds an object to the end of the Queue - - Object to put in queue - - - - Open Queue. - - - - - Gets flag indicating if queue has been closed. - - - - - Provides helper methods for parallelizing loops - - - - - Executes a for loop in which iterations may run in parallel - - The loop will be started at this index - The loop will be terminated before this index is reached - Method body to run for each iteration of the loop - - - - Executes a for loop in which iterations may run in parallel - - The number of concurrent execution threads to run - The loop will be started at this index - The loop will be terminated before this index is reached - Method body to run for each iteration of the loop - - - - Executes a foreach loop in which iterations may run in parallel - - Object type that the collection wraps - An enumerable collection to iterate over - Method body to run for each object in the collection - - - - Executes a foreach loop in which iterations may run in parallel - - Object type that the collection wraps - The number of concurrent execution threads to run - An enumerable collection to iterate over - Method body to run for each object in the collection - - - - Executes a series of tasks in parallel - - A series of method bodies to execute - - - - Executes a series of tasks in parallel - - The number of concurrent execution threads to run - A series of method bodies to execute - - - - Convert this matrix to euler rotations - - X euler angle - Y euler angle - Z euler angle - - - - Convert this matrix to a quaternion rotation - - A quaternion representation of this rotation matrix - - - - Construct a matrix from euler rotation values in radians - - X euler angle in radians - Y euler angle in radians - Z euler angle in radians - - + Get a formatted string representation of the vector A string representation of the vector - - A 4x4 matrix containing all zeroes + + + Get a string representation of the vector elements with up to three + decimal digits and separated by spaces only + + Raw string representation of the vector - - A 4x4 identity matrix + + + A three-dimensional vector with floating-point values + + + + + Constructor, builds a vector from a byte array + + Byte array containing three four-byte floats + Beginning position in the byte array + + + X value + + + Y value + + + Z value + + + A vector with a value of 0,0,0 + + + A vector with a value of 1,1,1 + + + A unit vector facing forward (X axis), value 1,0,0 + + + A unit vector facing left (Y axis), value 0,1,0 + + + A unit vector facing up (Z axis), value 0,0,1 + + + + Test if this vector is equal to another vector, within a given + tolerance range + + Vector to test against + The acceptable magnitude of difference + between the two vectors + True if the magnitude of difference between the two vectors + is less than the given tolerance, otherwise false + + + + IComparable.CompareTo implementation + + + + + Test if this vector is composed of all finite numbers + + + + + Builds a vector from a byte array + + Byte array containing a 12 byte vector + Beginning position in the byte array + + + + Returns the raw bytes for this vector + + A 12 byte array containing X, Y, and Z + + + + Writes the raw bytes for this vector to a byte array + + Destination byte array + Position in the destination array to start + writing. Must be at least 12 bytes before the end of the array + + + + Parse a vector from a string + + A string representation of a 3D vector, enclosed + in arrow brackets and separated by commas + + + + Calculate the rotation between two vectors + + Normalized directional vector (such as 1,0,0 for forward facing) + Normalized target vector + + + + Interpolates between two vectors using a cubic equation + + + + + Get a formatted string representation of the vector + + A string representation of the vector + + + + Get a string representation of the vector elements with up to three + decimal digits and separated by spaces only + + Raw string representation of the vector + + + + Cross product between two vectors + + + + + A three-dimensional vector with doubleing-point values + + + + + Constructor, builds a vector from a byte array + + Byte array containing three eight-byte doubles + Beginning position in the byte array + + + X value + + + Y value + + + Z value + + + A vector with a value of 0,0,0 + + + A vector with a value of 1,1,1 + + + A unit vector facing forward (X axis), value of 1,0,0 + + + A unit vector facing left (Y axis), value of 0,1,0 + + + A unit vector facing up (Z axis), value of 0,0,1 + + + + Test if this vector is equal to another vector, within a given + tolerance range + + Vector to test against + The acceptable magnitude of difference + between the two vectors + True if the magnitude of difference between the two vectors + is less than the given tolerance, otherwise false + + + + IComparable.CompareTo implementation + + + + + Test if this vector is composed of all finite numbers + + + + + Builds a vector from a byte array + + Byte array containing a 24 byte vector + Beginning position in the byte array + + + + Returns the raw bytes for this vector + + A 24 byte array containing X, Y, and Z + + + + Writes the raw bytes for this vector to a byte array + + Destination byte array + Position in the destination array to start + writing. Must be at least 24 bytes before the end of the array + + + + Parse a vector from a string + + A string representation of a 3D vector, enclosed + in arrow brackets and separated by commas + + + + Interpolates between two vectors using a cubic equation + + + + + Get a formatted string representation of the vector + + A string representation of the vector + + + + Get a string representation of the vector elements with up to three + decimal digits and separated by spaces only + + Raw string representation of the vector + + + + Cross product between two vectors + + + + + Constructor, builds a vector from a byte array + + Byte array containing four four-byte floats + Beginning position in the byte array X value @@ -1755,12 +2626,23 @@ W value - - - Constructor, builds a vector from a byte array - - Byte array containing four four-byte floats - Beginning position in the byte array + + A vector with a value of 0,0,0,0 + + + A vector with a value of 1,1,1,1 + + + A vector with a value of 1,0,0,0 + + + A vector with a value of 0,1,0,0 + + + A vector with a value of 0,0,1,0 + + + A vector with a value of 0,0,0,1 @@ -1811,792 +2693,5 @@ Raw string representation of the vector - - A vector with a value of 0,0,0,0 - - - A vector with a value of 1,1,1,1 - - - A vector with a value of 1,0,0,0 - - - A vector with a value of 0,1,0,0 - - - A vector with a value of 0,0,1,0 - - - A vector with a value of 0,0,0,1 - - - For thread safety - - - For thread safety - - - - Purges expired objects from the cache. Called automatically by the purge timer. - - - - - A three-dimensional vector with floating-point values - - - - X value - - - Y value - - - Z value - - - - Constructor, builds a vector from a byte array - - Byte array containing three four-byte floats - Beginning position in the byte array - - - - Test if this vector is equal to another vector, within a given - tolerance range - - Vector to test against - The acceptable magnitude of difference - between the two vectors - True if the magnitude of difference between the two vectors - is less than the given tolerance, otherwise false - - - - IComparable.CompareTo implementation - - - - - Test if this vector is composed of all finite numbers - - - - - Builds a vector from a byte array - - Byte array containing a 12 byte vector - Beginning position in the byte array - - - - Returns the raw bytes for this vector - - A 12 byte array containing X, Y, and Z - - - - Writes the raw bytes for this vector to a byte array - - Destination byte array - Position in the destination array to start - writing. Must be at least 12 bytes before the end of the array - - - - Parse a vector from a string - - A string representation of a 3D vector, enclosed - in arrow brackets and separated by commas - - - - Calculate the rotation between two vectors - - Normalized directional vector (such as 1,0,0 for forward facing) - Normalized target vector - - - - Interpolates between two vectors using a cubic equation - - - - - Get a formatted string representation of the vector - - A string representation of the vector - - - - Get a string representation of the vector elements with up to three - decimal digits and separated by spaces only - - Raw string representation of the vector - - - - Cross product between two vectors - - - - A vector with a value of 0,0,0 - - - A vector with a value of 1,1,1 - - - A unit vector facing forward (X axis), value 1,0,0 - - - A unit vector facing left (Y axis), value 0,1,0 - - - A unit vector facing up (Z axis), value 0,0,1 - - - - Identifier code for primitive types - - - - None - - - A Primitive - - - A Avatar - - - Linden grass - - - Linden tree - - - A primitive that acts as the source for a particle stream - - - A Linden tree - - - - Primary parameters for primitives such as Physics Enabled or Phantom - - - - Deprecated - - - Whether physics are enabled for this object - - - - - - - - - - - - - - - - - - - - - Whether this object contains an active touch script - - - - - - Whether this object can receive payments - - - Whether this object is phantom (no collisions) - - - - - - - - - - - - - - - Deprecated - - - - - - - - - - - - Deprecated - - - - - - - - - - - - - - - Server flag, will not be sent to clients. Specifies that - the object is destroyed when it touches a simulator edge - - - Server flag, will not be sent to clients. Specifies that - the object will be returned to the owner's inventory when it - touches a simulator edge - - - Server flag, will not be sent to clients. - - - Server flag, will not be sent to client. Specifies that - the object is hovering/flying - - - - - - - - - - - - - - - - Sound flags for sounds attached to primitives - - - - - - - - - - - - - - - - - - - - - - - - - - Material type for a primitive - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Used in a helper function to roughly determine prim shape - - - - - Extra parameters for primitives, these flags are for features that have - been added after the original ObjectFlags that has all eight bits - reserved already - - - - Whether this object has flexible parameters - - - Whether this object has light parameters - - - Whether this object is a sculpted prim - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Attachment points for objects on avatar bodies - - - Both InventoryObject and InventoryAttachment types can be attached - - - - Right hand if object was not previously attached - - - Chest - - - Skull - - - Left shoulder - - - Right shoulder - - - Left hand - - - Right hand - - - Left foot - - - Right foot - - - Spine - - - Pelvis - - - Mouth - - - Chin - - - Left ear - - - Right ear - - - Left eyeball - - - Right eyeball - - - Nose - - - Right upper arm - - - Right forearm - - - Left upper arm - - - Left forearm - - - Right hip - - - Right upper leg - - - Right lower leg - - - Left hip - - - Left upper leg - - - Left lower leg - - - Stomach - - - Left pectoral - - - Right pectoral - - - HUD Center position 2 - - - HUD Top-right - - - HUD Top - - - HUD Top-left - - - HUD Center - - - HUD Bottom-left - - - HUD Bottom - - - HUD Bottom-right - - - - Tree foliage types - - - - Pine1 tree - - - Oak tree - - - Tropical Bush1 - - - Palm1 tree - - - Dogwood tree - - - Tropical Bush2 - - - Palm2 tree - - - Cypress1 tree - - - Cypress2 tree - - - Pine2 tree - - - Plumeria - - - Winter pinetree1 - - - Winter Aspen tree - - - Winter pinetree2 - - - Eucalyptus tree - - - Fern - - - Eelgrass - - - Sea Sword - - - Kelp1 plant - - - Beach grass - - - Kelp2 plant - - - - Grass foliage types - - - - - - - - - - - - - - - - - - - - - - - Action associated with clicking on an object - - - - Touch object - - - Sit on object - - - Purchase object or contents - - - Pay the object - - - Open task inventory - - - Play parcel media - - - Open parcel media - - - - A two-dimensional vector with floating-point values - - - - X value - - - Y value - - - - Test if this vector is equal to another vector, within a given - tolerance range - - Vector to test against - The acceptable magnitude of difference - between the two vectors - True if the magnitude of difference between the two vectors - is less than the given tolerance, otherwise false - - - - Test if this vector is composed of all finite numbers - - - - - IComparable.CompareTo implementation - - - - - Builds a vector from a byte array - - Byte array containing two four-byte floats - Beginning position in the byte array - - - - Returns the raw bytes for this vector - - An eight-byte array containing X and Y - - - - Writes the raw bytes for this vector to a byte array - - Destination byte array - Position in the destination array to start - writing. Must be at least 8 bytes before the end of the array - - - - Parse a vector from a string - - A string representation of a 2D vector, enclosed - in arrow brackets and separated by commas - - - - Interpolates between two vectors using a cubic equation - - - - - Get a formatted string representation of the vector - - A string representation of the vector - - - - Get a string representation of the vector elements with up to three - decimal digits and separated by spaces only - - Raw string representation of the vector - - - A vector with a value of 0,0 - - - A vector with a value of 1,1 - - - A vector with a value of 1,0 - - - A vector with a value of 0,1 - diff --git a/bin/OpenMetaverseTypes.dll b/bin/OpenMetaverseTypes.dll index e3356c9503c608f6d4b34b00842c404ebf32838c..fd9ce8810d210dc50bf2e8db7d8a3f8ac8ab11b0 100755 GIT binary patch literal 105984 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 literal 114688 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 z zu9S;$IQjts1@}>R1D_hF%RTiAQoaS)gw*I zkQ6OLQ=Cw06C~7%`6T^>n3j{qG>O?Lbph3MNFF!lgf`F(mO62{5TgdSp&9jV!W#sQ zsOgE)=5gEFP>&OPgnFzIwLX#G#65+6IHB~Glkh41mG~Vl{c!yGs8K7WAJXoHXkUw% zH%v^^Nn)BXZo}tkLXVi3A?=`cHxE+^=|BT+WDTtuN#mFkWYNeECyVMeyeyJ5e9SDA zKygh(q|QTKU8!ULc4~3%-%c~A z^?7)-2R0LrAhL}UBd@?U!oTGh2U=T_z*vduC`Q}W1lwU+b7^%azn~mpvR-7H$*x|@ zdCFnA;)o+eYmB(G0W!!A(yB?8a1|q3DNkHo^~y;rNeARnTG-jMhWZfNBOz}=ho&M# z9*a{i?X5Uo2wf?KsB1!f+TkzI%1v#j6+pKly~2|fUxT

PvkG}%~tu^Aj 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 nfm1zjss~Q>z^NWM)dQz`;8YKs>VZ=|aH Date: Fri, 8 Jun 2012 15:14:38 +0200 Subject: [PATCH 6/9] Add a frame based watchdog function to keyframed motion --- .../Region/Framework/Scenes/KeyframeMotion.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs index b7b0d27388..0219d9ca0c 100644 --- a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs +++ b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs @@ -64,6 +64,10 @@ namespace OpenSim.Region.Framework.Scenes [NonSerialized()] protected Timer m_timer = new Timer(); + [NonSerialized()] + protected bool m_frameHooked; + [NonSerialized()] + protected int frameCount = 0; [NonSerialized()] private SceneObjectGroup m_group; @@ -162,6 +166,22 @@ namespace OpenSim.Region.Framework.Scenes if (m_keyframes.Length > 0) m_timer.Start(); m_running = true; + if (!m_frameHooked) + { + m_group.Scene.EventManager.OnFrame += OnFrame; + m_frameHooked = true; + } + } + + private void OnFrame() + { + frameCount++; + if (frameCount >= 30) + { + frameCount = 0; + if (m_running) + Start(); + } } public void Stop() From 1eee525c886f55e63a1d6ebf6ba224a73d4c4178 Mon Sep 17 00:00:00 2001 From: Melanie Date: Fri, 8 Jun 2012 16:54:47 +0200 Subject: [PATCH 7/9] Revert "Add a frame based watchdog function to keyframed motion" This reverts commit 2d98d6354ce04b655e8d9062a209f5af1565c78c. --- .../Region/Framework/Scenes/KeyframeMotion.cs | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs index 0219d9ca0c..b7b0d27388 100644 --- a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs +++ b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs @@ -64,10 +64,6 @@ namespace OpenSim.Region.Framework.Scenes [NonSerialized()] protected Timer m_timer = new Timer(); - [NonSerialized()] - protected bool m_frameHooked; - [NonSerialized()] - protected int frameCount = 0; [NonSerialized()] private SceneObjectGroup m_group; @@ -166,22 +162,6 @@ namespace OpenSim.Region.Framework.Scenes if (m_keyframes.Length > 0) m_timer.Start(); m_running = true; - if (!m_frameHooked) - { - m_group.Scene.EventManager.OnFrame += OnFrame; - m_frameHooked = true; - } - } - - private void OnFrame() - { - frameCount++; - if (frameCount >= 30) - { - frameCount = 0; - if (m_running) - Start(); - } } public void Stop() From efff5a7c0da115c21720b879194ed87dc63def2d Mon Sep 17 00:00:00 2001 From: Melanie Date: Fri, 8 Jun 2012 18:25:36 +0200 Subject: [PATCH 8/9] Fix a corner case where checking for region corssing may cross an avatar back if it's pending to be sat onto a vehicle that is in the process of crossing. --- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 2b1fb3d7d8..a810de2d57 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -1051,6 +1051,7 @@ namespace OpenSim.Region.Framework.Scenes IsChildAgent = true; m_scene.SwapRootAgentCount(true); RemoveFromPhysicalScene(); + ParentID = 0; // Child agents can't be sitting // FIXME: Set RegionHandle to the region handle of the scene this agent is moving into @@ -2091,6 +2092,9 @@ namespace OpenSim.Region.Framework.Scenes public void HandleAgentRequestSit(IClientAPI remoteClient, UUID agentID, UUID targetID, Vector3 offset) { + if (IsChildAgent) + return; + if (ParentID != 0) { StandUp(); @@ -2893,8 +2897,9 @@ namespace OpenSim.Region.Framework.Scenes // If we don't have a PhysActor, we can't cross anyway // Also don't do this while sat, sitting avatars cross with the - // object they sit on. - if (ParentID != 0 || PhysicsActor == null) + // object they sit on. ParentUUID denoted a pending sit, don't + // interfere with it. + if (ParentID != 0 || PhysicsActor == null || ParentUUID != UUID.Zero) return; if (!IsInTransit) From 853449d5bc5a0ca3a49b76019ee995a4d392a4ce Mon Sep 17 00:00:00 2001 From: Melanie Date: Fri, 8 Jun 2012 23:37:25 +0200 Subject: [PATCH 9/9] Make llTeleportAgent conform to Magnum SL Server and add llTeleportAgentGlobalCoords() --- .../Shared/Api/Implementation/LSL_Api.cs | 72 +++++++++++++++++-- .../Shared/Api/Interface/ILSL_Api.cs | 1 + .../Shared/Api/Runtime/LSL_Stub.cs | 5 ++ 3 files changed, 73 insertions(+), 5 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 667aa939d3..065d3df458 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -4732,10 +4732,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api ScriptSleep(5000); } - public void llTeleportAgent(string agent, string simname, LSL_Vector pos, LSL_Vector lookAt) + public void llTeleportAgent(string agent, string destination, LSL_Vector pos, LSL_Vector lookAt) { m_host.AddScriptLPS(1); UUID agentId = new UUID(); + + Vector3 targetPos = new Vector3((float)pos.x, (float)pos.y, (float)pos.z); + Vector3 targetLookAt = new Vector3((float)lookAt.x, (float)lookAt.y, (float)lookAt.z); + if (UUID.TryParse(agent, out agentId)) { ScenePresence presence = World.GetScenePresence(agentId); @@ -4744,26 +4748,84 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api // agent must not be a god if (presence.GodLevel >= 200) return; - if (simname == String.Empty) - simname = World.RegionInfo.RegionName; + if (destination == String.Empty) + destination = World.RegionInfo.RegionName; // agent must be over the owners land if (m_host.OwnerID == World.LandChannel.GetLandObject( presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) { - World.RequestTeleportLocation(presence.ControllingClient, simname, new Vector3((float)pos.x, (float)pos.y, (float)pos.z), new Vector3((float)lookAt.x, (float)lookAt.y, (float)lookAt.z), (uint)TeleportFlags.ViaLocation); + DoLLTeleport(presence, destination, targetPos, targetLookAt); } else // or must be wearing the prim { if (m_host.ParentGroup.AttachmentPoint != 0 && m_host.OwnerID == presence.UUID) { - World.RequestTeleportLocation(presence.ControllingClient, simname, new Vector3((float)pos.x, (float)pos.y, (float)pos.z), new Vector3((float)lookAt.x, (float)lookAt.y, (float)lookAt.z), (uint)TeleportFlags.ViaLocation); + DoLLTeleport(presence, destination, targetPos, targetLookAt); } } } } } + public void llTeleportAgentGlobalCoords(string agent, LSL_Vector global_coords, LSL_Vector pos, LSL_Vector lookAt) + { + m_host.AddScriptLPS(1); + UUID agentId = new UUID(); + + ulong regionHandle = Utils.UIntsToLong((uint)global_coords.x, (uint)global_coords.y); + + Vector3 targetPos = new Vector3((float)pos.x, (float)pos.y, (float)pos.z); + Vector3 targetLookAt = new Vector3((float)lookAt.x, (float)lookAt.y, (float)lookAt.z); + if (UUID.TryParse(agent, out agentId)) + { + ScenePresence presence = World.GetScenePresence(agentId); + if (presence != null && presence.PresenceType != PresenceType.Npc) + { + // agent must not be a god + if (presence.GodLevel >= 200) return; + + // agent must be over the owners land + if (m_host.OwnerID == World.LandChannel.GetLandObject( + presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) + { + World.RequestTeleportLocation(presence.ControllingClient, regionHandle, targetPos, targetLookAt, (uint)TeleportFlags.ViaLocation); + } + else // or must be wearing the prim + { + if (m_host.ParentGroup.AttachmentPoint != 0 && m_host.OwnerID == presence.UUID) + { + World.RequestTeleportLocation(presence.ControllingClient, regionHandle, targetPos, targetLookAt, (uint)TeleportFlags.ViaLocation); + } + } + } + } + } + + private void DoLLTeleport(ScenePresence sp, string destination, Vector3 targetPos, Vector3 targetLookAt) + { + UUID assetID = KeyOrName(destination); + + // The destinaion is not an asset ID and also doesn't name a landmark. + // Use it as a sim name + if (assetID == UUID.Zero) + { + World.RequestTeleportLocation(sp.ControllingClient, destination, targetPos, targetLookAt, (uint)TeleportFlags.ViaLocation); + return; + } + + AssetBase lma = World.AssetService.Get(assetID.ToString()); + if (lma == null) + return; + + if (lma.Type != (sbyte)AssetType.Landmark) + return; + + AssetLandmark lm = new AssetLandmark(lma); + + World.RequestTeleportLocation(sp.ControllingClient, lm.RegionHandle, targetPos, targetLookAt, (uint)TeleportFlags.ViaLocation); + } + public void llTextBox(string agent, string message, int chatChannel) { IDialogModule dm = World.RequestModuleInterface(); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs index be5740e32e..50f520af74 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs @@ -402,6 +402,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces void llTargetRemove(int number); void llTeleportAgentHome(string agent); void llTeleportAgent(string agent, string simname, LSL_Vector pos, LSL_Vector lookAt); + void llTeleportAgentGlobalCoords(string agent, LSL_Vector global, LSL_Vector pos, LSL_Vector lookAt); void llTextBox(string avatar, string message, int chat_channel); LSL_String llToLower(string source); LSL_String llToUpper(string source); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs index 9ba9561007..116f639a87 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs @@ -1835,6 +1835,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase m_LSL_Functions.llTeleportAgent(agent, simname, pos, lookAt); } + public void llTeleportAgentGlobalCoords(string agent, LSL_Vector global, LSL_Vector pos, LSL_Vector lookAt) + { + m_LSL_Functions.llTeleportAgentGlobalCoords(agent, global, pos, lookAt); + } + public void llTeleportAgentHome(string agent) { m_LSL_Functions.llTeleportAgentHome(agent);

XbCLzZyue_CE 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 z z-#rPK=2M8>Ks)4H=bnrFJBc4XVV!$1a-T}SAM4!9x%i31UT{qOdUpo0M*Q!du-=`; z`42tq7i&7FN3&Ib=CU+L)CBk>a-Z){C`vAwy6SlYuIo>(p zGq;@MZzg>1-oMk=TO#~G;tx#t(w)okuM@uNb^UyO^!o6xpTiUO9A*FdiJSP%QHJa1 zJNGN9$NoO=a}#&@`Jz0e7ps)v@Ap_?pBv!#_KDxSnaBA5;8t_?Y~csDmNMzbGSdHv zKe%(hrt^vRH(U70E$+po96vwtC%0-h^rMHwS57?O7ViN*Zh4Hba^laf+e-Bk3vTh( z8=Y^9baTghvXUZVqxTaxQWaxt{Dnoo*iT&BX3=0rLIGGmwi3=MU&~XCapp z{%vBXTZp_2?M29|2>(UwCCK$?FGJo$I3d5&tw8>oa9_fe$omP`knvX|cN0F5*lUsd zyc#2<5UvNN{T)mEcTwID(?aZHg&b5S5z6~w4pzko59W8fC6t#4-ijFEiTpp@ zCyw#|%YB+MyT1N%E7AXI;{Sa9UvAnDF#bt|-^xEOkb`^|;g9nB1^>zm#y z!i|KNPr5PCE}TH}FA`=D{`aJ*f#ewAy9uwEbW@-R`60qhlV=~25Mf7;~5N7;`*dve)PhWPTp39){EU_NC`ekO1_$CpojE|AIbjgwyt)Kgv} zY`tF)9-sVrpdf+v7yn+q5qRxWs+aiZO8@)qjX*6h{r(yq_eNmMX5U^Uw7uc4H){e9 zQD)xH-Qd9nVW=yc@XW znE2I!>|^Y!17nV{zZb|yzWHME_w>g10@FGF#f0xa#=a&nANi$C{@=$nfyX)jg?-lq zD$)KZ8DH*z_XE|O{iQSB54?wVsIMXL;W74xz&4KGyzzs;5st?S8v=>j{QfKv4if!_ z8$Sx{qWqwc@TULws3}nPnQvbtoItqg#*YJAkWVGN`NoZb{@cMW68`+gPXeQWasD(1 z`tI=U^AqP1``0%%2Tnp>MEG06Ly%t}Tq86Gh9XxZ%gFB$K0y3!$`2+s5gtkWM}eK5 zuf&4pKozjiXH|?au;A0ce&mw~XA7GGRbN59!w3&5*c8ZZ0rm)=RZd*TcDcb`33s|N01N9^!u?tFucvzUm^@8{*M*x50p?Y5`u)w3fcpc_wo6E3fxMW z<^L&A1S~vA{9h_K5NM=aBs@yEx}Y=A`Mn=sBrG9pp4k~N_WL|vfc(D%GAJ(*UL^Ka z1-}GJDYJUJ0vo`eo?o(`Hn0geaW(lqcZZGL;nv5UpPhZ;(vtk{z!Pllo)RmvQX!9tXDy~F-9ajW=fn_kM zfpUVEOSv&-0pUBR9OunK`wGJMPU+({Ab&_X(d+*c#J3V2DID*m0@Hqujw5`4+J(9A z`tz%=cRI&=WBPh&$V;fbpI7lS`1`y!rk`ha0>4J>{k;<850HC)0sD5sPfzLZ4Lb<@ z9pP_J9N=Yf+w2;TNY2_BQ?wJZ~WRzMS$8uZQC=rkv`1{Rh}D zCH~)@IMnOlcyRn#-tfb|{Xrp{*t3OUo_hqCj(5s1Z}^|U6N$Zh%GqAle}L~GJW@Ev zt3@tCP80@Gy(bCBPd&%$OaQK;_H-||5AbTj{iddSmB?EOr%V++;drpO5k6O;x<@{eb%uK5we(x&46$6V9BfdD8~~rxVT=G;hSoz?UGGBabJ% zxUc3_BH!iPr|O=Y4E{b(nre9|r}$hX6cY}{yI%bu;7ZD#7e5%df%0&#gz|&JUcwuP zobT;Io>U|VD+3vxnd18|5&k0fIa4q4N|6WElYbvgz1Z81Y*WtklKuhyS%eo(y~L|X z^!Y)dH8GZaA6)9C4Dp$LzXiR@RG-YYKTOT>iqe3SDPQfiA*T`UnL64lJ`?OFMu^a z#miBAX8pd^%LNwJka%O-tzO|Ve4DowIB`F*CmuJ``x?31&ri4uIex8w{oU@xsZ>Al zM8bPxZuioFQU4C_L9~yh{&#w%l-a-k?)07nJO2H<(|eQS(TR6@+rc0I{dbpFsQLNW zzyI#?2>3kULtlT|U7o7@_9E1~%X2AjNM!bNf${#qUEXBMtUq^oxA*d&)ysc=FaO7T z`7i3_|4J|a*LwNa^zx4}`15s_cRc0j`1=DN9skL_{7*%H`2T5ld1v&pr*k|yk@N@r zvA_3t3`C;1s+o#R(vM4tSqu=+x{|db_ z@K2mbc&A+Gy+L_j%sKD)|39zL+l}`1#9l*qAM#G*Uy<7hA2_$rI}A+oJvpt=GXk`K z!f_4${CvQhL7C}4;I&eISU82)U!L}W7w`H04-01z-YL)ZwucBFy-6GU*HW#{}+h;mB<3`&ntQTN4&(VKu>HV>-EG( zysWEv`(xfHVBtz)@0<9THywEz^0#M_s9$-u&=#D4xg%f0I- z@%Ab&A6N)=#0Za{Q009wg}1NpegGD3A@Ny^j_!fHQqsBVQn|LKf18Sv$yc}Ro?l)g7aI9@KDJr@71lmz1Dl97rz56Od$SM zCAHppU-15KdzSzUbBTRW%G=&G$Q6Va_kG9P`6KUN=j{O&wh_Dhc%AoaY#i6GcfG^C zI6jWrg|;65`g_;QNB*7gpu{!aSt)${2c8NnobbCpUq0}xGkANWcOI~iL+np3ZuC-b z;_d6bJYZoqv1beGyzfaq|5y0eM z1 z>YZMB9R2%)`d@haB;V$%hklc&#{qOC?4PWH_pH_&68u#O)8{_{rkhqyQa;^L3S{ZH*Mj{h3}3Fc=Nuc0T^6pEDikU#tM*h!Y@xyb%8Z%pW!`7*CvV zJpDXgI2r9Mo{jq-_&GZt?DI4JH=qCa{fWo%BnT{Cq&l&Jjd~a0aU>o`p&jO5oNzsU zJ{~`xhP(j#%I5P7w8Q+56Ch8F@ZWzPkMlj@zs&b(cz$M~9?aJ`p^$RCFc0%D#v}7* z$N$@(Lx0G9(!UuWT*rTJub^=WSpWat?^Wu5+)@9xFz;G=j1#ufW4y439utJ`>G3$> z7kZ59AEq29#IEz_WxQ}aJtpAy!ExB%K1cJMNbRxsdEC*@2hq>TzeC90Sb_ZgNMlUD zS7HVD9*m=(#|qK>>^y=!{(oc_gaiTVj}flN@v#18-06Rh#R@ml&wJ001mPC?IqO>= zVGfRy#r>Vm|N8UzUOHsG)@xjkATOrJIN_CEdH?^8mwjKaM4fl=xRxGch4sjrk=gwJ zf6cwW4?f57z&s)UpXeB7^C|wnT>rgw_F#Q*{QJLmz2n+3-$9H&mj6Eg5%gz$j`z|0_H~ ze`AGxgk#BijD3C(?f&QfI`7zi#|g_a;q$o0V~^~7{hj~u=-=BukbWL7q@exm|JILu zFaEdViGKcfeLOZ_)c@~3XF7jp*KvGoJk0;^j%>XF$5_F|_=|hhc`fBQfqg!fGWp)` z^*OV%@%>NZZbQ9$P;V|h#tVqe*X8m?EJ9x4Ey`uo8O>y#|rQH|8ynS#lNu+?_r}yX z6SRY0g24PfLw`8N3ST0#e@C?;|Afb1@YuWlL-g}l;RxD~<-h-aXMXJO{NFLty{^Tt zm)w^ld1A?btY5L~;X3bqgg!<8{mAU_oR6(%Cnkr~i)Tk)2qDF<9A7aG{f{K+= zRII4fe($@pySF)zhFED+xI9m0-<_SEot>TCvuDpa7hBJkH%+5@t(;Bm_1xxd`c?6* zKAV13dRwcW8|1Q2kh^AyuN&uqyNDwe9_D`8ZXn>&2`2I!#au zb=poX*6A_oE}b4|M^nE<%WZ#}EBE^4;C_$lv;BBj+YwYx>NKRD)oEB=@*w9`oZ6`K z@oKY9qxEHf6ENczH1Z*}&D2lQ`~TL;$EkNc?TEgB5`EEjJ~Hj>*J+%J`+d{6Ypz~L zEf-c&FKVCl$5y<<#P!4*ufh+i<2~)zdS7pb->VsZ-)8vse!{lz9Y=58w(s?~K5+PgxhA$6_CF7J9KdF(qpa<}TdonJn+ROkKb zH-=xM)1Z1lr_u61b$?S0$9_i;Ye9RF(1zSG|C?$YfA zl#CnRcQWJBl;8aR(Duu&$9uKDpz=M-bu6UfbQ+ys$vPiUP35BH_CCR@*UOiDz>Skv zzN>C0XxfSDw|0KrluO)&)HiiLtOn^cD({^y*8a*K>|aoweNg#;`hn3u#+2LrlQ%uM zzwutX_M>0fetYYA^RkXa?>nzD&l@J`_Hkct?C|F0+|Q@Hd~g0TQ{Sexp552mytke= zZ|i&0=IVb{eCw~~^x1NoHYazu`7O2IQh96bJJj*9>$Gj(rvEE^d;cK*@tgDQfSO_A zx+&kM=9zhOohh$2`CsZZpqA-0sP5KjNZqH?u+w*F@_1iV*NfWogwgv#6TQ*v(Iz9m zO{W31$H?1$9K0OotEQgF2h_)=-sd{ScWGwb53QH|XVZK@bu@fyZ;H+z$iH5%I{_v8 zzUaQj)=M{fPBp3ZyOjG>(|lC_U?VSnwf5rqfw5o4!EeR|->Dn<(K_`Tdjd-Km)5S3 z8n4Uod_$*ks!FHv?s-OQ>)&MRi=G6hNBm;#zO}R9EjgTO8OD?w>-az+Hvr> zv-=M_?tUe4YU3lQ9y9*2=QcJTesB8IsM7=GC`0ktL{1W-O`=lcviujDx+pJUkT`RzuJ_r9yS z`-e2Q^u#|=a#nK zv&L^S&x7W@f#`kM!OQKs6jowi^X~&$J0)%X^U;I1|JB*|l8K)!#t-l5G^qCJG-TG{ zu=7jnTB_bQ@tdAdBH27Bt;=i7FD_@0qF&*&RtiN4`FOK`PcVLMXX4}-Gfs)>c`esoy{gj=W?$D)y`l3->Rp}Ud(I}QUwvWn z2`|WX%RaB{X!73YUdI}~+;98U@g{HiUpIM4?S2p6`DuRh`7BfK%ch6>zRccFWg9ys z^_zW#Pc_X4RDX}0JrA_!tlsiGEg#*d*z$k(I$+OL#6G-lr|)}$X1<4vonaF<(Q_D? zf6;!lq(}DmVWTfj4c7gMcmDa;_3@pmd2Vmhb98;bIp4$Y@)&>Gb05k3)sGEd;wGB6 z^-D~-KU6>5{G{xU?=k7qCM{ene4D!KN_ z=JFky)blHwKUDj_tel(+`Bjav&-?y*)A{XJtBstTH~3YZ$=mm&OCD$c{p$TmOatn# zIt{AIwakaq&vY7AH|R7@Ez&7|ufWusrc?Z0l;%UfDVMyJv#DQg)a3!S&78E!-uWN?ym9zI_HuaXbHh)*G!aw}Zp-%Cfsu?@%`-X?>e(THn)B3GB zyBbV?Hk#DVn?@ZU0hO%BH>fgn8dCW>4XbbKG)|4xsZU8f;`NoQzpiVODk@zX3w(9b*d0rN$I+=B;rFx$l z{nq~G?2>sFR?=RaX)j*=wjJ$`_RG#k^#u7r)lsLgPtQ-h7opQQ^_rQlHm>bDveS&y z9-W5N9(}%n^Col7@ww*v&3uTCONRzt2STcgPVrro$6r4hOM4FFOS^cEsO`b|ma+3> zZFii?*QrmXYrTFY?MI(WHWx?od^MzGpBp`|Ie0vV)G1njSe<6ECGpu> z`8f4+)6T7))b9T+|G$<0m9{IOymmClx6k{$^3CP#^`)ijq4?i#{2x%_|Dd{4+ZR$b z#(!Ux+#0Pf?DRfi^xL%Qxw2n9Z^|v--mf8a;d|r2-hbNthxKpMJiZe&erd|b@4sulT~`jwe`@MU>UYm0)QfVy zDeqC^eA8S<1DYRl-}}k?)qYbRP*NUr<@WhZ2VKuzw`>|6fBT-cef}lyaYw)Vv(H1U zzHgX)nLY1l?LN3A`R2~|TdL>1zWv6WSGV-Mn^SQVKuB+BBc06rf-iwd!FHSP! zYQL+@G~<$E(n3=%=feSYy5ZY#`Su~@18S(23##wyG^Bp$sb{|{vgc7&|9Kucn=kh8 zOLRVNQi(o45Uv?_2R4#;g}s zUef6K;h(e~zuIZ^+4?qZZ9m(ZyuFTmX!`kgod#6+C5b=b`;@o5eUoy(>f*^uc|eIi zd|zhD)0?Dzm96suH9)6PxzlytuS6c-Kbmrp!~K`eN9{UzKH$#Zt^HO`zSFSveaf~s zT_S)eWBfuRQsCO#V?1|M#AJqshNzQoBwxmp->s?!zU;?~j;z zHorla2h=8=2GtgiynWtj{QiNu?a`RhV*{b};3V;(Za5Kf$E7 zoy>#g15V!i+^~<9$39y>Zw#2{l0oyF65r{Y=aBu4Ub}7`>i4>NM*kpB{j*K}pRZdy z_xNwEZ+0E~f5xtJ^mjk_T^N&>)UQVBd_Y~G)1bOory(^?r(sp9Q=fUxX5Z@x7(Lie znEP^h4(Bb$@0y$XSD4hEYm?9Gy7imAo;Ce`^1$yITAFVymD~N^)!Lqby2;pO?XdRR z`vZC34Zkm?<^0AEU;eyX&ZqG{rD^|nrv3j`oP1U7+IV}&_~~iWFK_-O!-vyB}EIt{4r>olmw9AddWA1pWW z*Xz`;erfXF>zlowuy#oM0ky)@p3U1hU1jt>rqh2q7ihxA{kO@>eMj^@+uCW*Z|%8) z)o;%eM1S-=!JD`Dm$EKJ<-B~`o_&5O-`xky_xM4zUfYT9Gi5q)g z`Bkk0F+Jkf=KNseqjt0G$L#aUpcxNIqvufZhHtN%_Pt%pZ<^xzYvhHG`w)}=s@KEj z_RG!jzv}i|(&t_0?0ccI4hK}G@yo&a_PzK6eyEwuxYg9N`G7bMt@Mf)J!`sCUE}XyHB0| z_x8`t&EFXRU$1Y6+dtmxzgJ`3i-)G*>ji&M((XZP5f#VQR zopoy8v&8$aI*<26b&BT=CO^#N&($gR4LXf}uT}OH$<5GuqU(p%EA9D}ln2cE5>&Qa z)*t-NsJTCv=W0GR+t_uDN&ophYWCkgCu@$+_pG^|$a~gNdGGfpH){R(UR(d}#G(Ig zhJAm0iLtL~KA=Qz(C7`B-{T0I-{XkJhx{H#g8MxVuYF=yz|;?#`XLivVe@+)aR=15 z@qV|luW8r1_`sTb#|7yTY=oYv=e z-|J2``RS&emiD9n?egaK<<0Tun*Mq3Lz|OtZU0(2Ke6wDc=aA?`_0LHReYJpezidR zDWJdi<9l~EAEtP)zw6N4eU1FyK=k`D$v1y~{YC%N7P)IBr_txM_PIt&<7%JBcvIOY*nS=Od`9|V_sjVIEX?x-sTX}dWBI$aeF626PJ`-G zW4FB?*>&dcrd+OjAtk@tjPHibemd01af(+RbeiD4`?33f*|!AD@5S1EaY)JgUSacI zSe)u?^nBguk?)nF-)qZtF<`!b!~R8IuS2T0mdE>|I>mL^T-WV)O!m8{LAo5zE%kY8 zSf%Dme0^8*qj52`r|{)DD!xO~<#;bd^YJ@aMo*be!{+)Jr{?Iq{oQ-KpRV7Zi9X-; zzTdV`%Lmo%M&I2=-_z!I#2z&I?0(}Joe!wzbsAI~b&B8PdKvD=bFJ5P-ml)$DdNxM z_vT)hMJ{tEj?euusk?eRIA)%(wUj-$>0&dB`{^~ir% z+ZomCea`xX>Blq8q|KcJ*!9)Ud;9zS_V@Q&%lEF!w!Zg$$``erA@!=Uw>kS_d>Q|* z$`5wDz2juxH`!*!!;b%evmvcL7a z|F7pi-F~b+uCxEW@juf1?~P|~zOD7wzK8wpTG=l&>UF@c?0XWowZQ+Ak>~os{i&6= z_i^u;b>(WUC;Geo|Jo1DpLf`O$XB(m`ETj@oAF!lRoUls)M-$q>C~sTY{ImJNB{8y zDL=M|X;7u>G^BEL8dm8>{^XyEyqq5d)TxFq|GyNTA9?bFO#bX9Dc&n=CNJX|z5lzw z$X%>cd|#kbJnzzJP+g_dkh(>uVfAaB#;H1;#;a#_n&95YensbTAF5OQ{;f`ZDzKUT z#(q$z0o6gLLDgBOKGoHfcQ@s|O!+A~#qX8qG_3M<8mCUzX}lV$Q=j^tPVxSv$%{Xl z_d`qNc3)uq=*_owpVi!c?jmFNBxAQXUvA1PbsA7t8aXfjnr8U7G{awE_`lPsU#-z8 zp1|7BBo zPUtt^M+MZUW}e9TjnCzq%K4Q1|3}gDV()!`_qr?R&NxweP5jq1-|}_WyMEdK5AIO^ zU$%~>UHkul$vNeL|Nor*f7wJo)_GGe%cNdATFO%o&(W4omVR5k-g@@_>&vEge`3FD zv)}#6{oH}?bGFn@f8AgEy{XUqz6HM9(%+}z_l?bWs`5JzA@@5E^1BRH-lydMRr8tO zf$_WFfyp!e%s1yClk3GllKPeXf1SMlZ_{7D5IJvr+4pFL-~8_`djCJnrupXM&>P?O zJoJpqx&QGg`+I%%yG@&yaR{jIn*LgTOLFg;eXGc~T;Hot^0r=3{m8WM)hlvAXPTY~n%sf&X9B=(GEHZ#vnO+x4p4)E{TYd#=e}XXNbvGtr!Xn(NQaMvwKA z^+QYj{MYR?Kb}_qzgPdjacLXP8RUte|pX!X<4+V9rJ&(Z3qBcrZSxwXONo(s+5xW8>Gh#xFJ=hj%<;{yn_@ z^{y{1`y{+2S()!^oZ>#-it9E()_f_ZHYQJN4weDP{t@^9A@fzz# zY`<|R`;E35Co#KPw{FGO2m8Kb+jvheHXi@m)^uY+xMy^6(EEUpg6IvR_sSX{M*xQfMLEDqa39JbZ#e_OSywez;M@<&R) zWBrIdpEw-rTP&_(aTSZJ=HGjc&5zjph|Q1Y=f}~yAB*){)`gb*5L-WE>t}5JY<~Sb zQszfX>%hNT-d6n-v+L-5KHXNwy|wc!){nMzeQxde9d7wpe6+3jh>b^VJPu_)-B#ly zW>@R>OKsI(N9%PbHXgC}3=U=eJ>2u7wfc{gxNWQbINI$x+WUW`%*WU`#`b52a(!#7 zaT1${hxh(CHtvVlzp?m@`S(!P-&mZ);^b(Glh($2Yvp6twb*=$&8H*(J(buzkInPg zJU{a1dF=WhdrosW=6Nix+E!e()$4g%wX3!9+gkY}rQdC}A8pmHBPCASs()j4weGpx zkrIzbYd>1s@7Bt<)%kR^_M^4^Zms;0GTui@zuW3~v{k!~lyQ&sqix+kAFbnYwDvo; zzQvw@#Lh*VfBq3$7h>0^wlF_paTtrkwh)K0{lekhFSJ$v#_Vd{d2`HPF@JHr4yy0I zb~x7Uwi;iteM;Nfr^Mpq=)7LHb{@7?zOBYpTea&*@$Zq+k64@>-gWUviIbzXAF+PR z{AkG!N6I?VQa`=rM@qkA{fJ!$4#)kucfPcgkHuju4i85h#^Nd#SFyNi{`r1ve#GWS zY<|S%M?lFu@Tqs#G9LU&o?lu1;d+kK(!TKDEsw2lvGwh6tZ%K2%OfQYkJf(2#;qpzV&us0w6C1zS_#KY@ zblTY?K)D%J=Tx^?R{lz{QkGcudS|cF}qs#U0ZA(wyk*>i{GO&eq-Z) zbdGy${cT(8Z)`kbv$Zk{f@<9+j`Ct8;{s{w1xdhEDqaN z93HLLr&zxw4qNiWkuqOf>ZiB-XzjPx4=v@76hFoK(YCHjN6L7#G=IG1ZMENR)h@69 zTFM_O{b;G5-tr@*-$zP6yyMeS{z&O}tRIK>IvewE%)f_n&eK-oBxYCZ-d|{|{%YxZ z<}Hu)Ms(+7^I5|@K5sQ<T?qcUxVj zV|E>#_p7mSZ{4`JRe#0S$HTk-YpdhlR_$tSJhoQ;Na=T5?MGX+D;6hh>-;D-9NKRD(P`Mo z$EoLa-lwd8t=~6men4$)Qf}L|@-`n(JGER;^?Zi*gwzK*A6CIXG9RZp>eO4$n-7@! zUcNUUP^)G@E&6@kvrYXa{R^1>22KA%O8gPkbEtBcJjiyU^{n4Nt{1;|_4Mms>kTWZ z7pJ`StX`=f9WNQbu(3bR)Q>my6I7Abkd$l3MiTs__)HR)xM zv+J}?W&Hf=W8=4``GB(Pp_gB4?C|nMKB$_O`;?Wl`n=<3%bT;Kx$%>FQT`U9yS>(uL}+@^a>zaKQ~{^KjePc|?1_?68MFxOR^->UWb)ppa4((^K?cA9o< z9PcsZ`*j*r{?}#x$@ST<`ssBnpvIc@Z0>cmBculEd{})=%g3qpdLGBCZ94TSZ+(#u z8o7{@o2>QtjlO^>54!TEdVK06qu-`O8f5**Fm`*#PxSkgZAZo{phPY@-ws~SuP)Q} z1=Jj!2G!4X8r663@{pO=;a0bEr)lR$X56jawwyh6s$VdrP> zK1<>V>$s`^ZJh?yxjGH0pXk)5rs>qLBrXC*KB(pxx#i}%aIHtq*7x#lJKp-gF!iN< zjEBw#mDPW{DYx;Tpw}0_s?q#_ddSE>rBk1>^RUt6x2~2r61jl#%2~ZzwY=Zd_o=4& zfVxW0k0@W}Z9u(SD)ZOMJHBn-=(YT*zn6LFjmuS&#ZKve!1e#&{Gf@$P>XT+zG>g9 z_u%|P*ZWa3dJoP&biL>3eV1Q-Zv59Y-~4qoxJCTeL8m@-oXMx@G@vqc8dRs6@&Z$C z$K`lEFN5k#%@3(_bQ)GgI*n5o=rmsaRHq5*`!BM+cIt;ZJw{E?{6sZVr|s31I_;q5 z>(r;D9lz1E(g#1 zl$E#fW%b$gtK!>z)(~UoIVP3+HJ=(~^5abE&0D^tel^v|9c!*LGj-mtsto@|lmAr{ zIluamSzkXl_X~3W5-{^Gs0wv?NagAKk+52=>&Llzwmqqj^9G||;?C#huZ?SoW51H? zj88pgWzVKjt@A~lX=Iwac`Dg94X{21PXL3K| zQ#QX*_sg%|F#VJH;#W88^#|t#njbX#h0p3+7Qef5Fm-ulhi zId!M>)7ooO*$3MFpid>6{#w4*es8|H_PlcE?~?Ytd~bf)oQoq z|697RIaL2n_*B~4WX?NeKYHN!H|MW2H%a|ObN*w~D?S(gJe~U0btd1O9=R?ze?BDp zHlOm^Y40Qb<~-A`b8n(QJylp`sT0%>Rd;nB{;pM->N@=0ihbQ8)mOcazmt4@RgJGE z{5$;Ji@*Euw;F%<}&{5^)hI{ZD3zbEkbB>vXo?#J&(T^@YjI9 z7xDKJ{$9r42K;Tr-z)fQ#NVs<`y>8d$KO``ZNuN&`1>>d-pAiA{QU)gyYcr|{C$AG zzv1r_{O!ZvXZZUZe}BiH&tDVv<1Y?>?eLd~zxMd+h`%KK9gDxO;qQg;V3iQpSGB`m zGG_eRl}Z(LS%!^K+8CvVskwB1`IYLo6+54CMBlnX0bPS0bwEGPRJo9gp!9T=0G{-1 z8RSj}@3C=%QTjcg`f=o40@R@EQtl7qc+^7lrsjPE=-qM4jFwu(HuAuG%SW^bb^kH$ zB4gDkH6Ca!c%c$n@I27DspM5mRqB|M#YW3it>q1rb}qRTyk##bwaGUFavy@1sq1#! z=2Lwg%Gc;P@HY9Vx&0KMTBUA8-Bj?3!?Yy}=({CsEf*-H(OE!0D7g{59|E1HwXko+ zC3k~IG`r+Epp_`Ss^m4p8>Kb^NgEA7^(b9mvJL1(px)yfjodKp=Z)YE)VxP93LnP5 z=Sm-eRohT{_IUEXiPGwC_)-k(EHix&;XdA;bmbZW#X@ zYFq?#^LWO_cVL0|l%w?<-3D#Gcl<8YErZ;hU8-I~UH0QGUk1?q zKrfH)i_&{gy8FjOt2OH5O8Yq!acD2vpq623zd=*gb10p6sZV`v0!yWr2$?eGO=) zMyWt2cb|b8eSpNf6EGf+hRG`cZ~4TzM&Bq!bSZe(l->xm^;)h-*8rUv?^6p)7XvXS zZz){{MC&*C`eGEs7NQ$a_wLfCV1Y#E-H?+~&Vaj6`cNtT%-Eoj^C=^h6cH``ewZV}hHR=k~SEF7)e@kKAQ-Pii z5}gK=-+^c_&^J00oek9RO(M?K(vX3Feh%F)lMmyq`o?(}os?iK{gJkXHI`jM z9@mnB5G~k`8b1k<_cBU!@Yl+bETV;EGSBU+16zkBVVLSTmCR>!`kVF$>Ln4s~^8;3OfxZ(b6P@DF=|K06 z9}JI|7jr#e=@+*{VsaV~?Hi_uOd>XZ3Fo{Tj0 z31W}x(W5aHg_MR-KQ<66g6{)DMS++PV=@MqkuYThECz8b9n z+8E^Z=zgHyZk^}T?)v!^nK z3Ng|}JrhhnhN)w*2YDN%i>4Co23j_iyQ;YNu`ii=EaVuw59m_Lt#@c;e_OZF@&4%0 z)~VN+{_dW-#Et3-hiV+Eb*RpvdWRYuYIJD7>E$pLbp1$ls2{8szp!0F$taaMLnL!1 z&GBfJ$l0q){WObSm}cW(<1`GO`Yrsj$+sGaWBKp|D<``fUV9!YwY#rc#WrMKW&p{& zB$7yEf2CboFEOrbjN$siIrzn$SZz|si_nBAEd!mDX4z z>I1f0tLP2UOhn!=^%Sfkudb9m{|j1sY&y|DfS#H@#K>XgcXf%(wE{@I8w8RWFdRr) zBa+sLqy~}HU>nEb?Csv}XL4k=gV!#_qEyY}ox@2pS%YT} znKRj=_aT?9(cgil#gP~Ii%)%X=6E2=eN&fq1TSwU_e10j*1T@u4b_^tult@xr-8T0 zM-RzJ6Uj(F$Jwn*=`|@OlF~#V@imAX?wY%4L@g)H91mV2N^>gh z{m}p?_eCMK{0XJsuHR|Fv;}R`*uB$N-sIsyOrQ$0h@eoH#?$9_tqNNf|)HpaP`Xw7;4z?gDytzU?OI#fk0Y2fwJSafOr2G?)7#!w9BEr z4y}NF;vpjXpnpP*HI4!y5Wj?C)eQQh|G1yAshG4 zUNP51$?Rf#S9xuiJVwOJS8#68zDqB(HQv2qHQNAhb}`Wz=toMyT(Yqb?tz*g-@Hm2ZjvIo0 z@T79{>>c276n4+v1tg=e*U6D5e%|kR!8q~NRDFe&>k;R4Xf@uCC`)81^p%fK1`>VM zh(B5|RnMeIYgfWeUL&F|A7xDmG40=8E9ZBQCFay zdj0DKlsK1u<~60`+z*@_(RWeWc`j>Q0Cd9KPl4FlC`B|Kyi?{Tz~+5JIF>w9(Bm=p zJSAty{RZ=laUtZ+RL43WkVh?(=Mt?%>03UcCvk4`?i4r1-HI~X%sKV9l<7)JCHHf4}m6HoP zv>)Rp?JjVTBvEI3{<|xQ9)MqJ zujDRmEl}_AM9*k67;(UJ{xj7u)MXo^)b|}a&!7(T#yblbyK)uhsaon@o=!i7QpR}C zc}1qiFhwM5Hj&i08@ABq--d{2^XrwDn$ipB5s^1hBZ>RD;0c=HN*RCLKmTf8F?iw^ zB593CTI2dR=u)2LR%1M529z4P{s~0l$!mc4+^<^|Yy1j5`XHG*(3L>jgEyjdEl{s2 z){wER0Ftq+1d_4j{UFa7K1e1{Mv%P}`-pfw+E&J13Xh03ujov~y1xzCQaqP5azmM?vlp7eg-eu}`h7BFYAOR`+8N&?es!*Ygz))i_k^P@O~d4mCK` z=uj2fknvdH5d9)O;<<$&K5HYYRn?}nR^13R6jpuvXOt5yL>%);mlDYcvhI+(xZ1L= zAePE#u^-etRgow2gEi#rl{Ew!CQtJxB3|+d`gjf711j220C=6MtpKH{3>2UA4BP=tEgoi&_!Ac z&+C463H1@BOt5JBB%0)=BDBI?7lS)=d0iOE26uge;H zZ^z#A8kWjQ3C54<_Q92>k}@8fYV~ECX^fmdR*W<{NoY z&0-a6i1kD=_xCyv?RO}MHe|g|bST-OG>0-A>f_J{#v6Dl10H)cRrNt@(l;XMQ9s8c z5?;jcY88?2hBzLP@P->6o-a6Fk&`15x#tki8xh5C1bMF9|W49V!Kq zxTNAk3-nv=E8^s)0lck&Gab z)L3G8Q&la-d=qA4mjoiYTVy112H>!stOb&@AR?JF zER`Cgoezo~Ds`yBp-P9U9IAsB=|{aoOHfMQRK-%W)&bE6{SzoBJR-54a#1ASZ2(U! zB@*i?Co``RDB1?^b-$6agfm6=d<#nHq4y@ThWKv>P*jVoQmkQCV3f)zu&(%prPA6i z@Wf^!kt342?1%7(q?hl(2fGo)4@|ugb7nu#X*cXe>7;#l;-`qN(CAa+t0B5{33zqA zS-KYJR{wq=@h*8Uf%lXy-3+wRPu^P&g+Il;N^f2VllGzKx{Ysxx21Owm!W5#Ka;tQW6M=4ON8Vqc`DYr{1ARZx7uUuv&^%FFx*EJ{txr73Ho|MUZ>MG% zOY-C-VKHVm`!Px-f*0*kKeYC0Z}Q}NbPeYD@%Qk=ny5QktGa=RHeY)K^|9_R#t|Kd z*6!5kRoyr8(!qPRce0VYbR7G!S6fO%Ti)_%pU&p|NQ0b2Nd}O_8hJAMl#>-b4I?Nv z6N#URM#K8Oz5AHfhAATP29ZPr;~)$D=(~_S@eAL?lB+>KSC>d4j7Z{&NVE`%<_M73 zGQ^?b4iz;)a&Iu2JoNWFWyL`3@5d8~q?fEAy&R1F+6P16zlB8kuz8eP4c}j~nBzt? z2D~>Heu@a=c)Y!kyvxAbwXiR0%m>2zlR(^4zvUxZ1l}smtI?&}de{{z~l9dO_sL?uI<^B$0TM`e^f=<7j~(mWp>-SK{vxj4Gd|O}Wvc zHJ2~I2+C+xJH!=Ecq<&Laj4dzI)~~VYH+C0p)C&WaA=o9dmY;E5T8hzqXoy3@9V&8Yv_r)Xl{!@6P^Cjv4lQt~+My*5 zt#GKuA>N(H%(Hut8>;Cm;qmG$h<6jE7=_VSg zB(Y0mu82VNxai}!^-tg^$h#H1*N}55o8={3sW&n}IM!n(T{S7Bap3I{LAZd+A zY7qTX>1?i@jo``JxdlkBt3&{q{ni?Hw6hkIw+y_h#m54z2KtVE zqk>QHmn=@e)rI!qT?m6lspEkPaMSR@`0hY_^YMwrH*bu+Zip?ZfJ9BOoEi$gmc+U3w*hxR)Z zbl2%bhmsviiz4<-k7b5KeH`l71W7N+lX#A}QX-k%T*pOjh$|(M*d6Y8L^1=?fJ7gW ztVl&pjy#bgFN$PN^S(mn0_6m;AEJ*)^o<6J_ENNv7e%6vHAD-2AX*=;?NL>hC5W`&}fJ3HT2$PwXjOOMkHS2o^S-(z2Z(@nHXWW-bvm_@J`Wh z29E{0OTWim3iRFOES(C}Z}51tVh&SvPBW2=5s^d=5l3*+rL0?xy2DPbccl$LVim{e z4wRmF7kOgerKXLPplwaQvw6G%Gb216HMl>x@N(+kVZFc>(s_@oSzG@y+=azt(lpZd}=Z)Rkx=ind0pUYQs?#?HY+AenFEi5xAZ z+-bi_Hgd1_PIGcBmAOSED~PT!hSzS|EVIX+sPFtu2I@+Wh{RV!(l;WhK_r@qWY#`{ zG5QR>JY{kM&@K3C>x7l;Z?}K&T_*cP@r~nWAU328i$*E9No7Dz-oHN;=sPQE6)o8L z8)_Z|-o4{Fe}4poZ!=75cdhJ;m4@H8Jg{;uV(1c-KDLsx>~f&bCQ=J|Pp@RuEdbiH zlF_*oXze#S_a6lM+seg2_rotgU&_)K!8`A4*5H>BBd_j*UW&~`5*tJk2Sjq$!F`i_ z`NDk@(fj(F0eL5%JVDgV@08ZvO~mgFUbvh4VyR0MmD>zk{_j*vFkf)LHp4yZf1b)G8tw)rjK}36G`HOI-t_@XEv?;K|isIFMWo zh$JRiDlthdQdeu%b&J50x}$-lE|Jt_snq4D_JF1L-n-1K2T$J1Gj4wCac!7L-nJo< z_q2*pmm^cFiZRk0!I#IEI#l6Mr9)K?EpVvXp(PHjh$8H1_;uHi8*1D=6Orr>N@0P_ z1tOUXL^9uKpF~Loki-y?@K&RjccZ`iRy_jrD$qYxJqI+Sm~Xy31@snp?N)CDlDe-M zG)ip)`nJ!nj$Qo$&?KNPtFsXIH!k5R7}4!OnT{vuGRO&H8=0$pxJ#gB%sf-$rgjO2 zhdXd*bCp929IAF`i9;(K;ymJc#HFh(I&tz0#3|oIJ@Yuro3Wbl%y;AGuBH}=93t@$ z^$DUaQ66o+@G@(`g_l|TF1*azcj0B$stYgUn>u_K=b6=9Eq)CjG-z}m&?~FCTC4&3 zKe2r9_Q7C>-aqrj&;7Ob)`gN6_Kn0tSh5G7@FUQzV~k-`a2NbCj@Hm z$FIMo9dGo>H-N*zE54tlGb-@}EG^5m#?z=PP>OePfVkFOb^mI3@^0|1*EQ;asx{gS zboc$o!l&;7eRu`Yr$F+oNS-Zn_Q=_0u4$w3{tCp9L@|*>aW1?O3E+3uf(`Hiy>U!; z@&O+UwDsmvK7*&VV}{6{4IBa)RN0wnr~M2<+jOD!_04vih-m4ny;(ziz=)MnA}OV2 z(LzMI{t2uR^-C1Vs1~D?efv&XDG>Yi@kAoAo_o>9V8QIE6_nHcn2XuN=Wjb7tpra- zfk-r0IUZ4z$GSL)22ZSC03`a@Uy&>2&Kz>Jib!IENcw?;EnQkx*9UcFpUrkfGm&UM z9_vPBf?p*+ej_6LDj@u>0g#-BG1_kgFFs73oQ!d8x(~dek1qy~`i|+o80$UJ`H%Ai zO;&!^kk*LSpa$M40(#n^7lA5uyKiV7ZQ&W-Jk8q)-ZhWYg7kKNHKsjh@+m-1Ki(Y{ zy+=71X(q8>U#7&-iZj2Z5@RzKzB z3CuDeu{oq7>Q4L`=peNMbcp&j=uov%#j8^FIB1!AS|zFq^(^po)c{(lHiFJkn?S4Z z%PH|{zS;^}r@H&&)mmM;UegBE8=MVVvQeE1yjja^QT>3os$9?=st|OSmfxf0_iFk5 znxlMdCFo<_c;DHeNj|oo?4#x`C=ID@zLEZr%J7W>?W1vy#{GO_z!~7X7&PK51|8)4 zDd-Si3FuJY1ZWtcwH5hj`A8q_8SSGzV|-iftpg~RJHBAhpf|C?T z3MF74u@S#nvNq7$pP=dkn}F8`&IWD>yob^afycpV4D1Hp9QY^{Qdtv$gVpnHSwf$rBDREQdaA&yRb=p*P)41FAq$CqLB z!_Y9tZo0;m8qW!{t%cwu;7b$MU8Ffn!lwc+4bz5|y0k`@uF|Eon!hGY+v>u!ZEcvg z)rV=@`Y>&42-CI=VcND?YuKVSY}FceXbn5HhF#DQul9x+3H!qRFj5(DKfxn_q4BhN zcsy+$5zlBWia#5E8y!!7j)|u~i{t6fl6Xd1X*|7J7SBklh-aitkDmZq8BagYiGQ<0 zNL9se>yV%pKr?zBPYbK#cY?Dh{x6_Q;y(mk8vhCCiunDYE8~3~6I4xn7<5(qF z32#8#js%YQ&V-_5jCI1f$*@0x*6vH7wfhrjt!l@)6KqGDliSheF70S@T07d@tsQO7 zXh)lSwfiX~w1k}Xr=um@PqBA zfX27K3^cKQC1_InxuD7IuLAAT{yNaK_VjbN_6vbC+TRS?tNm@DecIpA86(wR$6k9K zd+l}Xwb!wyYt8RS+ZJ@BZ3{cno<$lj=}0@5cBGvvG=F7B+F8?)cCPA3J8L`A&N?l> zR?F9G`Sn`9LCbH@@{L-4vzFh|k^S1C+uf<_?$UMlYR*2**{?Y&N&7j8R>dc=^~5B$ zo|MGalattbmn3RSOQM&$CDBV6N%T^$Bzmb&61|j@L@)JAqL&6F(MypedTCG+y)-20 z4$z@VpLaz}CaE;UWKsyUD5)K2uTJz&pHB2oPAB@LUng2MpcAc%bfQ&*I?<{jowj0b zj_JgBDDK2~DCxv_DDA{}DC@*{sOZEPp5BQuT-k{+Jf{<5xT+Ilcz&mCpbI*6Jt3qP zb~*vHy355M2;MC~0R&`>m)^<7koQ?^`{f#VP_}K_g$Sh-}iLleBaxN^L<|@&ZhmHINwz==W?Q^ zNy+p~axy*BC7GT{OQvVKCDSt*$@EP9ag3F3p#VG7orrSkixcxq_C}_ zDQs(a3N0Ct!qTD?j{eA$-N2($J^~$+@+Q{L;*=erB`NQLmZqH99oM6jvp_3Sc6Pvu zn({s1%9J9|IVtCXR;By}{P`&#f-Xq;1ax7_e$eU^Uq{THlrZR$lpjNKY06m86)7d4 zD^n(c)}%}UU6pbfXl+U*=$e$dpmix+f9g{hIqOpx6%8pI_YEo6bq}e=lAFKw8UI65 z8UMpm8UG_v8Tm!2jQo+QjQr858JX}>Y8Gg5>M5Wlsow-GO&tJQpTd&mm=cLlZ zRjKsw{8V~)K`K4GFqIyzPNi=brP8-cQt8{Jsr2oNRQh&hDt%j%O5d(ZrEhCf>Dx7_ z^le=#eY-Z5zO7HCZ`Y^Nw+*TE?S@qPwlS5y-JD9_ZcSyB?$EaF)VA%?w(Zq@-={6# zkJ69|cI7;c@5*_a*p)LhsVnDKa@Wsbe_Gdb(bH~Sbv$>a4|{dx-XNzdN2*`fbFqb- zlg3D{O8Z`S#AI3#=z_HKKo_R*DpQ@ttIVRbxSp7~X>4mn8rxc##YTXq;oVErk{nFT$E04EJ?orc)95>6<~frvDLiM>^-l&h#z7 zyVCyzx+i@r=-%|VK=-BZ0NtPd4yel52^!4!GiZDUcXWvvyuK%8>;fk_V>f7*j6I-f z86Sdn%h(H=k?}XsUK#s9`(%6unv<~~v|q;c=yfE6ejAk08$BAD!M+dAVBbe%aAb=z z*!Phc?EB~p_I*qSN4YrTM%Y}c<;%2u1>}RO68xZ=1Ab6dY5oE&vryw|t#eTZy}Cqe zUaB>((3)3f(5p3C|Edi7wl;&lU6VoI)@9JQYcuHE`V9JZeTMd}*59c0Z`S&^X#HEY z{vBHXPOX2J*1t#V->dcS)B05=dmYTwb0<^Joy?07KgpSTUCPw!Ql?&)GE;M~E@hqs z+AA{yv`=OhXinxSp#3tx2|6Hi0B9t$0CZ61>7YY0zXLinb2#Ym%HT`}IzFHWuj7#(l~|(&_26}9Xb&C3x|Jf0M{50}d%S^}UJU*4E%d{; z&=24C;I*a#t-!ZEc%`1BZK%>V%-1$7&^9d8HdJdH7HJ!n^x(c?X%FrzR%m-xYI|yW zoC$kY^*9T(wg>m^YkF`+t?R)Rb!`u>sP#RjfUeh;H}v3jvr*f&S=+Wn+qOgFof_}b z7Vd!!*jH=G{kl~3WG{j}*^Bs|>_t*f_A$99``AU7rfGh+o~)bEle@?HT4sTkS*T^I zwT4Ana!F5KbC>qyHFrf%UUOIKx-~s{&0W=#YjSN*?oQYAvH&c~=B*@JSAQA4wbfez39f1o3> z&j&5aE(RT$JqdJl_B7Bj*|R~5v*&}BWZwu{ntdB+S@v?!itHND>Ddp0R%Sl|Iw$*C z(5mbWp!2g|16`2)7U;t4_d%<(_ku3U{yXTB>~P*OYH4;y&=uKTKv!mW2d&BO4Z14( zo1nGX5zsZ+XM)ycp98u!`$wSl*<(Q0XO9PM$eseaA$t~RV|Eqj=IrZ1w`AV}x;6U_ z&>h(;L3d`a2HlnYDCnN-b)b8*8$kDE{~zf7>_6pU9nN7Sc?#@x3+H|M?!x+QlP=+@j1KzHQ+4RmMj=b*cC)ey}6+z{yA+;*V*ayx?V&rJqZ zdB=kW^G*bf&r1hQ%G4k#{+0QQnoHBlE5X9i6uTbWGlj zpv8H&fR^O_60|gLDQH>VU7!_tzXhG1cOPhFUM=XHyhlK*@}2;lpSKQlLEd`Mg?TT6 zR_FZzbWz@`piA<$fG*A32D&2e9nh6|?}OIl?Ezht_c3T~-e;g|^8Nu@mlr$}{?AJQ zt4WMK4H-Z-DZvrjJe;u?me=BHN{@b7x`F{qTp8r?S%KW{cbMik0t;+ub zbbfx|+wgyWJm|vw_Mp}IUjto~p8~ohKMizges|Cn`8_~a=AR5&lb-{+D!)HyZGIl; zn*4#Fb@@X;*X9octv}BOied zkL&{-5&1i4QN;fp_&*W{Iy#aFIwo=~XmO-7Xi20iXlbMyXjvo^v?9_Qbb91e(8@?Z z&^eJ@(5grw=={hTpbH{HK^I283tAodf1ryZKLTA684bELauMi?$WK96Mka#RM9M%{ zMW%w*MrMMpiOdGAi&TNGja&m-ANe`x`p7Rp8zPH9H$;8~+8DVLbaUi4pj#p}pj#uW zL3czR0^J#T40KmyE$E)eGoX7T&x7uZybQWO(g>;wUIPsl{0TI^U^{4H!A{Vmg1>+! z7kmiXrQj3Lw1WMh-3oj|;s1g#Xs?1}K>HLVf#wt(2imV76?8zsNuZH}4A4OZS)fA- zP5~WS@J-O+1p`1w6cm6K6`T$_vfw+QqYH+Ejw$#)XmP>0pd|(8gO(PI0WB-|31~&Z z1kmXPlR+yBDnREH%mA$_xB_&3!936f1@l1{7F-WnU2qfVqJmpNmlP}kU0SdVbVb3h zL01;s16otC3UpP$gP^qqkAki#coMX(pdNH>!E>PX1uucFFL(vCpYU7!_(zXhFMcpqqGVJ+yK!bd=>3ZDR-U$_o*LE(DPg@rGIRu}#ObW!1} zpi2t3fG#cE2D+l~9nh79?}OG9?g3p@_%Ud0;b)+03jYCGR~S4C{x3`btuO2Vy1uXz zXhUHa&<%wrfHoF>9dvVHPtYxeeL%Ms_66NhcpB)=!hFzOg@Zu%6rKsXx9}{`eTClx z-CtM)ss^418XWjz(D;F4K@$g-fF=!`1e!c>3TT&smw~1YtOV^ga4u-Zz^g!e4ZIGt z&%lMCIRkG7?Kki?&;bMQ0F4Y>0Xk^l-JnAT-U~W(-~*t;2d)7fG4OHFqJd9?jvV+b z=;(nBpkoGZ1T7x83AAM3>!76rx1NPv^c1~|p2D42&J^zJ`c2`EZom}oe3p`uhq5IXnvjMuhq5cb?JItYlD_) z)H0j3%oZ)PRm<$qGCQa6{Abq`o|*5N!V|oGx_A3^FH|}G5G+oW#B%x}shoaD zF6TbEOF4JQY31A-cPrZP(#akLO8sfCxj!)`5daK{Kt?SSw0qYbonIEG3C7HEiS(dw4|K(?4{*%LCeaI zfqX^z&8Oi6sa&5RmFp9v@=-WPnqSV7rG=VPtvQP{XG!_R;4dvN23=A9Q_z*=C7?Cs z6F^s$zaGZ_1X})PhoD+hz74dlyz2=;wYK~O(E9R|K-Z%!oX$ZrPUoN*r*qJZv&wQt z(T;M)!%pqPUFF=*@6n#zTh3F0edYSZvRt27R?xS>3VmW(!Fz|q3ZCaDRaAD4Q{AQ| zUl^w{rlo-PnwARMXW9v%In%m<_M4UtI$&B4(8#nb&_UDsT!>jPP2bf{(|5Jg^j+;V zeb+Ee-_=gjceT^>UF|e|S36DL)lSoQwbOW4JAE3Xx>DnEv_2el>miD7-OO35sZ+e(_kWVAIEe&YxZi zx#$25@%9d(oAiw=6BKjw3*aar1>K?f3)V0(fs0>Y^7u- zTPdB%R?23wm5Q14WVP10NY`DW>n_!GSLnJcb=?|Wca^SNtLv`Ob?avGBxLPOo`lrT zt7Ogwh)(Cvf@|FS}qgz|+&{N5lcSdKttB1dJSB^Dk z^Ob=V;rZsR>teNR2YLV!$IVOc>Ucn6-#UDrF1BoUDE$P>JHw%MCt2QhhsJ*0^3r=* zG&akkUNox8|2WO zYb>w(&+!&C#_gpmpSnrVJ6CQq=;JGWH(OqJgFe2p+iLvoWg6amzGln=f+k#>{))A9 zokQEBXp=47{)UZ+vD>T#%N<(h&~}FcZ&|r?ht6bcRD? z9h&FRa);JAwB4b=4yVtdGaMT0&^(8hJG9QB?G6RrcKRGT!=bSb&2wnEL+c#c?$8iyJ(*nLwmO7Y z+YGOpLxUU|}+L?jaOmS_{9Hb?>^k3IM{&Q z&&*c((#z7@qK4Rl9ec;#uwieA2v|T=R8+)-rKns zcF&tH=Y6m9{Q+LN@_T0P*rF#GF!6G=at}Y`qSjO=})oB?eC%1!zvDIHf;E?al_JvrfVK(7@;g!Rihlhq|hwlmhBm8Fg-SB7O@59}O*B#z&c*O8g!&8QD8oqD% zwc)Ran?^WAct_|W8b`E_=n&B_VnoE$h{A|X5xXKxMl>DKcf^zt%SLP*@#l!gBi@dv z8QC&&Xyl~Gxsf@Mt0Iddw?+OIc{cKLaf$Jb`8lRm zOyig~G5umj$Bd7e5;G%aZcJKCR!mOJ>X`L0TVi&{9E>?0b2{cy%>9_xF&|@uQL0gv zqwGfU!h=z|QB_9O7*%gn%Tet|bsg1v)bLRYMy(z7ZB&=h5u-Pbemr{Un8joEj5#yr z=9oug{vPvYjACr(u}Nb~$DSVhXzYiv-^QwAZDL(x{bQ@d)`@Kz8y*`QJ1sUfwlH>Y z?B&?+u^w@apL!TT<*AnaoffnA9rEg^>I(eiSZ`! zp7GVuuNr@N{GIX7 z#@kJ3G@<*1X%liMtePjr}AabkmsohSC6IBnvxi6s;NnrM^Yo)DBU zDq%&!>V)+P`x8zlTuQi|@HF9V!uJG|Nmi5WCut{Dm{fUEvq=Ld4V_dt>Cz;J$!#Wg zpFC=E#^i&O&8JkI(r!wRDMO~jOi7-SH|4h}7pD9<<=&JpQxu85i4_xTCH78?O`Mpx zJaKK}mc-J;gNdIK>rCxCb>!5sQxm36n>uUi!l_wPS4_>Hx_heov|7`mr=?F@HEq+h zJ=4xiyFcyAH0AU*)8|Z2n_e(|=k!z4uT8%{{rU8d(`88(NsdWgNg+uclR}ebB&8)~ zC9O)@lyp4lLej0IzmsG$tY^5+2$<1n#*i7&GbYWLJ7dv|>=~}kgN@g9Hb#m6l zSvO}rp7nZGt=SD{x18N>c9+>bXAhd4KYQ2g>$Bg@cA8UXPTx5(b28>^p0jt(`8jvz zyq)7YH(+kHx%K8YpW9*Xh`F(IC(fNcH*@Z?xf|#1pL=@li@DmA{wa%6mZYpmS(~yo zWpB#ylyfOBQ@*4~^VIWf<~hxCpXWQT^Str%R?Is-@BX|m^DO4O&hIxrdVbpc?ej0q z|1jTcL9GQX7j$1Re8HFnQx@!B@M?iss&{Iw)IO=>Q>UiRP0dJMk-9c@YwF(Ad} zWiQ&e=>DRoi(W4JxX2>iHr+eDZhDLK_UXOSho(oSk4}$IpPZhQJ}12}{doG>^sDJl z(^VPn8NL}6Giqi8XSB#@o6$L=M@GMlAsKNQGcx98EX-J(u{>i{#@dXH8M`tLWt`8r zk?|tqdxkpGD>E>&W@f|8Hkq9=2W3WQ#%4~>T$H&i^I+zc%)c_l#deEb7LQ!~=i-Np zUoHN;Se|8<)gmh@Yi!nntkqdNvMy%b&ib6yVabUlH}J{R zvwLI@%#O^C%TCOmlbxQOll>(7RrZH$&C+U1Yb|ZDwA<3bOCy(#UOIm1l%+G4&Rx22 z>Efl!m#$j6cIn2Y+n4TMdT{CSrI(k!TKaLR<+5Lv^;))g+0|tp%PTDpT3&y7i{%5C z&s+X(c|cBwoUu9ca@OVio%1&5TaMj|pH>8|XttuwiY_a9uNbys%!>3CYgUx5IK1M_ zioaG^<<`jUo;x6SL~d;El-$|5i*lFeuF2h&dm#6C?uFc&x%YElzFF&t1uO#nq-nqQTd74$O ztAbXwS=E14+^V^&R<7Ex>d>mYtKP2qyh_aX%def^Aiqt1X#Rlwarsm87v<;Y7w7NF zznJf_y6Wm)tEaAByL#X1H>+I>dKZi@m{+i~;99}Uf{z92H4bZh*0f&}wr22}5o^Y- znX#s5&2MYItof<1X<^&K&V@Y-!wbh1E+{--c%$%D;rBxGwH4RaSle)I$l4)m$E{6V zyKwEswa3=pT>Eyd%{rHLzpQJzE^^(Jb=m87tvkE!%{trl&DM`zpSk|h`oGru6tydw zQ&dv)d(r(Os||h|ns12Skh$ULhQ}M!#ZJZU#R0|Dit80OFYZv>vv^SP$l`IulZvMo z&n{k2oL!t-Tu@w8yrsCbcz^NH;@^rd7GEpAUHq{4S@G*)(~TY*>u&6{vCqcw8&_}K zvGL@_s~aD0^w{*%rkR_bY%<+keRJo{JvNWtJZbaN&6_r#-h5;8o6WKGCJu${YiO1o<8YO|};t|7Z-@5XP#h=V%}!PGXG|dXC7a} zUuH68g@Q1Z*^N1anaP~Ze8J?0CSmwm{w9}so0-9EzmC6hVwNzMGyT@{H83YIS2GVX zIjLY(#9ys2dowpP^O)P2Uzj_YgV?B_CzyMg-o>1kIf{9d*_ofe?n!(O%ty?lO#QLB zOu4WZ%n+vj2wmyS4@@&Iyp_mxXqbum55{$QfhlM9ImMB5Nfo&8TCC?L@Y5jclXh`j z4Q4*u|6p!mUS;lQ-e9g{`yJ-*tUq90V?JSCXXD?@H_TT|vzy!&%sqEGmH_iN<~Qaw zro`vCCiY1~46%d0eOqvxN<}C9@OLo4JGT&pgPi$jst{{mfi# zm|G3=7_%DvJd-E-!hL2P<_Bhdrp0^iZ_I9dGR>Jon5~&{%y!HqW+&znW;f4lp zW*_DS<^bj+<`Cv*=5VH(XYC`I&P)#LD(IN8O#QR^@yw3QNzBYZQJBgsWX@o2XU=9G zVa{WoVlHG}Wo9t{VlH7mXD(;zzvz`rE9PpZ7jrGMGIIknn7NtRmbsl-#J}R~WcFlz zFEfI9keR?d%AC*qmARUEnz@^Kj`=(D59aGe97UD+Q%6y_!K}l)!)(obzzk(RVTLpR zW=>?jVlHI9W9BhGF?Tb+F;6r3CtBgAVLoRnS^r{Kx9Y^vKv@4~#d{nw-}dDlW0|Uc zyjug)k?Fz=V7fEwFuj@WnEuQ@%!0@h0=+(SIK44*ELV1O=4@tb=1OKe=7Lb}o6IGvcsCmt{z7jz_ZQZqm_3kUfj;&+ATS0IXs<0oeE>sd~v;VBaT7BNf zyAk`)R>Cjr8EXq6LNI~k*F?+~nLVLD!z>fUaiFX6<%)5bi6?(IG>@W0X-#Cc> z2J>Gy`^RWus1PGWvPX;(Mzc1CrLjUBd&coN5vK@ALLz&@Wd55i%w*p;kNsXM-)+)_ zr9!%p%Tk_DBowoE+r-~AZsB{-R`wu!I0nLg{&Mah-;a*-o#C`_o4=B~!(Y6;X6qZ_ zyzo}I$R6U7@SgV={=h!wBi~0pv5)!8Ilk~6Od;Omd)Pzv3Qq+q@o)Yr?m6#X^Mbv@ zEB-d_4SR?0f}<#iPNFC}i*nILREb*AMD!5N#R{UeSW&bUtBQ7FHPJz=F1m`pi0)#L z=qc6^y~UcMuUJd;7i)_FVjWIdSF9w~69dIyPFbJQKx`=X5F3lV`7caN6#IxtVqbBd z*iXz9`-{uO0b-swP|OzxiL1rIVv#sR+$atew~NEX5;0udEe;p=iV@;LafEnCj1-TG zBgJE4lz3K*7B7o2;#F~!_@@{r-W11+x5Sy^eQ}ofK%6Z;6z7Of#JS=#F@?9@nJ2y$ z=ZkN}1>y%WRs19_6hDh;;#YAI2R6zOWm29fmsW{NDPL4et3@-ZK(v(Bh}Ke}XeX@| zog@dzRdSZxB(3Dml0QooBv1Z6&sVC%+E0>B3X}q*pQ)9pRj5^|)u`2}zfgmyHK;YI zwWzhJb*Ocz^{Bzr`qT#0hSWyX#?&U%rqpKC=F}F{mef|%*3=Mc8){o>J8FAs2Wm%Z zCu(PE7iw2(H)<%gJGBS3C$$%~H#LmfhuW9gkJ_I)fI5&mh&q@$ggTTuj2ccIPK}_B zphi+hQlqHR)EMe0>S*d1>R4(lHI6!t8c!Whoj{#PO`uMqPNq(wCQ_$Tr%|U?>jk<`MPR*cZQWsORs7t8X)TPvA)aBG1>I!Nu zbtN^Ax{8`lT}>^ZuAvrE*HYI}*HeqA8>q$9jnqxl&D1T_t<-JQ?bH(L4r(cNCv_Kf zH+2tnFLfVvKlK3hAoURSF!c!aDD@ciIQ0beSL#XXZ`4!N)6_H6->GM*=cwnY7pNDh ze^4(`FH^5juTrm3|D;~0-k{#3-lE>7-l5*5-lN{9KA=9NKB7LRKA}FP{zZL8{hRun z`hxnB`ilCR`iAJus9LHk z)s5;-^`LrEy{O()AF40akLpj=Q3I$Is1>P|s6SBysXtRIQ>##`Qmav`Q-7fbQEO0Z zQfpCbQ|nOcQtMHJsr9K1s12!&sEw&js7}-W>J?=v#Cp|%c#q#In))@ zTQ3q| z>Tc>D>R#$T>VE10>Otxu>S5{;>QU-3>T&7`>aWz3)ZeJ5sHdrCsJ~OsQqNJ(Q!h|2 zQvaY{qF$z6pmWlE&GD-ebCX;`Y$>rZ= z3b`Ox%0;Ip+E!B={Pj#R=Qk|&IR2Qn2 z>PmH^x>G%VWYH`RygOZB7rQ+3n;Y6WUVY9;DV)IjRb)XLN<)T-2K)auk<)Y{ZK)VkDq)L?3TY6EIRY9nf6Y7=TxYBOqcY71&hYAb4MY6!IrwJo(BwLP^1 zwIj6?wKKH~wJWt7HI&+&+JoAY+Kbwo8b<9y?Mv-P?N1#*9Y`HS9ZVfU9ZDTW4W|yL zMo>pkBdH^)QPgN^40RNBG<6JhEH#!IM;%9vr;evipiZPFP$y9*Q>Rc9sZ*)bsMD!Q z)EU%d>P+e^>TK#9>Rf6Hbslv-bpbV%x{#ViT|`Z%W>7P!i>X=ECDd%{QtC45a%v8B z1vQttlA1?dMa`$KrWR1wPz$MRsq3igsYTQc)MDyJ>L%)D>K5u&>Ne_jY6*1*wUoM( zx{JD-x`(=#x{tb_dVqS6dWd?MdW3qEdW?FUdV=~Z^(6H->M81J>KW?q)U(uc)brE} z)Qi+VsF$dhsaL31sn@7~Qm<2QP;XLiQEyZ4Q14RjQSVb9P#;nsQ6E#EP@hu&qCTVk zO?^&%L48SmMSV?uLw!qqM}1HIK>bMlMEy+tLj6kpM*U6|6rbgy;)`5Te3i=--{f+| zcR9cQQz#XpLZy%tYK2T;qL3?06$*tJ)tqWUwWL~6HB@V=4b_%vN42LqP#vjGRA;IS zRZDfHx>4P!9#l`N7uB2UL-nQlQT?epY5=tYwIa0=^(Sf|^=E2jY87f#YBg$g>MztF zY7J^lYAtGQY8`4_YCUQ&wLY~0wIQ_;wK25`wJEh3wK=r~wI#I`wKX+_+J@Se+K$?u z+JV}U+KJkk+J)Mc+Kn1Y?N04M?MdxL?M)4%_M!Hr_M`Tv4xkRC4x$dG4xtXE4x@%s zhf^b{BdC$ok<=(^G&P1giaMG)hB}rSOO2zBqsCLmQzuX-QWL0?sFSHvsEO36)M?b| z)FkQ*YBF^ubry9tbq;kdHHA8lI-k0Lno3IP~tbt82Xbu)Dfbt`onbvw0$x`SFu z-AUa=-A&y?-Amm^-A_G0JxD!7Jxo19JxV=BJx)DA{grx>`Wy8W^)&Si^>^x7>N)Cp z>ILdW>L1ig)XUT>)T`8M)IX`$sW+%Mskf-NsduP%srRV&sSl_RsgJ0SsZXd+see(Q zQU9hsr@o-Rq`soQroN%RrM{!Sr+%P*q<*4)rhcJ*rGBG+rwYo?3Q_q*At}EqWXf*} zx$?V0p%j!#rKnUXC8b&^Q<^B{N>immX+|}tT2L*iR#XkunrcI}rP@*LsSZ>}suR_j z>O$30U8!zVcd7@~lj=qFrutBQseV*{s*V~!tw60vtwjBa8c6+_TA5mfT9sOjTAlg} zHHcb+T9aCfTANyjT9;an8ceNEZ9r{EZA5KMZ9;8IZANWQZ9#2GZAEQO4WYK7wxzbC zwx@QWcBFQqcBXcrcBOWshElszdr*5)dr^B+!>E0zeX0GZ{iy?}1F3_kgQ-KPL#e~4 z;nd;O2Llu9>J(}sbt-il zbviYPI)j=_ok^WVolTuXol8xj&ZEw!E}*7T7gE!xi>T?;3~DBIF*S>_M7d6xtz55M zt}IgKC^sncmBq@n%8iswEN$jLeuNZrt`_Q-4&@vxZq~kRW{L z-&~tA_1pEon9*Auyc1Qv{k>uR3v(3b6FHjUIHrophZ1ZI(~UWa9>COpJ!8i4dofbH=f?O{R-#X@Q>3QFZbWwxUT;? zF8r6%hw(e7*Z=r9#>+Qe-h2MNJiwCQ5%Kx`%ru_<2p|6!){UokpUw66k9Fhc-`miK z{A>F&u1EdtaFkxk^>Ciqh4XLZdW>W}eop!Qs|mOBF#7p^+*g>5=kohG<|MlQ{H<6& z!+LwB{(QscmCvor+Fa**nflw=czgfKdK-GxEH1;A->mx6XZ$?sWtU%0Gp7FYHs0TipRe)usJp!UbRD>z^w*Q|{H<1&KW>(D{kc2*=l1*e z_W!@j`G2o}!{sG&d2P77OanG!(42b_J_+KKhId# z?hC)nCqTx_)wSo3hh!P=~Tv?<%i=_vSSNoNge~ zczMm~;jDLK>hBj}%t$WZliwA0^5Ok^4YM{=|2S)Gn6i=Or`O-#yK}l3bp7LTfnl!s z*L?ke{jndv*M3-jzJ|=~f2>Ede&QeND_MWf`WdE=|9{T+mGzGQSPy(82$NY4W$I5~ z<#GA_t)^iH8)g&3G(IlepO#<0euinhzh3ye{PA#|slVSoG0cxl{r%baIB4>m*GUBM zJ59rkVJ>5RHgg+O|9HO7Ov~YWAT#+=`PXgyI4Oh6*Nyk<SA9hwb{?{omcVZv4D& za60|<68Ne7epS~nLkzPo)2tG=iDA9=m-5qvFwfC9G4-EECckUf-{0|NC#gXYzeIooU^RqY*QWr}H-DKK+k%{r9&M|5#VBA9(eT^#NS2{(ABL zT7JFEW!=5h-;P0GKX3f$iMuPd7M zA@qa$%I{B;4cm?PpZ|6Gm7H$Qe>va(I{jfzU-Vy2Z)Pf%UC+1n@I967#@o?&`yVje z4`QRr9|vby*WWHT4bz$HF{%dlUAF6QZ#nDw`NpvRmDB0hO%IpP|Fyrq#cLGw&)Xg{ z_4_U3_y6at>#wKJ%&~kNi^}DnuNzZ;xj!=}&>I-mLk#PoO#Ss*T(kWCvCS}d8Rj9w zJZYF`4fB#=-ZIR`hWWxU-y7yP!&KEOzx-hV{`1$rR!9GQ&iHYR_sdH2${)AJ=W)jV2j|mYuXhde==k!-NlTtfEa2lCFJJ$C zxQKQA^QbM%e}BEb>Xm;zZTMRCpT}{g{(f(KKBM0cUgv!J{fVp=@8)Va{Yk?-$J9TL z3Lfw}I<~t8^WF~@Jl``+-x)|!qi`X#;?ctd5#*%Yp*!}5w`2^&%YYxbEf|B z-nV}F`9|_}=+AHb{`Bwb*Lb^Y`j_wD^gn;;AFuk)zb}_>+;14qSGhs?$MfWQsQ&S- zG0fVA-jb>Ba=QL{Y)HCe!rf{ z)HdRI=)cwvvaa8+7@wD)WL^J!=ihyQ|Nq`k{g3|B!1B`-zhx@#{D>vi$2f7*+oGxW(HqygKWoO6U+xwgQTWi9=kXQ@MAylV?Xd? zKk#Ee@MAylV?Xd?Kk#Ee@MAylV?Xd?Kk#Ee@MAylV?Xd?Kk#Ee@MAylV?Xd?Kk#Ee z@MAylV?Xd?Kk#Ee@MAylV?Xd?Kk#Ee@MAylV?Xd?Kk$FQA27b&r|Q@8*QM!Sx2nJX zLU?_a{`EUMLwS90*neKvr(fUA`mggu;UH5pr2KV40fyO?sec`j@%2&0ZoFLm>-hAq ze|pu8*Kz;ja<}GjWZ*vkIp2jmUK7u{@%8n_%d_X0Q;~GP1^?&AX?Bp;%Kzj1M=zCs zoZfuC1@sioSH#r6&QJe!8DD?Lhben~)W?GI%agAupT^hWIkK*Q{oGkTZ~gRVUH|t( zhw?=sq#v*OGprAf;Mi%b*EOuSV)kIY3$qWi7gK+|4rUH!eH3#9(|G;AFD~Ei%WLHl z2ma@JIL~R4Sx>%Ne!Cd22jg5ZvHbP3#&zS=zkY8i=QB>@>(+8NmcPEyc)IPI`TPcP z%rw5fLCiy}>p#y^hB>`AueqaNW?g@~8vib6@m5i|PB*@eP5<`_w^`4nKW46GzGkl4 zU4A~}>+Otx7v|0Z+4O&p7QobBZn$9@uaAk`H$sN;`nmthX*{2Cj@Ty(Nu0mh{_?M< zp<%XXn$*&8JTi%6ka0XV{!<7tjt9vBEGQh@g5pf$SZk=^=weEGI}`<1j$I~kL`oH< zBmZkS>X@2ROaDGC9C^%?wJs=etTHo7caCzc7D7?tXk`{$LUUAe6h}+8_Ckpxjaji= zLDbL#P!i?})|5)34W%MV9EZ%7_l)P~!My z&Xjo3g)$x`j$@`}IYD%#Peh5Mnz`{=WuQiwEV|Ptp(JE-oHh+d>(d{pEfJ-%V{Y=E zBBD1v2_+$mW4CF9nW8VJNk)mIL;6wXi2jt>C-=qphp z^pz^o`=BV~bM!Y!ScPh#zw{GZ2cX1pB?DO=%zIbx{uU^5q_xWQW2hE}N>$i83^}47 z$BdJN6Q~g)q-ty(j*@VaBg=`xZ>Sa`rC-=O5;^jp5X9C~$Tck0pvR!d5!`Ch&mh;Z zREw>nQR1j>wb^Bo>G7;?-!Nw|#~;a6E}`Uw<;dmLR);#hPc^xtG{ z=qFJWWMW&ogc{+rtR4LniX5}9Jzb6(;dfaF`Wcis(q%`ss!%PQm33n4IponMc4qm4 ztPA}-N`i^lmGXzI8|5O3g0mP(cS4PDS=OC?2_=q-*@NXPvYzy-$YW6KMY$&HP5Bc= zp^+FyZ-^Sgp%-=IE`{dKAmzDC60QTL^&>>K{GO4p~Mk6vnXQ}ODJPe5gYqe&`eS)<%Y zw?-aK(k4nvXy_51V{a4fgOPV{QXZwBLP=;K9b;=l zWM8B_&ek(13T>nlYz;xRa8CIvThF5;w3kk@wF9#MQU1o(izo?WrBjqE%F~p~$RkcV z!zu3}`x)i$^lQkYOgc+{fNJ4}@*G=lB9ArcJmt3X0)?XwP##GaS-!8-zZ=s%l!V99 zC6*s5FVi0(k3Q)N%TJY8=^Ueg@|Sdt3^dnJd>_dUMO!+ULub*=_aMK>K3I7 zO2SL&Hl>^D4kZ+MtVwq%JyiE7J&{M2bf3~&^?(wFJhG&Rl)kD*lzu1)@1(~p4^%y& z4?rGk(o@P1)nAms$YV`<#_})~M=KS=kw=#FoD!jWK^cKOvZR-kk*ZgeDCChPy=Hlo z>J2>xd1Og%SstT$M<0tkvZVKvIMoNrIOLHf`^fSH)hGIRlNCnAq5*>}n`mB6#A>Bv1(CW<^BRT3o`C84uSMwz9OQ)Z(ibdf1oPEjf8b5Rny z%2X`RSE=a>kna~V6PD9dru2m<386AGmfcLu>Fy{A-DMV($|jbSDkup(WmYU#H__0m zp(ON@SyO75*ieE{5_-#QDYZ@PD78=$`pE1l^-LTnbx{)f${bm)Z{kF6fRfNp=FDgkdrr%iT=$&t5}O62fH_C_PLnQhK5!43|}+SegDr z(V!%ZmjzO6On;`>BFBQ3Ri@8Ejo@Hfg{}4|2`RFwEIXN2qdOzdhh^1Sb~XKlu0@^? z%Ys;TH?2YUKuK62tI4vrX)U@JibAHWHa!D*_chZxZ1qD?$dc8iFGlu4X7%XDkY}^9 zV76u>-{Z{c(@&rzER{8&FGIEPt64+(NtA@;vPSeAQ4|`=d$9aU*OUGlc_t?B#qv8{Z~9y0IhZ_*-UPXa z%ll%Oyg&Ap55#`*!8lMp6xYkcu}B_)8|0B#ERW*6SLHD*UqPM;%SW?(t<3B4u`J(^ z$Kg$RJjxXlP@zabrD8H#C=$_9F%5N!BrYKUC844s87nDf;ZKS=7^q0WpB3{tO*cg< z%Uw|vx+~IH4lT2XBAw-)icIXK$iktDY)&%_x#ugE;c!I`j!@*{NJSnNEAnxZq5wB5 z3URAq9d1(;VTqy`cPKXDPQ@17t=NWp6eYM%QHmUO3OVK!a>OY<;t`YtjylEiu`*96 z4pBJ%6y>Di2+JIU3U4Wn;RnSD{HQpIpA@IiMtKHpm1ogTc^>VR7tv373H_BSvTwo;2rm2MKpn^$_UybMKQh0=@V zoH9$4K9n70?o|5GOUvA^)Um8lRX}T1CA3uqqMfQT+N-LfgQ_|@s)Eo-RTEuQwNb08 zi*Bl5bXPS%PgNuIQZ+#zRWtNewLpJWE7Yk%u!5>BR#dgepHv+&P}LbLtGZ%URVY?d z^}t_Ly)Z}>hBZ`uv8Jj&)=~|`+N!}=S2YytslqW>6@m3tk=Q^Lg$-3P*hn=Ro2bTO zQ&k)`Q^jL*)dXyzO2C$?$=F(zh#{(JxJZ?R>8fPRP|d)%DGF2unS7l+2DjQd*mSL_c2Un_cF;A6;t5o@zuPVURszNMKt;02{B5tX*s$!N4 z%Uq}0L|KpQVN_digK8TVt4inr>Qa_<$WipwyI8J(qVSV?56hL1qw1^ou^d=tW%U6{ z73A7hA7Z&$nZKxyP^y<1q&`Nkfn4Y66D-#%vyS>Cr8bH}J@qM;>mvJG^%<6f%WR-N zOKDhUWA%A@Bjoa$y#4@L;P3Y5+X9#LDT%fkVRJ9c@R9j=3+7=h7 z?J-^Lh#6{U%v5VJOYMeB)E=0v_QIuVA6%yP!{urn=BO*+3UwvSRR?08x-za(SH*mF zbzH3u!UAaH~25x2xM?iMl=R zPML&htJgc__w+M zpQ{V;g?b&nR2ShZbuqqCZ^F0gE%;u&4L_($@RPa}KdX1)7xf;rHQ9&0CI`^ZkIPLSVvfmU%r$w6D@~qZp2>5}H+hMxOHoff!NQqG7d1U ziUUon;~>)@9Bf(>7n;?^Y_qz!!7P~1xwyV%Chl zz04hEE$F3X?lNmd-&y8vvk>|oJDd@S}ckHaD6 z@fcw~0i(?maGd#MOfXNxspiu#**pp7nJ_nbZr{HSy`MAzJ6*rov;STe3 z++&`J2hFqaSMzKTKDGFcuPsCcdj<;`ezj1b z!cv8%mL_OrX@+)|7U*heg;kbxTLAW$BC!Ew$Lp(hXZ%dSE9@FATNx z!M>J$ILK0m;g%IJ#n$7L zCd)=xYS{$$S~kO@mM!q4Wh*>y8G@HB+v0W0_ITg2BR;Y0jIS)a;(NsUo%W2-1^VHJaItVUxOtFhR_Dh~Tt z#p4jG2^e9OfTOJ@<2b8CoMJT%ldO_3#VQ#WTFt^tt2vlsm4d6R=3}8%DsHk$!|hh- zxXUUN4_Rg5ajR@RWwi`1TIJwXt6aQkm52AN^6{}%0lu^<#CKNf@UvAB$~48O)@(wJ zW((SDwxOG*1idw-SW&YJD{J=PFPeQ=PjdhpX%1m?%@GXI9K+6<6WCpI62mm7aIoeK z4%eK;D9w3{(_F-fnoF3dxq`Da*KnTZI;LrEVz%ZsuF%}Ye9e6<(mce?n#Wk8d5Zfq z&+xG3IiAqG#Iu^$_=n~#UemnCyPA*qNb?z=X};oH&3F8y;f-~K?;07(trci)%~5;> zYikp9ur@b#a4rFmADKfIF-k z;eP8Tc*MFH{%YL<&sn#^OV%Oyr*&JrXWbqjTX)32tvlm8>#q3OIur$)9;mkIg%&np zXk*hCU2OWJhs{9rwHb^**$l<1HsM&qCIai)L}C-0C~RpHgKcd_V<(%j*wZEs``X0g zAe#voZj*p9Hj^>dCJ`stOv7n5NjTFc8B=U#VYzF)D30p{4B> zw6)!aPPQfJX99Ghp>_D5o~UI3`1;BU}xKt*xmLNhS{FM z!M0~{xb1n2vb~6LwwG|C?G;S4y@s=Fuj4%1o0w*M8?$Zi;tJdQxW@J&7TG?=ZMIKw zr|mO5X!{(G*}lXxwy*Jm?OVKJ`yOxDe#8g1pYf^fSA1>z9Y5HLD)#)gGL-BTXlkcI zD?1akvok|iI}7x(vqFD6Ypi5vi`DJyv6h`92HQDfGdnG|wsXTyb{-gN=Y@Ukd~m3p zAC9oo;TXFL7;jez6YT{D^OeH!kyPsc;{ znRwhj3xBuI#*6mL@Tz?d-m%ZchxU2+mwi6Iu`j@n_J#P(ejO?uiqOoV7&Q)?(8*y7 zx;bn^Z-)}B=unE49d_X_4tub+!#-@}Z~&V-9KsNXBiPyD7+lkWGPH42prfM- zT^&u(*U=0sI9lM(j#gO1(HiSI+G0aTdu-v6d8{i?w zMtIz@37&Fnh8G=M;8n*~c+)WiA3CvM=O9O@L0 zQBD(Zj8g)}J59z!r$n6LG!5rCC1ILVGA?$Sh0C1g;7X?yTs2X8s$;(ez)eBzXkubc|-y;C86cUp&X=OQ$BE=FtTP3Y{r z1>K#up}%tpR&p-I>dw2cmh&EL=)4b`IUm5b&WEs*^AYUnd<^?KpTI%RCvk-HDU5MG zgR#zMagy_SoaTHH=Qv-&16Mm-^Wtthj_sGF&=e( zil?2Q;d$rhc-i?S-g178_nqJ36X*B%%K0O{cm9muoxh^o(jZ013=u#WExzxp-F2T6Zr2!su zX@tMIG{Lhj&G3p#3%udd3h%mv;8T~j_`;<PzUz?7{wV8NI zn}z4J*?3jE3~y?4@SZjoA8YgQr8XbmX$$bPwh#r^b*OeNLJQYov~k^pF0Nb9!*v__ zx|U!C*HWzNx(jQ#?!mgQ`>=`Y0c`1d2-~_I!LF{yu&3(@?CW|Ghq|7^5w2%&jO$s9 zcRi1jTrc7@*Go9Z^$IRG~XhcYTQ$U0>r>*SC1b^*ugx{fK|Le#SShU-6^scl_om@}{#&HyN6_DNy64LMJy9 zbaOL9Z#N6nxmjUlH*5UG%@%9B*<&L&M{Mrqj3I7X?BM2x-Q7Ge%*_i2xcT64H$RMW z)8QDm3K;KJ2@~A{afVxEoaa^*)7+|Kwp$RcaI1;=Znd$P z);$3yxKGAu?uj_leHt!sPr`KfWL)At3s<_&!2wCwg4OM2|~2%i{{p^SFj-9@jD3<0h`~xQ+Q9cd^LhK5q7Sh$SA6ai7OiJnZod zPk21X(;hGJ50BS)&EqZJ@_3JrJU-$xkI(qZ<14=R_>SK_ctcr1?kPhPPX$_fs?fpH z1ht-K=;>*Jex6ns=xL4BJZ-V2r#;s5bi}5f&e+ORi|st!u(PKJcK7tcex5!!*wYV( zd+KnMX9bM&tb`Li197@%Wt`<%73XWdCu{n6cPAo_R>#sIIOSj8(GgS;Xz*eenndqrUjuNZ9aH5$8kjm6$xaoFE09*1~M zz>!`FINED6PVh>^DPGfXrdJZCcqL=H*DPG(H3xINQn0{lKCbsl#Z6vmSn8FId%ZI8 zkXII-^vcHHy_VrcuN=JYm5X=0^6-gQK0fy}805VN>v-?O2Hpp-srMml<9!4>dLP3c-Y2k+_emV+eF}$ppTTJF zvpClKJSKQw#HrqwFxmSG&iB5Ci@dL6miJA}^}da(z3<{W@B6sL`yuY|evJFQpW+ek zXZWl4b3Et$5-)kb#y`E^;yv&8_}Kd+{_Xu4-+6z<&)(lr@Da`V4(KC83m*mA_^6O4 zEa>55hQ2-)Si#2%tNK`D4If*q?_-Zmd>k>v#~C~LXtAr08;1FK-~b;l9O~nPQ9gb+ z#z%+oJ{2(0rxMQa3B)-*l`+kyDlYb^j>~+4FyE&puJx&n#Xfbh#3vYc`!v7#TH#%v5Pa&>7GLF+BXv0`$l0G-x%!eI~x1@j>RFqaTwtnkE4Aj z;5gp|oZ>qflYA2~#djJm^i9GgzR8&5I}2C&&cXG*DY(gZK9>5X;$Gi0JnEZ{Cw(*V zyl)m>_RYrYzRU2wZw@~3&Ba%~dHCKpAHVw+pxmzz&HdJ)wOKi{Ep!ezY`eYcM_xhPT@GeGnn9a z7N`21$Ju@talYRrT;z8Jm-=19T)*qM+V3WA@Vkv${O;lozx%k~?;#%XdyK#OJ;if= z&+wApbG+&I67TuF#=rdD;!D5x_|ESme)Ic`GXJk==Kmcv{-Omx@%hWp#b1FQ{wmb@ zo8V9WW?0qV0&DwQVSRsVZ0>K1A^!H*!QTx*`} z{%Efoh>p6!=%gEpF1m2k>LSop7m04VD0J7wU>)6Ptg9P~^>lFN+Qn9rz4I_2wn4!zWCAuuk)@9>z z-7?J4<=_fkF0Rz&VV*AEg4g3A_by!luF(}@p>7?n(-q-*T`_LZZNiPZEx1#+4R`5E zaJQ}$_vm)vUfmwtr`v}&bqBcQTgdO2bcgVc?g-_+?ikDW%6yp!&iqule6pu;K57LU`ZVp1gPLP4kE5&&}VP ze>YcISXnq)cv$ExDqGaIZEoAnwwrAq+ab0iZDVa8+CR5{Z~xuCk+zk#qqc{(zcySO zqm9=lYG-LvwOQI+ZJ~CPwp4pSdqR6w+t9O}XE)D2o>GaI1Zz-h+C7*Lzp*TRmm4Ww1lAd$51-&%rf<>jzJ7IJe=VhD#f+ zYPi1P)`q(qdW7l1Du>k!YY^5VtbJH$Sl_V4Lskq~Gi2kC{ljX8j|fi)-x@9sHywT= z;%3B&5ly46MBR;g9c3LI5FH%dIXWzQaP;`-snK(zH%IS`z7ahn=0;4ys2QW)j5;*> zx6yx$zBRhf*vPT5W81}s#`cSy75o1%_8#z&UDf^g)4X}JAz+GWp>7}{^u-+m#xRmb z+VM&nSu@&VAj7QYtu*XtMoigV8E^&L;BHK_u`$hbgRwDSCxlKCdLW%p0-+O1AcbQ7 z-&1aTGuq!@pU)ZHd+xdC_IuAg_uTt#I`p8!Z$EtN;kyoh`^bYgpS5|$W_R<|n;$v* zV`pFc;&;3_e#zoXPCn=Ka}J$z?m4eH=caQe&%N{9@0|PVbMxmt`n+?`d*yl8pZDeS z|K!mwh`m~om@nt8y?3pin*G1pB=zACa{G#7p zRJizTR_+)FOKLGzwYMDm)(75v`pxB=Yd3G+ ze8|mxQ*JNa-o5?E?f-bkkM8*89e3aHzz-ex(0e}g z#1B99!$0}(e}DKhcYfv0Z`}FhyY}AoqPxC>OAWuf-$nS60v^)O{r-NhQ`f|??^aiQ z><87A9Q#RiZ9DeM>bl3V--Qb^b?%oe+y5B9FW-I~eqXVDCw?#8{(SsiwtWM?mv280zgKL(3cpuwzX`urZGRtr zuipMq{9d#DOZa`|_HW|%+U-BX@2j@sfINEj_WR=ZHQOJD-`8$G6~C|Bz7xOKZQqOE z>$mUx>b;}aZ@=$D?-SjyJ%3(=zk5Uz(bWTT;VVY+kLtw!!O{-*bLB6@pKS3aT>gIo z_glyPosDlm$zRClW3L~Ff5s!4A2;~$|6QLk{unnw%^&jlHRr}kYCO^B-h%$YfAl|A z_Z_#KX3I(VOYoHx`t!>h(`^Mn0@xPOebWN!s}S7_w@4q3JDZOHJQDCY+@pLv;0b^y z0-gkTGJbaeo&q=y{^J2B08Rv)1UMP+)aaDxRKPQ%)1sZxZ1jSt6&(b$0qcMcpbOZH zjzlkt&W>IZy*N4ta4z6H!1;g+02ku-8r(E}CE!}Xt8styHGtRQcIb70>jAF^+yJ-{ z@CLw5fHwl(1b8#xEr7QIZU(#!@OHpE0Ph663-E5hdjPip-V1mi;8wu<0k;8e2Ydi< z2jGK%4*@<5xD#*};4c7w3HS)$uK*tfd<^gf-0}P(;7fon1HOj4l;6R9$NvC)7w|p6 z_W?fu{1EUXz>fhx0sJT6r+}XUeh&Br;1LrKpZJrBM^F4I;Lj!=GjZI+Qzp)u*f;SU zz;gl5!|!0CKQROx0=#bGwG*$OxPIaWz>R=60B!=j5%4C!`zGEyaofcECq6K7`^3j5 zJ~r_Qz^5lZHSvv!uTT7J;-?e8n)v0!|4sbw#BV2lGjaFC?9|3$c_gA@(0X~uYcKC-vEA> z`)%%SKorB;77)j|I1ebqN&E-#w)h@^KLp$>zGr+4;6Cxa10ESaBHj*oRQ$*BqXB;!|4IB9z+>Y-iysGgLj3sniGU}^Pl|T{ zo&q>NJ}y21a3bL3_@ww0z*7NFi%*T84md4-M*K{`v*Od^X9FhVVmt*X#nbT&U>2|w za7J8?=i*)QLOdT=0B6RFaW!6wYk=MHa=ZtyFWwuU1$YkNxq#;Z>hYh)&j;*}8}SMt zjhpcSz*@W-w*Uv@7sTsvJMPAv_=WLC+>d+l05Aj`jt|9~@sap!z>5GciC-L_12``} zH$ES50pO+ah4IS(7snUHFOM&YFN-gYuZS;?uZpjXuZgdYuZ>?BzdC+Z{2IV(0oTQ^ zi?0XV5WhZtLwsZW#`vcAO@Oz=Z;syzcw2mP{EqnT@jC(Uj^7o(2k_qbmiX5AeewGN zx5u}|9{_wXz9aq+;KP8s;ydHN0DL6=%lNMVAB#U4e;n}1_!IG`0H29J9sf1pZ{xp- zKMVML{JHoGfG@>gjK2){O8j^6R{{SJ|9$+AfPVt~OZ?CAzXJX({#yKXz&GP>#NPsZ zJO20hJAm)T{}F#b{$BjU_y_Ti06zx&XZ(}+r+}ZwKa2k>{zd#tz<@ca1gILhB0=kgPISh?o&fCR8DU&#Lf;1Bcn$lnuiFTgQ?`{eJPzc1i^ zfcxi<%|9^zfc%5=56b@$;Gy}4FVM*{vhzdipbz@OwFo&Qt7V*roM|5^TV zfG6Z1pMN6Y$@wSccL0vdKP7)W-~_-)`4jUe1D={cC4Va5>G`MSp8Llpp4g zuE-fLG?P$zKb2b^cZP*8pA%xGw*?{Plnv@~_X|2)HT#hWr}=Z_d9d{}#Z_`M2iZ z26#vQ?fG{C-kpC}{yl*A=5NWr5Ago{t@+ykAIRUHzXR~0{0H+N2HcguGyfNWkL3R{ z|5t#I0zRJqSpE}$Pvt+E|1{vQ^PkE84d8D9pUZzX|9QX{0AI>~G5=-2SMq|` z0sol)hx|VQ{w4p<`F{ocTmEbLuLHiB|3?1b^WVyU8}J>#ck};||9<{^`5yp&2>5aS zNBN%s{uA(1z|ZqP%l`uKUw~ibf0_Sp!2jm|C;xwd-{gOt|1IF|{O|I=2Sf?%O_PZP zS4)#5$tMNCHo!fSKS=%%aIfT^$uWR?1MZvLCpk8`U-E$D{>cLY4^AGG{1M=x$wQKd z0UnV&Jb5HwJK#~tA199n{Auzh$zuSIP5vx-eDb*DiOCa^CjoXOPfnf!I6gTpIWajQ zIXO8gIR$WP^3>$%$4SD>);X11u!- zNd>S7SW3=Js(>0`ce0%90qjfmCT9Vjn>;6Z9^lUb&rj+}1F(|pPnv)ONt&zzTFF}S z0zf-Cn5+Z3NhjF=yb#b&ddUEAC>bV)0Y?C5C!5KO051ldle{E37jPcng5><26+>pFJ zxe@RNz#EgBk~aa~lDs*2E8u3p+mp8??*P0jd1vx&z%9vplJ_O=O>PC;mb^dtKyrI> z2jD}=2a`LK4<~<-+?9MJ`OD<503S;}ntUAa$>bBsrvRTxKArqE;BS+^Nj{f+Hu*yG z`Q%H<7n3gozLNZ1^7qMClYapGQ}U0=KLh>+@U`S$ldmWLmV5*7O~Ah=-%7rdd^`CM z!1t2xCf^7AF!@39Bfw9RA16Oe{xkU*;1|iylm7zzD*0vd-+=#3{wMiAz;BXYC%*;U zo%}BOJs>K;F0?RF$QR;5p^y}|0q#-wgTfyI?p3&F;TXVu3imGD7jSIheueu39$0ul z;X!~uDm=LG5WvF<4=p^R@bJPP7q%B31^AP~qYHlu__M-e3XcUmzVNuh697*tJhAX( zz*7o43daGC2b@?qp>Pu5WWZAkrxc!6IJNMM!qW@SESy$29q{bJvkH@iVqv;4RhTK1 z3bTN6VP|1i;f%t3VXjaqEEE<2X9B8)r9us`yRcl?Ti8?B2Y625tip2ve_nWAp$=#i zo?qAxXckrqDPXm5ps)sbL7`PR2v{$)3mw2lpFUmHDo+vjm_ z@$PA?*h?j^WEmKot_?5Hqy>~I%ph9d;N4rv)ztrQ;UnOjWiRo zyW3hxqiT2MU^-ZA&~H@fETt=H>rgt^>ZDVRc6&eYz)rXNE8R{fT^XcJi>{@;UZd4n zYz$V`Le|k-V>9j5Hj(6PuRGk>nKqhfFVcS+Z>qb#(M$XNZZDc@Z1khjp|mqNbC?cY z!lnM8F-VL3emY=gRd|Q}sctikrq&wBPg~I4VQ(d6XRXm&RpRn`V^xssqF5_Yt=H)E z52U?PuZMJvFXAMoyN5gNZlf9P1%dT&Wb0$XwQ!-lJ;*jw!jcVXa=Bw*gJ?c&wi=6RZ@ty;x4IqiPjx$kUbo#BUkRSgXtCE?N1BJy zNXu00wARrFt)Ize8t7w6An`ov#(+|g)Z1xwvp-1J(IKfd(W?e2zG`a%ryGODOuK>N z8;tmnv;LqrTp>0xhBzzxUx1E`s@O=Yc=Hv6rW zzK5X>In{2VLxvrD$IiiEBQkYtYSXqCb?J6Ga2=StONIsGv=vd-PBY@38;)A)>HTPV z09F6lTuX##_0dZGh@8>#^x|ZrpGMOyE_$Q4DQ(I=4@=`@)n%x%zn}IFHK=}U#OI$7 zEu|aXo{TXwEYqe`@bX3z-HNlg*w{p)>qwJYobMh=*HKME6)94Of%>RJ*(#!5<9c85 z5SpwfksUVMKwF1M%;wevGmZ6DTdRh~4(6VID*VT%N}Xl0jX5zJysOo2OGKBNWWU-P zNG*H$Fja+$^^^B%#BmwvelDoop-HjZ+gzY=WqnmNR;5Q%>NH07+0&SSS{)fomZprc zBrRxB++nPb2pmftl@1|Y(^69dwmPd*jb78y%r!dA^+xZY!$<+0f1x`_SAsZG=uN9A zk)xTb&N)xDgQ2(99XL#JFlel-Q73b_J!zvyo!DV$^2yY|EUE=lt)rRgwyDl+nap%; z5mm6oT1GW9)k~34H+g%wnO=9D2eIwc9N67x`Shmc%uFA~sIK%{8#-#dL`)>9#>xTA z|EbrjqyQtGo{}G3CT3clrtq2E#B92j>58>R|KRwD9Aa{kiB*ME!6m76ZLPWPDy3Q) zb~@-PnV37%Hs;%YG}m37OAn=OS;lBOz)I3R(8Bz`)_}l380|%7D(CSS@mwxWnass) zmV>?q5fgFR45}Bkq%<_^n#Pyzl{UG*yP^c>*+#1)L);NCeXZA8#e(m!i@lU&gAB8o zR@!dz6guD7U{3^xWCjiuzEBN=?n<|9a#rrp3fO1|Gxcn*)zp}84I*s*oI&G(`7y?+2djmrDCpU{LD`~&hT2G}h zBNiTJL3FsWNe$cT(AtD35HYYGi$@xWg^Ljc*U3`a-@qy^YYejlEAU#arUT4tn6(*c z$XsPJTGMjah4k>wRRQ+1#ANG*se^0+X3$VqttC9USiV4w{KBAh5-9b;g(bYvyn z2vIIj*1nN}Ya>he$bip;XU6t)tH+~y(^UCXyMZbC081<^kI_Deho8!43Z za5Ry6Nol;b*2btn&q?(WWah^#FABq^6*C{YfhTDQ(;1qbGQFm@hOJAJR0r4{iVU}> zhXnvTA1DoE`kWln) zBeHTub&H11s8p;v4O8YJtIV<*7gP7#3$Z|Kv>TgL+mQ&nJmw-dLa-pv#$vGrC8is! z#io)QZXTn)DS(n#UanmvsUj*At6gVBdax+wSes$R>`c34V`mMGiBe?e6Drx5 z2~Hxo5@(Wf0b}AWFPEpON;7d>9!Mn_C^dGs(!YtbSJKUqbOABTc!kdR<}i^8Mi^Jq4%F(Dl4byMp5zw}L4`FF%_BghH81x( z>v3MpNO8It%vW4z6FW|_%1rgTIKuF#d6ZK{ zkPPYv6x&cqYZrE0g5KiLQlY&3(>csYtx7M*mVxIes4Pbp9LkXH8|TyY{b?^FM2>{d zr3d^((}6d1Gs%*6`;5iXY-U?QM<}$ZIOBv}ykv8ao5za3hV>zB@(BxM1>;xQpA}G2 zDG>0X`WDHkuL2Ryb>w8q^jeZZpaENf3XBi8vMnK{m7}VqE`%3upIU2RoY+P}tHD^> z@^<@;w)k{gTOF=L4Z0~fs66Rhjj6@mcYC3cIutreRVF*}FLp7blAMOaGgFGGVXp_- zm~ozTA?bt?hs5JH%&r(5M9KBXbZ{3aRWdd**UQ+Dur@M1fO)G{bzBg7NRNd|*TFf; zG%9?gn@h-UIL-1gTu>jqltO~m zO)1q%$DA(OEC<+~DT%b)sVt@7EPbuJ!3z}%m~CMM$&kwiNERn?u9|5H30TH~)A$f> z$nini=f?+5VOi;5!!tfPKCT)g*OYZy%`_ZKYX@j+>eg1MP5Nu&$ran*fdlep+Tr%u zkA;1W*9<6A*N2^!Y>o^Ao&9AgFvwDejxVhKz@ROH3LyGnvpmf-Ajvijq1SoZn+7R8 ziN>`=l`XX>3@V2^rX379YuX7-N2=I+)6^y>qLw0qmnq7Gk`7{kgIbEKa=WBECcwz` zV}l?~VyulYGwDE~OZsQ7VXNjiY9RNFqf+c{^jg#csDqXC|3Bsbo3R}C1azEn?(Ebw zVI5j@gi<<>5OGAb^y;v&YBR}5niQGZWL>ae?^_3?J!ua;f`Z)6dQkC387v(H(Al-( zePaca2*roGrpa2!-RMr3Nlln^1696~#)Xrzp}p=QmVTK)*NF^`-y68gfHm>RZbr6(n{j zl1o=~@w=&)7amqxpffkZ+)9M(XgxGOa<0;IhoCm2|2NMfnI5 z6Nw9;9*M-5Gs(cK2z`w6u`A*Lak`+{)a-^L(I-&z+I)F>S(7Tb^ftMpNq#x&ROp^q z2N*hNb!iC=YLDYer;)KLD<{i@CZ3?88M10B9U1f*nD-j%Mv<1aBMM{j>ElA